首页 > 编程语言 > 详细

Java学习笔记1

时间:2020-03-26 20:51:13      阅读:41      评论:0      收藏:0      [点我收藏+]

第二章 对象交互(1)


??其实对于面向对象编程已经在学C++时有过初步了解了,但很少真正使用,这此趁着学习Java更深层次地理解一下。 1.对象的交互

--引用浙大翁恺老师的话 ? 当一个对象里有多个对象的时候,那些对象之间是如何交互的,对象和对象之间的联系是如何建立的,对象如何和其他对象交流。对象和对象之间的联系紧密程度叫做耦合。对象和对象的耦合程度越紧,表现在源代码上,就是它们的代码是互相依赖、互相牵制的。我们理想的模型,是对象和对象之间的耦合要尽可能的松,平行的对象要尽量减少直接联系,让更高层次的对象来提供通信服务。

? 这里举了一个数字钟的例子 现在想实现一个简单的数字时钟,按照面向对象的思维需要用若干个类来实现,我们先构想一个Display类用来实现数字的增加功能,调用一次数字增加1,并为其设置一个界限limit成员变量,当数字达到了limit界限时清零。此外,添加一个返回当前数字值的函数,对当前时刻加以判断。

public class Display {
	private int limit=0;
	private int value=0;
	public Display(int limit)
	{
		this.limit=limit;
	}
	
	public int getValue()
	{
		return this.value;
	}
	
	public void Run()
	{
		value++;
		if(value==limit)
		{
			value=0;
		}
		//System.out.println(value);
	}
}

? 这时我们就要考虑调用这个Display类实现功能,我们考虑把钟分为两个部分,一个表示分钟的两位、另一个表示小时的两位,这两个部分分别用display构造,一个上限为24,另一个为60。但又如何令两个部分可以交互呢?即当分钟达到60时令小时加1,这时我们就借助Clock类,如果把hour和minute均封装到Clock类中,这样借助Clock这个第三者就可以判断其中一个对象的状态,并根据它来影响另一个对象的状态。

public class Clock {
	private Display hour=new Display(24);
	private Display minute=new Display(60);
	
	public void start()
	{
		while(true)
		{
			minute.Run();
			if(minute.getValue()==0)
			{
				hour.Run();
			}
			System.out.printf("%02d:%02d\n",hour.getValue(),minute.getValue());
		}
		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Clock clock=new Clock();
		clock.start();
	}
}

运行的结果如下: 技术分享图片

Java学习笔记1

原文:https://www.cnblogs.com/wmzclever/p/12576921.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!