关于栈、堆以及方法区
方法区:类及其成员变量、成员方法都要进入方法区,由方法区为成员方法和成员变量进行标识地址值。当方法执行时会被压进栈之中(方法在栈中的加载顺序是先进后出、后进先出,像是子弹装弹夹一样);当在栈中的方法要创建对象时,会在堆中new出对象并为其赋予地址值,且对象及其类下的成员变量和成员方法的地址值一并引入堆,当要执行对象对应类的方法时,栈中会根据地址值在堆中找到对象,再从堆中对象里找到成员方法的地址值,最终在方法区内找到方法并移动至栈中执行,之后的方法都会如此进栈并执行,执行结束就会被垃圾回收机制回收,一直执行到main方法的最后,程序结束。
第七章小结
用private修饰的类成员称为类的私有成员。私有成员仅能被该类自身访问和修改。用public修饰的类成员称为公共成员,表示该成员可以被所有其他的类所访问。
方法的重载就是指同一个方法,参数数量、类型不同,在调用这个方法时会根据参数数量、类型来选择这些拥有同一变量名的方法们的一种。一般由于功能不同使用方法重载
构造方法的名称必须和其所属的类名一样,而且不可以有返回值,其主要功能帮助创建的对象赋初值(private?也可以是为了保护成员变量?)
每一个类都有构造方法
构造方法的公共和私有即为完全公共和完全私有
实例变量与实例方法、静态变量与静态方法是不同的成员变量与成员方法。被static修饰的类中的成员叫做静态成员,也叫做类成员,不被static修饰的成员称为实例成员,必须通过创建对象才能调用的方法叫做实例方法,静态方法不能直接访问实例变量与实例方法,不能使用this和super,可以使用类名直接调用静态方法。
由类声明的变量为类类型的变量,它属于引用类型变量的一种;既然是变量即可用数组来存放。
数组存放对象的步骤:声明类类型的数组变量,利用new分配内存;用new运算符产生新的对象并创建其存储空间,让数组元素指向它。