第九章 对象的创建和使用
类名 变量名 = new 类名();
这样就完成了对象的创建
2 什么是实例变量?
对象又被称为实例。实例变量实际上就是:对象级别的变量。
public class 明星类{
double height;
}
身高这个属性所有的明星对象都有,但是每一个对象都有“自己的身高值”。
假设创建10个明星对象,height变量应该有10份。
所以这种变量被称为对象级别的变量。属于实例变量。
3 对象和引用的区别?
对象是通过new出来的,在堆内存中存储。
引用是:但凡是变量,并且该变量中保存了内存地址指向了堆内存当中的对象。
Studen2t.java
/*
学生类:
学号:int
姓名:String
年龄:int
性别:boolean
住址:String
变量必须先声明,再赋值才能访问。
注意:对于成员变量来说,没有手动赋值时,系统默认赋值。赋的值都是默认值,那么默认值是什么?
类型 默认值
-------------------
byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0
boolean false
char \u0000
引用数据类型 null
null是一个关键字,全部小写,表示空。是引用类型的默认值。
分析:对于成员变量来说,是不是应该一个对象有一份。
李四有李四的学号
张三有张三的学号
李四和张三的学号不一样,所以应该有两块不同的内存空间
*/
public class Student2{
// 属性(描述状态),在java程序中以“成员变量”的形式存在。
// 学号
// 一个对象一份。
int no;
// 姓名
String name;
// 年龄
int age;
// 性别
boolean sex;
// 住址
String addr;
}
StudentTest2.java
public class StudentTest2{
public static void main(String[] args){
// 局部变量
// 错误:可能尚未初始化变量k
/*
int k;
System.out.println(k);
*/
// 访问学生姓名可以直接通过类名吗?
// 学生姓名是一个实例变量。实例变量是对象级别的变量
// 是不是应该先对象才能说姓名的事儿。
// 不能通过“类名”来直接访问“实例变量”
// System.out.println(Student.name);
// i属于局部变量吗?当然是
// 局部变量存储在栈内存当中。(栈主要存储局部变更)
int i = 100;
// 创建学生对象1
// s1属于局部变量吗?当然是
// s1这个局部变量叫做引用
Student2 s1 = new Student2();
// 怎么访问实例变量?
// 语法:引用.实例变量名
System.out.println(s1.no);
System.out.println(s1.name);
System.out.println(s1.age);
System.out.println(s1.sex);
System.out.println(s1.addr);
System.out.println("---------------------");
// 创建学生对象2
// s2也是局部变量
// s2也叫做引用
Student2 s2 = new Student2();
System.out.println(s2.no);
System.out.println(s2.name);
System.out.println(s2.age);
System.out.println(s2.sex);
System.out.println(s2.addr);
// 程序执行到此处我可以修改s1这个学生的信息吗?
// 通过“=”赋值的方式将内存中实例变量的值修改一下。
s1.no = 110;
s1.name = "xiaohong";