面向对象编程概念
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/index.html
什么是对象?
对象是软件中相关状态和行为的集合。软件中的对象是现实世界中真实事务的模型。现实世界中的事务我们也称之为现实世界中的对象。
对象概念是面向对象技术的关键。软件中的对象可以和现实世界中的对象相互对应。
在现实世界中的对象都有两个共同特点:他们的状态 + 他们可以进行的行为。例如狗的名字、颜色等状态,加上吃饭、睡觉等行为。
面向对象编程的一个很的开端就是对现实世界中对象的状态和行为进行定义。
软件中的对象使用域(fields/variables)来存储对象的状态,使用方法(methods/functions)来表示对象的行为。方法可以操作对象中的状态,并作为不同对象间交流的工具。
数据封装(面向对象编程的基本原则):影藏对象内部的状态和实现细节,并且要求所有与对象的交互都通过方法完成。
将代码绑定在独立的软件对象中带来的好处:
1. 模块化;
一个对象的代码可以独立于其他对象进行维护。一旦对象被创建,可以在整个系统中被使用。
2. 信息影藏;
只通过对象向外部暴露的方法操作对象,可以隐藏对象内部的实现细节。
3. 代码重用;
不论自己还是别人写的对象存在,都可以在程序中使用。当一个特定的对象通过测试后,就可以放心的在自己的程序中使用它。
4. 添加和调试简单。
如果一个对象在程序中出现问题,只需要将其替换就可以解决问题。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/object.html
什么是类?
类是创建对象的蓝图或者原型。
在真实世界中,会存在很多相同类型的对象。比如,我们会见到上千辆同一类型的自行车,他们都是按照某个设计批量生产的,有相同的结构和零件。
在面向对象技术的术语中,一个对象 = 某一种对象类型的一个实例(instance)。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/class.html
什么是继承?
继承机制为软件提供了强大和自然的结构组织方式。不同的对象经常包含一些共同的内容,例如自行车中的山地车、公路车等,他们都包含共同的内容为当前速度、档位、加速、减速等。这些共同的内容可以单独组合成一个更为通用或者抽象的自行车类型。具体的公路车、山地车等类型可以在通用的自行车类型中添加各自的新特性成为更为具体的类型。
这种对原有类型进行扩展,使新类型拥有原有类型的全部内容,同时也拥有扩展出来的新内容叫做继承。
面向对象编程允许一个类继承其他类的通用状态和方法。
在代码中,新类的代码实现中不需要包含被继承类的内容。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html
什么是接口?
接口是类与现实世界的交互协议。当类实现了接口时,它就提供了接口中定义的所有行为。
程序中的对象是通过向外暴露的方法与外界进行互动的。这些方法组成了对象与外界的接口。
接口的通常形式:一组没有方法体的相关方法定义。
类对接口的实现是更为正式地对外提供行为的方式。如果类对接口进行了实现,那么在编译的时候就会进行接口实现的强制检查:类的源代码中必须包含其实现接口中的所有方法。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/interface.html
什么是包?
包是一个名字空间,用来对类和接口进行逻辑组织。
包可以看做系统中的文件目录。相似于将图片、HTML页面、脚本等放在不同的文件夹中,用Java编写的软件可能包含成百上千的类和接口,根据这些类和接口的关联和特性,把他们放在不同的包中。
把代码放入包中的方式,可以让大型软件项目更容易管理。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/package.html
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/index.html
什么是对象?
对象是软件中相关状态和行为的集合。软件中的对象是现实世界中真实事务的模型。现实世界中的事务我们也称之为现实世界中的对象。
对象概念是面向对象技术的关键。软件中的对象可以和现实世界中的对象相互对应。
在现实世界中的对象都有两个共同特点:他们的状态 + 他们可以进行的行为。例如狗的名字、颜色等状态,加上吃饭、睡觉等行为。
面向对象编程的一个很的开端就是对现实世界中对象的状态和行为进行定义。
软件中的对象使用域(fields/variables)来存储对象的状态,使用方法(methods/functions)来表示对象的行为。方法可以操作对象中的状态,并作为不同对象间交流的工具。
数据封装(面向对象编程的基本原则):影藏对象内部的状态和实现细节,并且要求所有与对象的交互都通过方法完成。
将代码绑定在独立的软件对象中带来的好处:
1. 模块化;
一个对象的代码可以独立于其他对象进行维护。一旦对象被创建,可以在整个系统中被使用。
2. 信息影藏;
只通过对象向外部暴露的方法操作对象,可以隐藏对象内部的实现细节。
3. 代码重用;
不论自己还是别人写的对象存在,都可以在程序中使用。当一个特定的对象通过测试后,就可以放心的在自己的程序中使用它。
4. 添加和调试简单。
如果一个对象在程序中出现问题,只需要将其替换就可以解决问题。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/object.html
什么是类?
类是创建对象的蓝图或者原型。
在真实世界中,会存在很多相同类型的对象。比如,我们会见到上千辆同一类型的自行车,他们都是按照某个设计批量生产的,有相同的结构和零件。
在面向对象技术的术语中,一个对象 = 某一种对象类型的一个实例(instance)。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/class.html
什么是继承?
继承机制为软件提供了强大和自然的结构组织方式。不同的对象经常包含一些共同的内容,例如自行车中的山地车、公路车等,他们都包含共同的内容为当前速度、档位、加速、减速等。这些共同的内容可以单独组合成一个更为通用或者抽象的自行车类型。具体的公路车、山地车等类型可以在通用的自行车类型中添加各自的新特性成为更为具体的类型。
这种对原有类型进行扩展,使新类型拥有原有类型的全部内容,同时也拥有扩展出来的新内容叫做继承。
面向对象编程允许一个类继承其他类的通用状态和方法。
在代码中,新类的代码实现中不需要包含被继承类的内容。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/inheritance.html
什么是接口?
接口是类与现实世界的交互协议。当类实现了接口时,它就提供了接口中定义的所有行为。
程序中的对象是通过向外暴露的方法与外界进行互动的。这些方法组成了对象与外界的接口。
接口的通常形式:一组没有方法体的相关方法定义。
类对接口的实现是更为正式地对外提供行为的方式。如果类对接口进行了实现,那么在编译的时候就会进行接口实现的强制检查:类的源代码中必须包含其实现接口中的所有方法。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/interface.html
什么是包?
包是一个名字空间,用来对类和接口进行逻辑组织。
包可以看做系统中的文件目录。相似于将图片、HTML页面、脚本等放在不同的文件夹中,用Java编写的软件可能包含成百上千的类和接口,根据这些类和接口的关联和特性,把他们放在不同的包中。
把代码放入包中的方式,可以让大型软件项目更容易管理。
Ref: http://docs.oracle.com/javase/tutorial/java/concepts/package.html