Java基础-day09-基础题-对象;类;封装

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);
 }
}

运行结果:

内存图解:

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2017-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏斑斓

编程修炼 | Scala中Stream的应用场景及其实现原理

假设一个场景需要在50个随机数中找到前两个可以被3整除的数字。听起来很简单,我们可以这样来写: def randomList = (1 to 50).map(_...

30050
来自专栏静晴轩

JavaScript 字符串实用常操纪要

JavaScript 字符串用于存储和处理文本。因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作...

40870
来自专栏青玉伏案

窥探Swift之基本数据类型

  在上一篇博客“窥探Swift编程之在Playground上尽情的玩耍”中介绍了如何使用Playground来学习Swift语言。本篇博客就使用Playgro...

21250
来自专栏曾大稳的博客

LinkedHashMap和LruCache源码分析

LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashMap的...

21530
来自专栏菩提树下的杨过

java:集合的自定义多重排序

有一个乱序的对象集合,要求先按对象的属性A排序(排序规则由业务确定,非A-Z或0-9的常规顺序),相同A属性的记录,按根据属性B排序(排序规则,同样由业务确定,...

9310
来自专栏机器学习入门

挑战程序竞赛系列(77):4.3 2-SAT(1)

挑战程序竞赛系列(77):4.3 2-SAT(1) 传送门:POJ 3683: Priest John’s Busiest Day 题意: 有n个婚礼,每个...

21060
来自专栏aCloudDeveloper

十个例子让你完全搞懂 C++ 的虚函数(不懂来找我)

Author: bakari  Date: 2012.4.8 虚函数是C++中非常重要的一个概念,它最大的好处是能够触发动态绑定。C++中的函数默认不使用动态绑...

25150
来自专栏cs

python循环综合运用

循环很重要,计算机很蠢,唯一的优势就是按照指令不停的执行,所以决定在说一下。 break语句,用在循环体中,迫使循环立即终止,即跳出所在循环体,继续执行循环体后...

36470
来自专栏Java面试通关手册

精研3道简单的网易2018校招编程题

下面三道编程题来自网易2018校招编程题,这三道应该来说是非常简单的编程题了,这些题目大家稍微有点编程和数学基础的话应该没什么问题。看答案之前一定要自己先想一下...

23660
来自专栏chenjx85的技术专栏

leetcode-605-Can Place Flowers

10930

扫码关注云+社区

领取腾讯云代金券