编程语言
首页 > 编程语言> > Java编程思想学习笔记——1.0对象导论

Java编程思想学习笔记——1.0对象导论

作者:互联网

记录学习使用,欢迎留言讨论(如果想要知道完整的知识请查看java编程思想第一章的内容)
居然因为版权审核不过~~~

抽象过程

只针对待解决问题建模:首先可以理解为有两个模型一个是我们所遇见的问题所用是问题空间,一个是解决问题所用是解空间。他们是一一对应关系。
如要使用代码实现一个灯泡,在问题空间中应该有一个灯,它具有开灯、关灯、变亮、变暗的功能。
在对应的解空间中就有一个Light对象以及对应的方法。在这里插入图片描述

Light lt = new Light();
lt.on();

通过将问题抽象成对象,给对象发送请求(调用方法)完成灯的操作。
面向对象语言五个基本特性

隐藏具体实现

好的程序应该做到高类聚低耦合(每个类负责一个功能,类和类之间尽量减小关联)
将程序开发人员分为类创建者客户端程序员
类的创建和使用将其分离开(Spring框架就完成了创建和使用的分离,AOP还能进行扩展),有些类中的成员变量并不允许直接访问,如果改变其值很容易发生bug。
访问控制两个原因:

组合和继承

组合是将一个作为另一个类的成员变量使用其方法。如下图
组合可以组合多个成员变量但是继承只能继承一个,而且组合相对于继承更加的灵活,在设计模式看来继承比组合耦合度更高,在考虑使用时应该优先考虑组合。

继承如下图:
在这里插入图片描述
面向对象的一个好处就是可以使用多态特性:

//定义一个方法,传入一个几何形进行擦除和绘制
void doSomething(Shape shape){
	shape.erase;
	//...
	shape.draw;
}
Circle circle = new Circle();
Square square = new Square();
doSomething(circle);
doSomething(square);

因为继承会继承基类的方法,每个继承自基类的导出类都有其父类的方法。
此处运用向上转型的方式操作圆、正方形进行擦除和绘制。

单根继承结构

所有的java对象都继承自Object类。
这种单根继承结构使得每个类都具有一些相同的功能,例如比较equal方法、打印toString方法等。

标签:Java,组合,继承,编程,客户端程序,对象,使用,1.0,方法
来源: https://blog.csdn.net/guigui_xia/article/details/112146388