1、封装(面向对象编程的核心思想)
首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类 事物的共性(包括属性与方法)归到一个类中,以方便使<span style="color:'orange'>用</span>。
1) 概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构 成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留 一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这 个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提 供的外部接口 (对象名和参数)访问该对象。
2) 好处:(1)实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可 以在需要的时候调用,从而实现了专业的分工。(2)隐藏信息,实现细节。通过控制访问权限可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开放 权 限。
2、继承
就是个性对共性的属性与方法的接受,并加入个性特有的属性与方法
-
概念:一个类继承另一个类,则称继承的类为子类,被继承的类为父类。
-
目的:实现代码的复用。
-
理解:子类与父类的关系并不是日常生活中的父子关系,子类与父类而是一种特殊化与一般化的关 系,是is-a的关系,子类是父类更加详细的分类。如class dog extends animal,就可以理解为dog is a animal.注意设计继承的时候,若要让某个类能继承,父类需适当开放访问权限,遵循里氏代换原 则,即向修改关闭对扩展开放,也就是开-闭原则。
-
结果:继承后子类自动拥有了父类的属性和方法,但特别注意的是,父类的私有属性和构造方法并 不能被继承。
-
好处:使用继承思想可以缩短软件开发的周期,复用那些已经定义好的类可以提高系统性能,减少系统在使用过程中出现错误的概率。
另外子类可以写自己特有的。属性和方法,目的是实现功能的扩展,子类也可以复写父类的方法即方法 的重写。
3、多态
多态的概念发展出来,是以封装和继承为基础的。
多态就是在抽象的层面上实施一个统一的行为,到个体(具体)的层面上时,这个统一的行为会因为 个体(具体)的形态特征而实施自己的特征行为。(针对一个抽象的事,对于内部个体又能找到其自 身的行为去执行。)
-
概念:相同的事物,调用其相同的方法,参数也相同时,但表现的行为却不同。
-
理解:子类以父类的身份出现,但做事情时还是以自己的方法实现。子类以父类的身份出现需要向 上转型(upcast),其中向上转型是由JVM自动实现的,是安全的,但向下转型(downcast)是不安全 的,需要强制转换。子类以父类的身份出现时自己特有的属性和方法将不能使用。
Java语言的主要特性
-
Java语言是易学的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使 用Java。
-
Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的 单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements )。
-
Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络 应用编程接口(java net),它提供了用于网络应用编程的类会,包括URL、URLConnection、 Socket、ServerSocket等。Java的RMI (远程方法激活)机制也是开发分布式应用的重要手段。
-
Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保 证。对指针的丢弃是Java的明智选择。
-
Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻 击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代 码检查。
-
Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的 字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
-
Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个 Java平台的任何系统的解释器中运行。(一次编译,到处运行)
-
Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。
-
Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子
(孙)类来创建。
封装是信息隐藏,通过抽象数据类型将数据和操作封装在一起;继承实现代码复用,子类继承父类的属性和方法;多态允许相同方法在不同对象上有不同行为,实现灵活性。Java语言是面向对象、分布式的,具有健壮性和安全性,并且支持多线程。





