欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 基础学习 day_04

程序员文章站 2022-05-04 08:41:48
面向对象对象在内存的状态。new一个对象,对象的实际数据存储在堆中,而对象的地址存储在栈中。JVM中的操作new:在堆中开辟空间,属性默认值。ivokespecial:执行构造方法。astore:把地址赋给变量。......

面向对象

对象在内存的状态。
new一个对象,对象的实际数据存储在堆中,而对象的地址存储在栈中。
JVM中的操作
new:在堆中开辟空间,初始化属性,属性为默认值。
ivokespecial:执行构造方法。
astore:把地址赋给变量。

Java 基础学习 day_04

如果声明一个对象数组

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();
        }
    }
}

内存分配如下
Java 基础学习 day_04

栈中存放对象的地址。实际数据存放在堆中,栈中存放对象数组的地址,对象数组中存放各个对象的地址并存放在堆中。
方法重载

this
1.this.方法;
2.this.属性;
3.this调用构造方法:this() this(实参) 必须放在最前面

get/set方法是外界访问对象私有属性的唯一通道,方法内部可对数据进行检测和过滤。

java有默认的构造方法,如果手动创造了有参数的构造方法,如果想调用无参构造方法,一定要手动创造无参构造方法。

本文地址:https://blog.csdn.net/m0_45196258/article/details/107555852

相关标签: java