面向对象概念
理解面向对象
面向过程
在一个结构体中定义窗口的大小,位置,颜色,背景等属性,
对窗口操作的函数与窗口本身的定义没有任何关系,
如HideWindow,MoveWindow,MinimizeWindow,这些函数都需要接受一个代表要被操作的窗口参数 ,
是一种谓语与宾语的关系 。
面向对象
定义窗口时,除了要指定在面向过程中规定的那些属性,如大小,位置,颜色,背景等外,
还要指定该窗口可能具有的动作 ,
如隐藏,移动,最小化等。这些函数被调用时,都是以某个窗口要隐藏,某个窗口要移动的语法格式来使用的 ,
这是一种主语与谓语的关系。
面向过程的思想和面向对象的思想
面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,
你分析这个问题不再是第一步先做什么,
第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,
然后再分析这些类和对象应该具有哪些属性和
方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。
面向对象有一个非常重要的设计思维:合适的方法应该出现在合适的类里面
面向对象的设计思想
面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,
并在系统的构造中尽可能运用人类的自然思维方式。
面向对象更加强调运用人类在日常生活的逻辑思维中经常采用的思想方法与原则,
如抽象、分类,继承、聚合、多态等。
人在思考的时候,首先眼睛里看到的是一个一个的对象。
面向对象的特点
• 这样简化开发并提高复用。
面向对象开发,设计,特征
面向对象还支持如下几个功能:
1)对象是面向对象方法中最基本的概念,它的基本特点是:
标识唯一性、分类性、多态性、封装性、模块独立性好。
2)类是具有共同属性、共同方法的一类事物。类是对象的抽象;对象则是类的实例。
而类是整个软件系统最小的程序单元,类的封装性将各种信息细节隐藏起来,
并通过公用方法来暴露该类对所提供的功能,
从而提高了类的内聚性,降低了对象之间的耦合性。
3)对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息”。
消息是一个实例与另一个实例之间相互通信的机制。
4)在面向对象方法中,类之间共享属性和操作的机制称为继承。继承具有传递性。
继承可分为单继承(一个继承只允许有一个直接父类,即类等级为树形结构)
与多继承(一个类允许有多个直接父类),
但Java不支持多继承。
在Java语言中除了8个基本数据类型值之外,一切都是对象,而对象就是面向对象程序设计的中心。
对象具有状态,一个对象用数据值来描述它的状态。
Java通过对对象定义Field(以前常被称为属性,现在也称字段)来描述对象的状态;
对象还有操作,这些操作可以改变对象的状态,
对象的操作也被称为对象的行为,Java通过为对象定义方法来描述对象的行为。
对象是Java程序的核心,所以在Java里的对象具有唯一性,每个对象都有一个标识来引用它,
如果某个对象失去了标识,这个对象将变成垃圾,只能等着系统垃圾回收机制来回收它。
Java语言不允许直接访问对象,
而是通过对对象的引用来操作对象。
在Java语言使用class关键字定义类,定义类时可使用Field来描述该类对象的数据,
可使用方法来描述该类对象的行为特征。
Java语言使用extends关键字来表示继承关系。
Java使用new关键字来创建指定类的对象,每个类可以创建任意多个对象,多个对象的Field值可以不同。
类与对象的关系
类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。
对于同一类事物可以抽取它们的共性的内容,定义在类中。
如生活中的汽车,每一台车都有轮胎数和颜色。
那么在通过java描述汽车这类事物时,就可以将这两个共性属性作为类中的属性进行定义。
通过该类建立的每一个汽车实体都具有该属性,并可以有对象特有的属性值。
类的定义
成员变量和局部变量的区别?