• 面向对象编程(OOP)类


    类的包含

    1.成员变量(属性):修饰符  数据类型   变量名;

    在Java语言中对象的属性称为成员变量,也可以成为属性。为了了解成员变量,首先定义一个图书类,成员变量对应于类对象的属性,在Book类中设置id、name和cate3个成员变量,分别对应于图书编号、图书名称和图书类别这3个图书属性。

    //属性   成员变量
        
        //书名
        String name;
        
        //类别
        String category;
        
        //内容
        String content="其他类别";//不是null
        

    2.成员方法(函数)

    在Java语言中使用成员方法对应于类对象的行为。一个成员方法可以有参数,这个参数可以使对象也可以是基本数据类型的变量,同时成员方法有返回值和不返回任何值的选择,如果方法需要返回值可以在方法体中使用return关键字,使用这个关键字后,方法的执行将被终止。

    Java语言中的成员方法无返回值可以使用void关键字表示。

    成员方法的返回值可以使计算结果也可以是其他想要的数值、对象,返回值类型要与方法返回的值类型一致。

    在成员方法只能够可以调用其他成员方法和类成员变量,同时在成员方法中可以定义一个变量,这个变量为局部变量。

    如果一个方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局部变量进行访问。

    (1)没有返回值(void),没有传入参数()

    (2)没有返回值,有参数(数据类型  参数名)

    (3)有返回值(),没有传入参数():返回值类型  方法名 ()  {return返回的数据;}

    (4)有返回值,有传入参数:返回值类型  方法名 (传入数据类型  参数名)  {return返回的数据;}

    //成员方法
        //形式之一:没有返回值,没有传入参数
        
        void print()
        {
            System.out.println("我要打印的这本书的书名叫做《"+name+"》");
            
            System.out.println("我读的书的内容"+content);
        }
        
        //形式之二:没有返回值,有传入参数
        void write(String mycontent)
        {
            System.out.println("我写的内容:"+mycontent);
            
            if(content.length()>=1000)
            {
                return;
            }
            content+=mycontent;
            
            
            System.out.println("我写完之后的内容:"+content);
        }
        
        
        
        //形式之三:有返回值,没有传入参数、
        String read()
        {
            //返回值
            return content;
            
            //System.out.println("sdsd");
        }
        
        
        
        //形式之四:有返回值,有参数
        //卖书
        //根据卖书的数量计算也并返回钱数
        double sell(int count)
        {
            return(price*count);
        }
        

    3.构造方法(构造函数)

    构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,每当类实例化一个对象时,类都会自动调用构造方法。

    构造方法没有返回值。

    构造方法的名称要与本类的名称相同。

    注意:在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,普通没有返回值的方法使用public void methodEx()这种形式进行定义,但构造方法并不需要void关键字进行修饰。

    格式如下:

    public book(){

    //构造方法体

    }

    public:构造方法修饰符

    book:构造方法的名称

    在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。

    注意:如果在类中定义的构造方法都不是无参的构造方法,则编译器不会为类设置一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。所以只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。

     只可以在无参构造方法中的第一句使用this关键字调用有参构造的方法。

    (1)方法名和类名一样

    (2)没有返回值,并且不用void

    (3)如果没有自定义,就自动提供一个默认构造方法(无参数的构造方法)

    (4)主要作用就是初始化对象

    (5)只在构造对象的时候调用

    //构造方法
        //1.方法名和类名一样
        //2.没有返回值,不需要加void
        //3.只要自定义了构造方法,就不会自动添加默认的构造方法
        Book()
        {
            //完成初始化
            name="默认书名";
        }
        
        Book(String bookname)
        {
            //初始化
            name=bookname;
        }
        
        Book(String bookname,String category)
        {
            //初始化
            name=bookname;
            
            //this代表类本身
            
            this.category=category;
            
            
        }

     类的定义方式

    1.class

    修饰符  class  类名  {构造方法;成员变量;成员方法;}

    2.package(包)

    (1)定义在第一行

    (2)一般全小写

    (3)范围从大到小

    (4)对应目录结构

     

    例题

     1 package org.hanqi.pn0120;
     2 
     3 public class Test {
     4 
     5     public static void main(String[] args) {
     6         
     7         
     8         //构造一本书
     9         
    10         Book myBook=new Book("JAVA基础教程","JAVA教程类");//默认构造方法
    11         
    12         //myBook.name="JAVA基础教程";
    13         
    14         System.out.println("类别"+myBook.category);
    15         
    16         myBook.category="教程类";
    17         
    18         myBook.content="第一章";
    19         
    20         String str=myBook.read();
    21         
    22         System.out.println("读出的内容="+str);
    23         
    24         myBook.write("JAVA的发展史");
    25         
    26         str=myBook.read();
    27         
    28         System.out.println("读出的内容="+str);
    29         
    30         int c=3;
    31         
    32         System.out.println("卖"+c+"本书的钱数="+myBook.sell(c));
    33         
    34         myBook.print();
    35         
    36         System.out.println();
    37         
    38         //第二本书
    39         Book myBook1=new Book("战争与和平");
    40         
    41         //myBook1.name="战争与和平";
    42         
    43         //myBook1.category="名著类";
    44         
    45         System.out.println("类别="+myBook.category);
    46         
    47         myBook1.read();
    48         myBook1.print();
    49 
    50     }
    51 
    52 }
    Book题目

  • 相关阅读:
    poj1087最大流拆点
    3月15上午的函数练习
    3月15
    3月13上午
    3月13
    3月12
    break语句
    3月11
    3月10号
    3月9号
  • 原文地址:https://www.cnblogs.com/cycanfly/p/5243654.html
Copyright © 2020-2023  润新知