一, 创建一个学生类
每个学生都有学号信息, 但是每一个学生的学号都是不同的, 所以要访问这个学号必须先创建对象, 通过对象去访问学号信息, 学号信息不能直接通过 "类" 去访问, 所以这种成员变量又被称为 "实例变量"
注意:
(1) 对象又被称为实例, 实例变量又被称为对象变量 (对象级别的变量)
(2) 不创建对象, 这个 Number 的内存空间是不存在的, 只有创建了对象, 这个 number 变量内存才会被创建
(3) 通过一个类可以实例化多个对象
(4) 实例化对象的语法
new 类名 ();
(5)new 是 java 语言中的一个运算符
(6)new 运算符的作用: 创建对象, 在 JVM 堆内存中开辟新的二内存空间
(7) 方法区内存: 在类加载的时候, class 字节码代码片段被加载在该内存空间之中
(8) 栈内存 (局部变量): 方法代码片段被执行的时候, 会给该方法分配内存空间, 在栈内存中, 进行压栈
(9) 堆内存: new 的对象在堆内存中被存储;
(10)D32_student 是一个引用数据类型, s 是一个变量名, new D32_student() 是一个学生对象, s 是一个局部变量 (在栈内存中存储)
(11) 什么是对象? new 运算符在堆内存中开辟的内存空间称为对象
(12) 什么是引用? 引用是一个变量, 只不过这个变量中保存了另一个 java 对象的内存地址
(13)java 语言中, 不能直接操作堆内存, java 中没有指针, 不想 C 语言
(14)java 语言中, 只能通过 "引用" 去访问堆内存中的对象内部的实例变量
(15) 访问实例变量的语法格式:
读取数据: 引用. 变量名
修改数据: 引用. 变量名 = 值
举例:
- public class D33_student2_test {
- public static void main(String[] args) {
- D32_student s = new D32_student();
- System.out.println("jfahsf");
- s.no = 154;
- s.address = "jafalj";
- System.out.println(s.no);
- D32_student s2 = new D32_student();
- System.out.println(s2.no);
- // 以下程序报错, 因为 no 这个实例变量不能直接采用 "类名" 的方式访问
- // 因为 no 是实例变量, 对象级别的变量, 变量存储在 java 对象的内部, 必须先有对象, 因为对象才能访问 no 这个实例变量
- // 不能直接通过 "类名" 来访问
- //System.out.println(D32_student().no);
- }
- }
- class D32_student {
- //public static main(Sting[] args) {
- int no;// 学号
- String name;// 姓名
- int age;// 年龄
- boolean sex;// 性别
- String address;// 地址
- // 方法是描述对象的动作信息, 当前例子就不描述方法了, 只描述信息属性
- //}
- }
二, 源码:
D33_student2_test.java
地址:
- https://github.com/ruigege66/Java/blob/master/D33_student2_test.java
- 2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知 - 睿)
3. 博客园: https://www.cnblogs.com/ruigege0000/
来源: https://www.cnblogs.com/ruigege0000/p/11570169.html