博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
封装与继承
阅读量:6786 次
发布时间:2019-06-26

本文共 1614 字,大约阅读时间需要 5 分钟。

权限修饰符:

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子类的对象就可以了。例如:

本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1974042,如需转载请自行联系原作者

你可能感兴趣的文章
Django2 model操作数据库
查看>>
使用Azure Policy限制所有ASM资源
查看>>
在win7系统下使用TortoiseGit(乌龟git)简单操作Git@OSC
查看>>
强大的ghost.py 使用实例
查看>>
快速搭建NTP时间服务器
查看>>
网络基础
查看>>
碰到 oracle 10g ORA-00257
查看>>
服务器群集实验 ——SQL群集2
查看>>
企业级监控工具cacti安装配置全过程
查看>>
Hibernate的模块结构
查看>>
锁机制
查看>>
gentoo添加自启动
查看>>
Cocos2d-x 3.1 Lua Binding
查看>>
linux 进度条的实现及makefile的简单应用
查看>>
Linux命令:sed简介
查看>>
linux X界面 输入密码正确,但是无法登陆系统,命令行界面可以登陆
查看>>
杨中科老师-C语言也能干大事链接
查看>>
查看linux分区占用空间情况
查看>>
理解flexible.js所需的viewport知识
查看>>
rman 操作
查看>>