面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

来源:互联网 发布:广州三支箭网络 编辑:程序博客网 时间:2024/05/02 20:39

面向对象概念


 

理解面向对象

 

面向对象是相对面向过程而言
 
面向对象和面向过程都是一种思想
 
面向过程
 
  •强调的是功能行为
 
面向对象
 
  •将功能封装进对象,强调具备了功能的对象。
 
面向对象是基于面向过程的。
 
 

面向过程

 

    在一个结构体中定义窗口的大小,位置,颜色,背景等属性,

对窗口操作的函数与窗口本身的定义没有任何关系,

如HideWindow,MoveWindow,MinimizeWindow,这些函数都需要接受一个代表要被操作的窗口参数 ,

是一种谓语与宾语的关系 。

 

 

面向对象

 

      定义窗口时,除了要指定在面向过程中规定的那些属性,如大小,位置,颜色,背景等外,

还要指定该窗口可能具有的动作 ,

如隐藏,移动,最小化等。这些函数被调用时,都是以某个窗口要隐藏,某个窗口要移动的语法格式来使用的 ,

这是一种主语与谓语的关系。

 

 

面向过程的思想和面向对象的思想

  面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,

你分析这个问题不再是第一步先做什么,

第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,

然后再分析这些类和对象应该具有哪些属性和

方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。

      面向对象有一个非常重要的设计思维:合适的方法应该出现在合适的类里面

 

面向对象的设计思想

  面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,

并在系统的构造中尽可能运用人类的自然思维方式。

  面向对象更加强调运用人类在日常生活的逻辑思维中经常采用的思想方法与原则,

如抽象、分类,继承、聚合、多态等。

  人在思考的时候,首先眼睛里看到的是一个一个的对象。

 

 


 

 

面向对象的特点 

 

是一种符合人们思考习惯的思想
 
可以将复杂的事情简单化
 
将程序员从执行者转换成了指挥者
 
完成需求时:
 
  • 先要去找具有所需的功能的对象来用。
 
  • 如果该对象不存在,那么创建一个具有所需功能的对象。
 

  • 这样简化开发并提高复用。

 


 

 

面向对象开发,设计,特征

开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。
 
设计的过程:其实就是在管理和维护对象之间的关系。
 
面向对象的特征:
 
  •封装(encapsulation)
 
  •继承(inheritance)
 
  •多态(polymorphism)

 

 

 

面向对象还支持如下几个功能:

     1)对象是面向对象方法中最基本的概念,它的基本特点是:

标识唯一性、分类性、多态性、封装性、模块独立性好。

     2)类是具有共同属性、共同方法的一类事物。类是对象的抽象;对象则是类的实例。

   而类是整个软件系统最小的程序单元,类的封装性将各种信息细节隐藏起来,

并通过公用方法来暴露该类对所提供的功能,

   从而提高了类的内聚性,降低了对象之间的耦合性。

     3)对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息”。

消息是一个实例与另一个实例之间相互通信的机制。

     4)在面向对象方法中,类之间共享属性和操作的机制称为继承。继承具有传递性。

   继承可分为单继承(一个继承只允许有一个直接父类,即类等级为树形结构)

与多继承(一个类允许有多个直接父类),

   但Java不支持多继承。

 

在Java语言中除了8个基本数据类型值之外,一切都是对象,而对象就是面向对象程序设计的中心。

对象具有状态,一个对象用数据值来描述它的状态。

Java通过对对象定义Field(以前常被称为属性,现在也称字段)来描述对象的状态;

对象还有操作,这些操作可以改变对象的状态,

对象的操作也被称为对象的行为,Java通过为对象定义方法来描述对象的行为。

       对象是Java程序的核心,所以在Java里的对象具有唯一性,每个对象都有一个标识来引用它,

如果某个对象失去了标识,这个对象将变成垃圾,只能等着系统垃圾回收机制来回收它。

Java语言不允许直接访问对象,

而是通过对对象的引用来操作对象。

 

在Java语言使用class关键字定义类,定义类时可使用Field来描述该类对象的数据,

可使用方法来描述该类对象的行为特征。

Java语言使用extends关键字来表示继承关系。

 

Java使用new关键字来创建指定类的对象,每个类可以创建任意多个对象,多个对象的Field值可以不同。


类与对象的关系

 

使用计算机语言就是不断的在描述现实生活中的事物。
 
java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。
 
对象即是该类事物实实在在存在的个体。
 

类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。 

 

    类与对象的关系如图

 

 

 

可以理解为:
 
  •类就是图纸
 
  •汽车就是堆内存中的对象

 

对于同一类事物可以抽取它们的共性的内容,定义在类中。

如生活中的汽车,每一台车都有轮胎数和颜色。

那么在通过java描述汽车这类事物时,就可以将这两个共性属性作为类中的属性进行定义。

通过该类建立的每一个汽车实体都具有该属性,并可以有对象特有的属性值。

 


 

类的定义

 

生活中描述事物无非就是描述事物的属性行为

 

  •如:人有身高,体重等属性,有说话,打球等行为。

 

Java中用类class来描述事物也是如此

 

  •属性:对应类中的成员变量。

 

  •行为:对应类中的成员函数。

 

定义类其实在定义类中的成员(成员变量和成员函数)。
 
每一个JAVA里面的class(类)都对应了我们现实生活中某一类事物的一个抽象
 

 


 

 

成员变量和局部变量的区别?

 

成员变量
 
  •成员变量定义在类中,在整个类中都可以被访问。
 
  •成员变量随着对象的建立而建立,存在于对象所在的堆内存中。
 
  •成员变量有默认初始化值。
 
局部变量
 
  •局部变量只定义在局部范围内,如:函数内,语句内等。
 
  •局部变量存在于栈内存中。
 
  •作用的范围结束,变量空间会自动释放。
 
  •局部变量没有默认初始化值。
 
方法体中局部变量若与成员变量同名,局部变量将屏蔽成员变量。
0 0
原创粉丝点击