Java 基础学习 day_04
程序员文章站
2022-05-04 08:41:48
面向对象对象在内存的状态。new一个对象,对象的实际数据存储在堆中,而对象的地址存储在栈中。JVM中的操作new:在堆中开辟空间,属性默认值。ivokespecial:执行构造方法。astore:把地址赋给变量。......
面向对象
对象在内存的状态。
new一个对象,对象的实际数据存储在堆中,而对象的地址存储在栈中。
JVM中的操作
new:在堆中开辟空间,初始化属性,属性为默认值。
ivokespecial:执行构造方法。
astore:把地址赋给变量。
如果声明一个对象数组
package QFTest;
public class TestPerson {
public static void main(String[] args) {
Person person1=new Person();
person1.fuzhi("哈哈", 23, "男", 99);
person1.sayHi();
Person person2=new Person();
person2.fuzhi("拉拉",23,"女", 22);
person2.sayHi();
Person[] persons=new Person[2];
persons[0]=person1;
persons[1]=person2;
for (Person person : persons) {
person.sayHi();
}
}
}
内存分配如下
栈中存放对象的地址。实际数据存放在堆中,栈中存放对象数组的地址,对象数组中存放各个对象的地址并存放在堆中。
方法重载
this
1.this.方法;
2.this.属性;
3.this调用构造方法:this() this(实参) 必须放在最前面。
get/set方法是外界访问对象私有属性的唯一通道,方法内部可对数据进行检测和过滤。
java有默认的构造方法,如果手动创造了有参数的构造方法,如果想调用无参构造方法,一定要手动创造无参构造方法。
本文地址:https://blog.csdn.net/m0_45196258/article/details/107555852