2021-01-16

类与对象

类(class)

1、定义

具有一组相同属性和行为的对象的集合;
  通过对象抽象出来类;类可以看成是一个模板,通过模板创建具体的对象。
  类是java程序中的最小的单元;

2、成员变量(属性)

对象的具体特征 ;
          例如:String =name;//狗的名字

3、方法(行为)

(1)对象的具体行为;
        完成程序中某个特定代码块的功能;
        只管调用方法,不用关心里面如何实现;
  (2)方法的四要素:
            a.返回值类型;
            b.方法的名称;
            c.方法的参数列表;
            d.方法体;
  (3)格式:
              [修饰符] 返回值 方法名(形参列表){//方法体}
            例如:public void printDog(){System.out.println("狗")}

  (4)返回值类型:
              a.void:如果该方法没有返回值则使用void表示;
              b.如果有返回值必须使用具体的返回值类型替代void,并且在方法体中需要使用return返回具体类型的数
              c.如果有返回值,该方法则可以使用变量接收。

  (5)方法的参数列表
              a、定义:方法名的后面(参数列表);
              b、形式参数(形参):
                    在定义方法的时候使用,就是方法名后面的()里面的值;
                    可以有一个形参,也可以有多个形参,多个形参之间使用,(逗号)隔开;

                    定义: [修饰符] 返回值  方法名(形参列表){//方法体}
                          例如:
                	      // 狗会算账  num1,num2:表示是形参,具体值是多少取决于调用方法传入的实参
	                  	public double getMoney(double num1, double num2) {
		                  	double money = num1 + num2;
	      	                  	return money;
	                        	}

              c、实际参数(实参):
                    在调用方法的时候使用,具体传入的值;将实参的值给到指定的形参。
                    语法:方法名(实参)
                          Dog dog1 = new Dog(); // new + 默认的构造方法创建对象。创建的都是默认的对象
                          dog1.printDog();
                          // 方法的调用 参数:实际参数(实参)
                          double money = dog1.getMoney(200, 200); //200 200 都是实参
                          System.out.println(money);
    
                    实参根据形参的位置,来决定将实参和形参的进行对应;数据类型必须符号形参列表中定好的类型。

4、方法体

方法具体执行的代码块。
  每个方法的具体的功能;

5、构造方法

(1)普通的方法看成是一个个具体的功能;
  (2)构造方法更多是用来初始化对象值;
  (3)每个类都默认有一个无参的构造方法;
  (4)构造方法的语法
        a.构造方法的名称必须和类名保持一致
        b.构造方法没有返回值,但是也不用使用void修饰
        c.默认有一个无参的构造方法,类中可以同时定义多个构造方法,参数个数,类型,顺序至少一个不一样(重载)
        d.如果定义有参构造,那么默认的无参构造会自动消失,如果需要得重新自己定义

对象

1、定义

万物皆对象,具体存在的事物(现实、虚拟);
  对象是类的具体表现形式;

2、创建

通过模板创建对象;通过类得到对象类型  
  格式:对象名 = new 构造方法(); //new得到一个对象  
   例如:Dog dog1 =  new Dog();//创建一个狗的对象

类和对象之间的关系

类是对象的抽象,对象是类的实体;
  对象是在类的模板基础之上,刻画出来的一个具体事例,在一个类上,可以创建处多个对象;

调用方法

1、同包下不同类调用方法:先new一个类创建对象,在调用方法:递归调用、嵌套调用
        递归调用:在一个方法里面调用自己;一定要有出口,否则出现死递归,出现栈内存溢出异常;
        嵌套调用:在方法里面调用自己;    
  2、不同包下类的调用:
        需要导包;再进行new;