一、
1.一个对象内存图:

2.两个对象内存图:

3.两个对象指向同一片内存空间:

二、成员变量和局部变量的区别:
1.定义位置不同
a.成员变量:类中方法外
b.局部变量:定义在方法之中或者参数位置
2.初始值不同
a.成员变量:有默认值,所以不用手动赋值就可直接使用
b.局部变量:没有默认值,需要先手动赋值再使用
3.作用范围不同
a.成员变量:作用于整个类
b.局部变量:只作用于自己所在的方法,其他方法使用不了
4.内存位置不同
a.成员变量:在堆中,跟着对象走
b.局部变量:在栈中,跟着方法走
5.生命周期不同
a.成员变量:随着对象的创建而产生,随着对象消失而消失
b.局部变量:随着方法的调用而产生,随着方法的调用完毕而消失
三、类和对象的练习:
需求:定义一个类MyDate,属性有 year month day
再定义一个类Citizen(公民类),属性有name(Sting类型) birthday(MyDate类型) idCard(String类型),为这三个属性赋值,然后将值取出来。
public class MyDate {
int year;
int month;
int day;
}
class Citizen{
String name;
MyDate birthday;
String idCard;
}
public class text {
public static void main(String[] args) {
Citizen cz = new Citizen();
cz.name = "杰洛";
cz.birthday = new MyDate();
cz.birthday.year = 2000;
cz.birthday.month = 5;
cz.birthday.day = 25;
cz.idCard = "808208820";
System.out.println(cz.name + cz.birthday.year + cz.birthday.month + cz.birthday.day + cz.idCard);
}
}
MyDate属于自定义类型(引用数据类型),在操作之前必须先赋值,赋值需要new对象。
1287

被折叠的 条评论
为什么被折叠?



