Java面向对象的理解
一,面向对象与面向过程
1,“面向对象”,它很显然是注重研究对象的,也就是注重个体的结果,通俗的说就是我去使用你,你要达到我的某种目的**(面向对象是指你能为我带来什么?)**
2,“面向过程”显然就是重视过程的重要性,过程会产生不同的影响,因此因果关系颇为重要,也就是说,我们之间存在某种因果关系使我不得不去使用你。(面向过程指我们之间存在联系)
3,联系上述解释就可以得知,面向对象是基于面向过程开发来的**(c语言面向过程,c++半过程半对象,Java面向对象)**,因为想要有结果就一定要有过程,只不过我们可以不再去分析过程而是直接导向结果,因此是面向对象编程。
二,面向对象和过程的优缺点
1,面向对象:因为以结果为导向,因此面向对象的好处:耦合度低、扩展性强大、易实现复杂的逻辑思维;但也有与之对应的缺点:经济上前期投入较高,必须对独立体进行抽取。
2,面向过程:因为对过程分析,需要按部就班,所以耦合性高。虽然在简单逻辑的程序上容易实现,但是较难完成复杂的逻辑。经济上来讲,投入低,可以快速开发。
3,面向对象具有**封装、多态、继承(这三个很重要)**等优点
注:部分专业术语:
(1)面向对象分析——OOA
(2)面向对象设计——OOD
(3)面向对象编程——OOP
三,类和对象
1,**类:**类是一个模板,一个虚拟的概念,存在于我们的脑海中
2,**对象:**真实存在的,现实中有的
3,结合在一起也就是:我从现实生活中看到了某某事物的联系(对象)通过程序员用在虚拟的世界中呈现出来(类)。因此,在软件开发的时候有这样的流程:
(1)观察世界,找对象并通过抽象思维寻找到不同对象的相同特征
(2)程序员脑中形成模板通过编码来表述
(3)可以对类进行定义
(4)创建对象
(5)开始编程……
4,类描述的是对象的共同特征,比如:体重特征;在访问体重特征时,我需要先创建对象,通过对象访问这个特征,虽然它的数值不同。因此,一个类要有描述的信息,通常由状态+动作组成
类:{
(1)属性:描述对象的状态信息
(2)方法:描述对象的动态信息
}
例:
public class Students{//定义了一个代表学生对象的类
//属性[状态信息]
//它们是成员变量(在方法体之外叫做成员变量)
int no//学号
String name//姓名;String为引用数据类型,不是基本数据类型
boolean sex//性别
int age//年龄
……
注:专业术语:
(1)从类→对象被称为“实例化”
(2)从对象→类被称为“抽象”
(3)对象也被叫“实例”