第九天-JVM数据存储/面向对象基础概述-类的定义/对象的创建/对象在jvm中的存储结构/成员属性/访问权限/构造方法等/
java中像String和Scanner这种自定义类型都属于引用数据类型。
四型八种中的值类型属于基本类型和自定义类型同样都属于对象类型。
定义好类jvm会把这个类当做字节码处理。
一个java类可以产生n个属于此类型的对象(实例),java类是创建java对象的模板,java对象是java类的具体表现形式,java类是一个抽象的表现。
运行对象访问对象里的内容称为封装。
创建类
创建对象
允许perObject引用Person中的数据。
使用其他包中创建的自定义类,创建对象,并赋值给局部变量
对象在jvm中的存储
Stack代表栈 heap代表堆
PerObject局部变量对象引用Person自定义类型对象。
创建另外一个Person类型对象
创建另外一个Person类型对象,并赋值给新的局部变量perObject3
成员属性
实例成员属性
实例属性的访问与赋值取值
访问修饰符
访问修饰符修饰后的具体访问权限
类属性和常量属性
建议使用类名(静态方式引用静态属性),也可以使用局部变量的stu.去访问。
构造方法
使用和类名相同的名创建无参数的构造器,默认的构造器将被覆盖。
构造器就是为了创建对象而存在的。
测试构造器是否被使用,并显示构造器的完整类名(构造器名应和类名相同),用红色字体输出把out改成err即可。
创建有参数的构造方法
创建一个有参构造方法
使用有参构造方法创建一个对象,并测试构造方法是否被正常使用
如果局部变量和成员变量同名时,则局部变量优先级最高,局部变量内变量指向局部变量,所以创建对象赋初值时会无法赋值到成员变量
成员变量名前加this.即可成功指向成员变量位置,即可使后面对象初始值成功赋值到位,即可输出时成功取到成员变量的值。
通过以上构造方法中成员变量名前加this.使构造方法中的age赋值到成员变量age中。
在静态修饰的方法中不能使用this。
构造方法重载
方法名必须相同,参数必须是有所不同的
根据初始赋值的参数指向对应的构造方法
利用set赋值和get取值
可以加入一些条件
eclipse快速生成成员属性