Java 基础学习 day_04

面向对象

对象在内存的状态。
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有默认的构造方法,如果手动创造了有参数的构造方法,如果想调用无参构造方法,一定要手动创造无参构造方法。

猜你喜欢

转载自blog.csdn.net/m0_45196258/article/details/107555852
今日推荐