Java 面向对象(一)

来源:互联网 发布:域名注册哪家好 编辑:程序博客网 时间:2024/05/17 21:50

------- android培训、java培训、期待与您交流! ----------

Java面向对象

自述:刚接触到面向对象是在学习C++的时候,觉得面向对象的思想真奇妙,真的是很吸引人,觉得这种思想解决现实问题高效,快捷!直到今天我又学习到了面向对象的语言Java

Object-oriented(面向对象)
面向对象思想-----万物皆对象。
对象生命周期-----任何对象都有生命周期。
以后开发:其实就是找对象使用。没有对象,就创建一个对象。

找对象,建立对象,使用对象。维护对象的关系。


怎样理解面向对象?
1面向对象是相对面向过程而言
2面向对象和面向过程都是一种思想
3面向过程强调的是功能行为
   面向对象将功能封装进对象,强调具备了功能的对象

4面向对象是基于面向过程的

一、面向对象的基本概念

    (1)对象
    对象是人们要进行研究的任何事物(即被研究对象),从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
    (2)对象----状态和行为。
    对象具有状态(属性),一个对象用数据值来描述它的状态。
    对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
    对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中
   (3)
    具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。
    类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
    类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
    (4)类的结构
    在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即(一般--具体)结构关系,(整体--部分)结构关系。
    ①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
    ②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。
    (5)消息和方法。
    对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

    类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体

 

二、面向对象的特征

  (1)封装性

在Java中,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成,其中数据和函数都是类的成员。

 (2)继承性--实现了代码的复用,和对象个性的展示。

    继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

    在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

    在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

    在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。

    采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

  (3)多态性(多形性)

    多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

    多态性允许每个对象以适合自身的方式去响应共同的消息。

    多态性增强了软件的灵活性和重用性。

 

 

三、面向对象的特点

1、是一种符合人们思考习惯的思想
2、可以将复杂的事情简单化
3、将程序员从执行者转换成了指挥者
4、完成需求时:先要去找具有所需的功能的对象来用。

如果该对象不存在,那么创建一个具有所需功能的对象。

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

 

四、类和对象的关系

 
现实生活中的对象:张三 李四。
想要描述:提取对象中共性内容。对具体的抽象。

描述时:这些对象的共性有:姓名,年龄,性别,学习java功能。


映射到java中,描述就是class定义的类。
具体对象就是对应java堆内存中new建立实体。
类 [has  a]就是:对现实生活中事物的描述
对象:就是这类事物,实实在在存在个体。
示例:

//需求:描述汽车(颜色,轮胎数)。描述事物其实就是在描述事物的属性和行为。

 

//属性对应是类中变量,行为对应的类中的函数(方法)
//其实定义类,就是在描述事物,就是在定义属性和行为。属性和行为共同成为类中的成员(成员变量和成员方法)

完成一个类的描述:

 

 

五、细节问题

1成员变量:成员变量定义在类中,在整个类中都可以被访问。
成员变量随着对象的建立而建立,存在于对象所在的堆内存中。
成员变量有默认初始化值。
2局部变量:局部变量只定义在局部范围内,如:函数内,语句内等
局部变量存在于栈内存中。
作用的范围结束,变量空间会自动释放。
局部变量没有默认初始化值。
 
3、对象的特点在于封装数据。存在于堆内存中。
4、匿名对象:
Car c = new Car();
c.num = 5;
|
new Car().num = 5;   此句取代上边两句
new Car().color = "blue";  匿名对象调用属性无意义
new Car().run();          匿名对象调用方法有意义

5、匿名对象使用方式一:

当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。

//如果对一个对象进行多个成员调用,必须给这个对象起个名字。

//匿名对象使用方式二:

可以将匿名对象作为实际参数进行传递。

6、对象内存构造
 
  

 


0 0
原创粉丝点击