封装与继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装与继承相关的知识,希望对你有一定的参考价值。

权限修饰符:

Java中的权限修饰符主要包括privatepublic、和protected,这些权限修饰符控制着对类和类的成员变量以及成员方法的访问。Private是私有的意思,public则是公开,protected是受保护的,还有一种就是不写权限修饰符,代表缺省的意思。

技术分享

  圈上的是最经常需要用的权限修饰符,使用private修饰符声明了的属性和行为,其他的类都不可以访问调用,相当于隐藏了起来,public则谁都可以访问调用,是公开的。例如:
技术分享




封装:

  封装就是将对象的属性和行为封装起来,其载体就是类,类通常对客户(程序员)隐藏其实现细节,这就是封装的思想。采用封装的思想保证了类的内部数据结构的完整性,应用该类的用户不能轻易的直接操作此数据结构,只能执行类允许公开的数据源。这样就避免了外部操作对内部数据的影响,提高了程序的可维护性。封装其实就是令其面向属性更安全,面向用户更简单。

封装代码写法是使用setgetset是设置,get是得到。不想让外部得到就拒绝提供get,不想让外部设置就拒绝提供set

  setget是将属性通过方法来赋值,因为方法里面可以写很多代码,所以通过一个方法的验证后再赋值给属性就会安全很多,外部就不能够随意操作里面的属性了。例如:

技术分享


外部要对属性赋值时就得通过这个方法的验证,使用了if语句来判断给属性赋的值是否有超出范围,只要结果为false都不会对属性进行赋值。

 

boolean类型的封装有点区别,因为这个类型只有两个值。例如:

技术分享

boolean是用is来表示封装方法,不同与其他类型使用get



数组类型的封装方式也不一样,因为数组里面有很多个数据,考虑到用户的使用,需要将数组的封装设计得更方便些,有时候可能使用时会出现对数组进行一个一个拿值的情况,所以需要写多一个方法,因为封装并不是写setget就行了,要学会考虑到用户的使用,设计好安全性、方便性才是封装的意义所在。例如:

技术分享

写多一个方法就可以解决对数组进行单个拿值的情况


封装的自动生成:

   eclipse工具里可以直接对属性进行简单的封装生成。例如:

技术分享

技术分享

右键选好需要封装的属性,然后按照步骤就可以直接生成封装。


一旦对属性写了set方法,这时就以方法名为准去操作了,不是以属性名为准了。例如:

技术分享

这时就是以name为准,因为外部只能看到name这个属性。




继承:

    继承在面向对象开发思想中是一个非常重要的概念,它使整个程序框架具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性。继承使得程序具有派生结构,可以升进行级扩展,首先需要有一个父类,父类实现了最基本的功能,如果需要再扩展升级不用改父类只需要用一个子类继承这个父类,在子类上进行编写即可。派生结构:


技术分享

车就是父类继承于它的都是子类,子类之下又可以继续进行派生扩展,所以使得程序具有一定的弹性。




继承中的定律:

1.继承了父类后除了父类的私有成员子类拥有父类的一切,也就是除了私有成员外的成员子类都可以访问调用。

2.在创建子类对象的时候,先构建父类对象然后再构建子类对象。

3.把子类对象创建出来后调用方法的时候,先调用子类,如果子类没有再调用父类方法。

 


重写父类方法:

   在父类方法出现问题,或者功能有所欠缺的时候,可以使用重写父类方法来解决。父类不需要进行改动,修改都在子类中进行。

 

继承的关键字是extends。例如:

技术分享

技术分享


 Phone2继承了Phone1,重写了shengyin的方法,并增加了其他的方法,使其升级扩展。因为方法都是先调用子类的,子类没有才会去调用父类,并且子类能直接调用父类的方法,所以new对象时只new子类的对象就可以了。例如:

技术分享


本文出自 “12831981” 博客,请务必保留此出处http://12841981.blog.51cto.com/12831981/1974042

以上是关于封装与继承的主要内容,如果未能解决你的问题,请参考以下文章

面向对象基本特征:封装与继承

封装与继承

Java三大特性:封装,继承与多态

面向对象(封装与继承)

设计模式:继承与封装继承

面向对象编程三大特性-封装、继承、多态