Java基础-day09-基础题-对象&类&封装
1.定义手机类并测试
代码实现:
package StudentJavaSEday09;
//定义手机类
public class Phone {
//品牌
String brand;
//价格
int price;
//颜色
String color;
//打电话
public void call(String name) {
System.out.println("给"+name+"打电话");
}
//发短信
public void sendMessage() {
System.out.println("群发短信");
}
}
package StudentJavaSEday09;
public class TestPhone {
public static void main(String[] args) {
// 创建对象
Phone p = new Phone();
// 输出成员变量值
System.out.println("品牌:" + p.brand);// null
System.out.println("价格:" + p.price);// 0
System.out.println("颜色:" + p.color);// null
System.out.println("------------");
// 给成员变量赋值
p.brand = "锤子";
p.price = 2999;
p.color = "棕色";
// 再次输出成员变量值
System.out.println("品牌:" + p.brand);// 锤子
System.out.println("价格:" + p.price);// 2999
System.out.println("颜色:" + p.color);// 棕色
System.out.println("------------");
// 调用成员方法
p.call("唐嫣");
p.sendMessage();
}
}
运行结果:
2.一个对象的内存图
定义一个手机类:
代码实现:
package StudentJavaSEday09;
public class Phone2 {
public static void main(String[] args) {
Phone p = new Phone();
System.out.println(p.brand + "---" + p.price + "---" + p.color);
p.brand = "锤子";
p.price = 2999;
p.color = "棕色";
System.out.println(p.brand + "---" + p.price + "---" + p.color);
p.call("林青霞");
p.sendMessage();
}
}
运行结果:
内存图解:
3.两个对象,引用同一个方法内存图
代码实现:
package StudentJavaSEday09;
public class Phone3 {
public static void main(String[] args) {
Phone p1 = new Phone();
p1.brand = "小米5s";
p1.price = 1999;
p1.color = "银色";
System.out.println(p1.brand + "---" + p1.price + "---" + p1.color);
p1.call("林青霞");
p1.sendMessage();
Phone p2 = new Phone();
p2.brand = "IPhone7S";
p2.price = 7999;
p2.color = "土豪金";
System.out.println(p2.brand + "---" + p2.price + "---" + p2.color);
p2.call("张曼玉");
p2.sendMessage();
}
}
运行结果:
内存图解:
4.两个引用,指向同一个对象
代码实现:
package StudentJavaSEday09;
public class Phone4 {
public static void main(String[] args) {
Phone p1 = new Phone();
p1.brand = "OPPO";
p1.price = 2999;
p1.color = "白色";
System.out.println(p1.brand + "---" + p1.price + "---" + p1.color);
Phone p2 = p1;
p2.brand = "魅族";
p2.price = 1999;
p2.color = "蓝色";
System.out.println(p1.brand + "---" + p1.price + "---" + p1.color);
System.out.println(p2.brand + "---" + p2.price + "---" + p2.color);
}
}
运行结果:
内存图解: