面向对象--对象内存图
对象内存图
1个对象的内存图
一个对象的基本初始化过程
程序示例
/*
手机:
属性:品牌,颜色,价格
行为:打电话,发短信,学习
Phone:
成员变量:brand,color,price
成员方法:call,sendMessage,study
*/
public class Phone {
//定义成员变量
String brand;
String color;
int price;
//定义成员方法
//打电话
public void call(String s) {
System.out.println("给" + s + "打电话");
}
//发短信
public void sendMessage() {
System.out.println("群发短信");
}
//学习
public void study() {
System.out.println("学习");
}
}
class PhoneDemo {
public static void main(String[] args) {
//通过手机类创建一个手机对象
Phone p1 = new Phone();
//访问成员变量
System.out.println("品牌:" + p1.brand + ",颜色:" + p1.color + ",价格:" + p1.price);
//手动给成员变量进行赋值操作
p1.brand = "华为";
p1.color = "黑色";
p1.price = 2999;
System.out.println("品牌:" + p1.brand + ",颜色:" + p1.color + ",价格:" + p1.price);
//访问成员方法
p1.call("杨老板");
p1.sendMessage();
p1.study();
}
}
内存图解
2个对象的内存图
方法的共用
程序示例
public class Phone2 {
//定义成员变量
String brand;
String color;
int price;
//定义成员方法
public void call(String s){
System.out.println("给"+s+"打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
public void study(){
System.out.println("学习");
}
}
class PhoneDemo2{
public static void main(String[] args) {
//创建第一个手机对象
Phone2 p1 = new Phone2();
//给成员变量进行赋值
p1.brand = "小米";
p1.color = "陶瓷黑";
p1.price = 4999;
System.out.println(p1.brand+"--"+p1.color+"--"+p1.price);
//访问成员方法
p1.call("朱佳乐");
p1.sendMessage();
p1.study();
//创建第二个手机对象
Phone2 p2 = new Phone2();
p2.brand = "苹果";
p2.color = "黑色";
p2.price = 14000;
System.out.println(p2.brand+"--"+p2.color+"--"+p2.price);
//访问成员方法
p2.call("杨旭");
p2.sendMessage();
p2.study();
}
}
内存图解
2个对象的内存图
将一个对象赋值给另一个对象
程序示例
public class Phone3 {
//定义成员变量
String brand;
String color;
int price;
//定义成员方法
public void call(String s) {
System.out.println("给" + s + "打电话");
}
public void sendMessage() {
System.out.println("发短信");
}
public void study() {
System.out.println("学习");
}
}
class PhoneDemo3 {
public static void main(String[] args) {
/*
创建两个手机对象 p1 p2,将p1 赋值给p2
*/
//创建第一个手机对象
Phone3 p1 = new Phone3();
//给成员变量进行赋值
p1.brand = "诺基亚";
p1.color = "白色";
p1.price = 299;
System.out.println(p1.brand + "--" + p1.color + "--" + p1.price);
p1.call("贝贝");
p1.sendMessage();
p1.study();
//创建第二个手机,并且将p1赋值给p2,然后修改p2的成员变量值
Phone3 p2 = p1;
p2.price = 3999;
System.out.println(p1.price);
System.out.println(p2.price);
}
}
内存图解