面向对象编程的特点

对于初学Java的新手来说,Java的面向对象问题比较难理解,今天我就对此问题谈一谈自己所学到的知识。

Java面向对象编程作为一种编程思想,有三大特性,封装,继承,多态。次三类特性可以说是决定面向对象编程的根本,只有对此概念有一定的理解,才能学好Java语言。

1. 封装

把客观事物封装成抽象的类,并且把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。也就是说,抽象数据类型对数据信息以及对数据的操作进行打包,将其变成一个不可分割的实体在这个实体内部,我们对数据进行隐藏和保密,只留下一些接口供外部调用。

简而言之,一个类就是一个封装了数据以及操作代码的实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。

封装类似于黑箱操作。一个具体复杂的对象有很多的属性和方法,有些需要公开,有些不需要公开,就好比一个具体的人的信息,有些是public,有些是private,而有些是protecred,别人问到的时候对于怎么样的信息都有不同的态度。根据与这个人的关系来回答问题,封装的结果是输出结果,不问过程。

比如我们将一个房子看做是一个对象,里面的漂亮的装饰,也有实用的家具,这都是该房子的私有属性,但是家是属于私人的,不可以被他人随意观看或出入,封装就是存在那个遮挡的墙,我们既能够有自己的隐私而且我们可以随意的更改里面的摆设,同时不会影响到其他的。但是如果没有门窗,一个包裹的严严实实的黑盒子,又有什么存在的意义呢?所以通过门窗别人也能够看到里面的风景。所以说门窗就是房子对象留给外界访问的接口。

2.继承

继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。在本职上是特殊和一般的关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法。从多种实现类中抽象出一个基类,使其具备多种实现类的共同特性,当实现类用extends关键字继承了基类(父类)后,实现类就具备了这些相同的属性。

Java的继承属性避免了对一般类和特殊类之间共同特征进行的重复描述,通过继承可以清晰地表达每一项共同特征所适应的概念范围——在一般类中定义的属性和操作适应于这个类本身以及它以下的每一层特殊类的全部对象。运用继承原则使得系统模型比较简练也比较清晰。

继承的原则:1.能够继承父类的public和protected成员变量,不能够继承父类的private11成员变量。2.对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承。3.对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。

3.多态

相比于封装和继承,Java多态是三大特性中比较难的一个,封装和继承最后归结于多态, 多态指的是类和类的关系,两个类由继承关系,存在有方法的重写,故而可以在调用时有父类引用指向子类对象。自己对于多态的理解还不够深刻,故而分享的不是很多,敬请见谅。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值