《2022年详解java面向对象的三大特性推荐 .pdf》由会员分享,可在线阅读,更多相关《2022年详解java面向对象的三大特性推荐 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、详解 java面向对象编程的三大特性面向对象编程有很多种语言,用的比较多的是Java、 C#、C+,还有一些不是很常见的Smalltalk、Simula,虽然都是同一个思想,但是语法不一样,在一些细节方面还是有点不同的。我个人对 Java比较熟悉,所以下面我来详细解析Java的面向对象编程的三大特性。不 管 是 什 么 编 程 语 言 , 只 要 是 它 的 设 计 思 想 是 面 向 对 象 (Object Oriented Programming,OOP)的都具备三个特性。即封装、继承、多态。要理解这三个特性。首先得了解面向对象的一些基础知识。面向对象有两个很重要的概念,这两个是必须要掌握
2、的。那就是对象(object)和类(class) 。对象是具体的人或物。比如公交车就是一个具体的对象。类就是对具有相同或相似的对象的集合。比如说车就是一个类,它集合了公交车、小轿车、火车等各种车。好了,有了这些基本概念之后,才能够理解这三大特性。我觉得继承( extends)是最容易理解的。它表达的是“is-A”的关系。其实继承跟现实生活中的继承都差不多的,比如说如果父亲去世了,儿子就可以继承他的财产。在Java 中只有类和类才有可能会发生继承关系。如果一个类继承了另一个类,被继承的类就是 “父类”,继承的那个类就叫做“子类”,子类只能有一个父类,这个我们现实生活很相似的,一个儿子只能有一个父
3、亲。如果一个类继承了另一个类就具有父类的全部属性和方法(除了 private之外) 。下面我用代码来说明继承:class Person String name; Int age; private int code;/private权限不能被子类继承public void eat() System.out.println( “ 人都具备吃饭的功能!” ); class Student extends Person/ Student 类继承了 Person 类,也就是学生继承了人 float score; public void studying() System.out.println( “ 学
4、生具备学习的功能” ); / 但是不能访问private 权限的属性和方法,下面试图访问code 属性将会出错/code=123; 继承的好处就是,如果一个子类继承了父类,他就可以拥有父类的所有属性和方法(除了private 权限之外),而且还可以扩展父类的方法和增加自己的属性。继承的出现弥补了父类的不足,扩展了父类的原有方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 封装( encapsulation)指的是将对象状态信
5、息隐藏在对象内部,不允许外部程序直接访问对象内部信息, 而是通过该类所提供的方法来实现对内部信息的操作和访问。下面用代码解释。class Man / 对属性封装,姓名,年龄,妻子的姓名都不对外公布,都是私有的private String name; private int age; private String wifename; public String getName() Return name; public int getAge() Return age; public void setAge(int age) This.age=age; public void setName(St
6、ring name) This.name=name; private void f() 对方法的封装 / 私有方法,只能在本类中被访问,私有属性也如此 其实封装的概念不仅此而已。类就是一个封装体,它封装了对象。 包也是一个封装体,它封装了类。 把封装的概念扩大化,框架就是对包的封装。为什么要出现封装呢?因为有一些成员变量 (field) 是不能够随意更改的,而且有些东西只要你知道怎么用就行了,没有必要关心那么多的细节。比如说,你想买电脑,你有必要去知道电脑怎么做出来的吗?最后一个就是多态了。我觉得不是那么的容易理解和掌握。对多态的理解: 允许子类的对象被看作父类对象使用,而父类对象可以根据赋值
7、的不同动态选择不同的方式运作。简单的说,就是事物具备多种形态。看下代码。class Human public void eat() System.out.println( 人都会吃饭的 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - class Student extends Human public void eat() System.out.println( 学生吃饭 ); public void study() Sy
8、stem.out.println( 学生学习 ); public class TuoTaiDemo public static void main(String args) /s 对象编译时是 Human类型,但是运行时却是Student类型的Human s=new Student();/ 向上转型s.eat();/ 所以此处调用的是Student的eat()方法Student c=(Student)s;/ 向下转型c.study();/ 向下转型 多态要具备有这些条件:有继承关系而且类和类之间要有覆盖关系。上面介绍的就是多态的雏形。多态的作用就是更易于扩展。下面来看一个情景。最初的电脑主板,
9、功能很简单,接口就只有网卡而已(这里只是假设而已),并没有声卡。现在想播放音乐,于是就想到了要扩展一个声卡的接口。interface PCI public void open(); public void close(); class MainBoard public void run() System.out.println(MainBorad run); public void usePCI(PCI p) if(p!=null) p.open(); p.close(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
10、心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - class NetCard implements PCI public void open() System.out.println(NetCard Open); public void close() System.out.println(NetCard close); class SoundCard implements PCI public void open() System.out.println(SoundCard Open); public void close() System.ou
11、t.println(SoundCard close); public class TuoTaiDemo public static void main(String args) MainBoard mb=new MainBoard(); mb.run(); /PCI p=new NetCard(); 这就是多态,只是这里换成了接口而已mb.usePCI(new NetCard(); / 下面的这个同理mb.usePCI(new SoundCard(); 由此可以看出多态的作用。好了,我的总结就到此。以上信息来自“ E网情深” QQ空间。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -