Java内存模型

image.png

对象


public class Student {
    private String stuid;   //私有方法,外部不能直接访问,可以用以下的getStuid访问
    private String name;
    private int age;

    public Student(String stuid, String name, int age) {
        this.stuid = stuid;
        this.name = name;
        this.age = age;
    }

    public String getStuid() {
        return stuid;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "Student [stuid=" + stuid + ", name=" + name + ", age=" + age + "]";
    }
    
    public void show() {
        System.out.println("学号:" + stuid + ",姓名:" + name + ",年龄:" + age);
    } //成员方法
}

成员变量和局部变量

区别 成员变量 局部变量
类中位置 方法外 方法内
初始化值不同 有默认初始化值 没有默认初始化值,使用前必须完成赋值
内存位置不同 堆内存 栈内存
生命周期不同 随着对象的创建而存在,随着对象的消失而消失 随着方法的调用而存在,随着方法的弹栈而消失
作用域不同 在整个类中 在自己所在的大括号中

但局部变量和成员变量出现了重名,Java使用的是就近原则

image.png

方法

通用格式

public 返回值类型 方法名( 参数 ){
		方法体;
		return 数据;
}

void方法没有返回值,可以省略return。如果非要return,直接return。return会直接结束

image.png

this关键字

this是当前类对象的应用(地址)

哪一个对象调用的this,this就代表哪一个对象

image.png

方法重载