类与对象的知识点

  • [ ]

内存分配的注意点:

  • 所有的变量的地址都是存放在栈中,相应的方法的调用会在栈中分配一个对应的空间,这个空间被称作栈帧,一个栈帧对应一个正在被调用的方法,栈帧中存储了该方法的参数与局部变量等数据。
  • 匿名对象没有被栈内存引用,所以在使用一次后就被销毁、
  • 不论是匿名对象还是非匿名对象,都需要在堆中开辟空间后才能使用。

类与对象:

class People{
	String name;        	//数据类型 成员变量 = 初始值;
	int age;			//数据类型 成员变量 = 初始值;
}
  • 类名由多个单词构成时,每个单词的首字母都要大写。类中包含描述特征的成员变量与描述行为的成员方法。成员变量由多个单词构成时,通常第二个单词首字母大写。类是一种抽象的描述。

  • 成员方法是对当前类的行为的描述,具体语法为:
class People{
	 int getAge(){  			//返回值类型 成员方法名(形参列表)有返回值
		return age;			   //成员方法体;
	}
         void setAge(int i){  		   //无返回值
         	this.age = i;
        }
}
  • 可变长参数语法格式为 返回值类型 方法名(参数的类型... 参数名); 其中参数的类型是统一的。一个方法的形参列表中可变长参数只能有一个,而且要放在末尾。(看作一维数组)
void showArgument(String... names){
	for(int i = 0;i < names.length;i++){
        	System.out.println("第" + i+1 + "个参数是" + names[i]);
    }
}
  • 返回值是返回方法体内部的值。方法的调用语法为:引用变量名.成员方法名(实参列表);实参列表可以传递直接量,变量,表达式以及方法的调用等。
  • 基本数据类型的变量作为方法的参数传递时,形参变量数值的改变通常不会影响到实参变量的数值。
  • 引用数据类型的变量作为方法的参数传递时,形参变量的改变会影响到实参变量的数值。
  • 为了解决引用数据类型导致的实参变量的改变,可以在方法中重新申请一块地址空间。

  • 对象通过new 类名称(); 语句创建,这个操作称为类的实例化,通过实例化创建了类的对象。在堆中存放该对象独有的特征信息。
Person p1 = new Person();
p1.name = "张飞"
  • 引用:使用引用数据类型定义的变量,简称为“引用”,用于记录对象在堆区中的地址信息,解决匿名对象问题。语法格式: 类名 引用变量名; 引用变量名.成员变量名;
    `

构造方法与重载:

  • 当类中没有构造方法时,JVM会在main中调用默认构造方法,等同于this.方法。若类中提供了方法,通过new 方法名;来调用。

  • 方法的重载就是指方法名称相同,但是形参列表不同。这种构造方法的行为被称为重载,构成重载的前提是形参列表中数据类型不能完全一致,包括形参的个数,形参的类型,形参的顺序。
    • 方法的重载的目的就是为了减少功能相同的方法名的记忆压力,只通过改变参数的个数类型顺序来实现大体相同的方法功能。
  • 判断一个方法能否重载的核心就是调用方法时能否加以区分。

this关键字:

  • this的概念通过在代码中出现的位置来说明:
    • this出现在构造方法中,代表当前正在构造的对象。
    • this出现在成员方法中,代表当前正在调用的对象。
    • this还能代表当前变量的引用。
  • 当局部变量与成员变量相同的时候,在方法中会有限使用局部变量就近原则,如果希望在变量中选择成员变量,需要使用this.成员变量,表示要求指向成员变量。
  • this关键字除了可以通过this.的方法调用成员变量和成员方法外,还可以作为方法的返回值重点

题外话:构造方法的第一行可以直接调用本类中其他的构造方法。

posted @ 2020-10-22 08:21  ColaIce  阅读(218)  评论(0)    收藏  举报