- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chp7 面向对象三大特性
本章导读
面向对象三大特性指的是:封装、继承、多态。这三大特性支撑了整个面向对象的理论
体系,是面向对象的核心。本章要介绍Java 中这三大特性是如何体现的,以及与这三大特
性相关的Java 语法。
1 封装
有如下代码:
class CreditCard{
String password = “123456”;
}
public class TestCreditCard{
public static void main(String args[]){
CreditCard card = new CreditCard();
System.out.println(card.password);
card.password = “000000”;
System.out.println(card.password);
}
}
上述代码,创建了一个信用卡对象,并且读取、修改了这个对象的password 属性。
从Java 基本语法上说,这并没有问题。但是对于生活来说,这就是一个大问题!对于
信用卡对象而言,它的密码属性是不应该被随便访问和修改的。
面向对象中解决这个问题,可以采用封装的特性。封装指的是,任何对象都应该有一个
明确的边界,这个边界对对象内部的属性和方法起到保护的作用。
1.1 属性的封装
为上述的CreditCard 的password 属性增加private 关键字,如下:
class CreditCard{
private String password = “123456”;
}
则原有代码中会出现编译错误:
public class TestCreditCard{
public static void main(String args[]){
CreditCard card = new CreditCard();
System.out.println(card.password); //编译错误
card.password = “000000”; //编译错误
System.out.println(card.password); //编译错误
}
}
1
当为属性增加private 之后,这个属性就成为了一个私有属性。所谓私有,指的是该属
性只能在本类内部访问。例如,当我们把password 属性设置为private ,对这个属性的访问
就只能局限在CreditCard 类的内部。现在我们试图在TestCreditCard 类中访问这个属性,编
译器就会报出编译错误。这就相当于,card 对象的边界对于password 属性起到了保护的作
用,任何试图越过边界,访问password 属性的企图都会被阻止。
然而,对于用户而言,依然有可能要访问CreditCard 的密码。例如,在生活中,如果忘
了银行卡密码,我们可以凭借证件到银行去查询或重设密码。
对于这方面的需求,我们为 CreditCard 提供一对 get/set 方法。这两个方法的修饰符为
“public ”。用public 修饰的属性和方法表示“公开的”,公开属性和方法不受对象边界的限
制,在类的内部和外部都可以访问。代码如下:
class CreditCard{
private String password = “123456”;
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return this.password;
}
}
则TestCreditCard 类可以改成:
public cla
您可能关注的文档
- A kuang组合投资收益和风险模型.doc
- a3-毕业的设计说明书模板.doc
- AA-0015ZC 热源设备和热源控制1.pdf
- AAAAA文化地理学概念_理论逻辑关系之_省略__分析近年中国大陆文化地理学进展_周尚意.pdf
- Aawtykg医学各大系统重点精华总结!诊断公式 辅助检查 治疗原则……文库.doc
- ABAQUS常见问题汇总_-_2.0版.doc
- ABS功能基本组成和各部分作用1.ppt
- ABS构造与检修毕业的设计.doc
- ABS结构原理与典型故障诊断.doc
- ABS两种控制方式.docx
- 2024年铁路职业技能鉴定考试历年机考真题集及答案详解.docx
- 2024年铁路职业技能鉴定考试历年机考真题集及完整答案详解【全优】.docx
- 2024年铁路职业技能鉴定考试历年机考真题集及答案详解(夺冠).docx
- 辽91D401 住宅电气照明安装图.docx
- 2024年铁路职业技能鉴定考试历年机考真题集及参考答案详解(巩固).docx
- 2024年铁路职业技能鉴定考试历年机考真题集及参考答案详解(满分必刷).docx
- 2024年铁路职业技能鉴定考试历年机考真题集附完整答案详解(精选题).docx
- 2024年铁路职业技能鉴定考试历年机考真题集附参考答案详解(巩固).docx
- 2024年铁路职业技能鉴定考试历年机考真题集附参考答案详解(考试直接用).docx
- 2024年铁路职业技能鉴定考试历年机考真题集带答案详解(A卷).docx
文档评论(0)