面试也用的到的:面向对象特点+作用+用法!
刚学面向对象时,不知道什么是面向对象,只知道跟着讲师的例子走,最后了解了,会用了,却在面试时对其定义、特点、其有什么作用却一脸懵比,都知道有度娘,却搜的资料比较凌乱,小编在这就为初学面向对象的童鞋们带来了福利,从网上整理的精华。在这有什么没整理到的,希望能够大牛们能够在评论中补充,让大家一起瞻仰。
1.封装
定义:封装就是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治。封装的对象,这些对象通过一个受保护的接口访问其他对象。
关键:属性和行为分离
作用:1—)便于使用者正确的方便的理解和使用系统,防止使用者错误修改系统的属性。
2) 有助于建立各个系统之间的松耦合关系,提高系统的独立性。
3) 提高软件的可重用性,每个系统都是一个相对独立的整体,可以在多种环境中得到重用。
用法: private 数据类型 数据名称;
public 数据类型 get+数据名称(数据类型 数据名称){
return 数据名称;
}
public void set+数据名称(数据类型 数据名称){
this.数据名称=数据名称;//这里的this代表当前类
}
2.继承
定义:继承是一种联结类的层次模型,并且允许鼓励类的重用,他提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称之为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
关键:继承父类的方法和属性,并且可以修改。
作用:实现代码重用,减少代码书写量,且容易修改
用法: class 父类{private int a;public void haha(){}}
class 子类 extends 父类{}
//extend是继承 关键字
// 然后 子类就拥有父类的属性a和方法haha()
3.多态
特点: 多态性是指允许不同类的对象对同一消息做出回应。多态性包含参数化多态性和包含多态性。多态性语言具有灵活,抽象,行为共享,代码共享的优势
很好的解决了应用程序函数同名的问题
关键:不同对象对同一消息作出回应。需要向上转型
作用:消除类型之间的耦合关系。
用法:接口实现,继承父类进行方法重写,同一个类中进行方法重载。
注意:多态是在有继承的基础上的存在的。
4额外:
1)抽象
定义:抽象就是忽略一个主题中与当前目标无关的的哪些方面,以便更充分的注意当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中一部分,暂不用部分细节。抽象包括两个方面,一是过程抽象,而是数据抽象。
作用: 把你现在不想具体化以后像具体化的东西抽取出来。
关键字:abstract
2)接口
定义:帮助Java语言实现一个类似于多继承的功能.但是实现的多继承功能不会使代码中的类之间出现网状关系,而是比较清楚的树状关系,类似于家谱的感觉
关键:因为java是单继承,所以用接口实现多继承
作用:帮助java实现多继承
关键字:定义接口interface 引用接口:implements
3)重载
定义:方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
关键:同名不同参
作用:实现了一个方法不同参数的运用。
PS: 在这特别感谢csdn的zxman660博主带来的启发.也感谢大家百忙之中能够观看这份整理的基面向对象套餐。
热门评论
现在学java的人都很燥动,好像大家都急于使用各种框架,能够静下心来再看看这门语言的本质的已经没几人了,其实我提欣赏那些还能够在百忙之中抽出时间来再回头来看看这门语言本质的人。因为我猜可能没几个人知道java中有多少种数据类型?现在的人差不多就那样子水平的了。
在封装那里,如果数据类型为void就不需要return吧?
继承你的父类属性用了private修饰了,所以子类怎么会有父类的a属性呢?