第八讲 封装.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八讲 封装

this 这个关键字 this 是个关键字,用来在类里表示这个类的,这个对象的含义 this.属性名 表示这个对象的属性 this() 表示构造方法,只能用在构造方法中调用另一个构造方法。 课堂作业 为添加年龄的学生类,写出它的构造方法。 用封装来拯救小新同学的人品 仁兄代码: public class Student1Test { public static void main(String[] args) { Student1 xiaoxin = new Student1(); = 小新; xiaoxin.rp = -1; //小新自我介绍 roduction(); } } 人品被赋值为-1 教员演示 Student1Test.java 用封装来拯救小新同学的人品 可以看出,小新的人品被恶搞了,怎么回事呢? 细心的同学能够看出来,学员类的两个属性都是公有的,可以被随意访问,我们无法控制这些属性的值,这就导致了以上的问题,那么如何解决呢? 这个时候我们就需要用到封装,因为它很好的解决了这个问题。 该看的看,不该看的别看 封装(Encapsulation)就是把不想或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开(隐藏对象的属性和方法的实现细节,只公开对外接口) 具体做法就是把属性私有化,提供公有的方法访问这些属性,在这些公有方法中实现对属性的控制。如下所示 该看的看,不该看的别看 public class Student2 { private String name; // 姓名 private int rp; // 人品(取值在1-10之间,越高越好) public int getRp() { return rp; } public void setRp(int rp) { if (rp 1 || rp 10) { System.out.println(错误!人品值应该在1-10之间!); this.rp = 1;//人品不符合要求,赋予默认值1 } else { this.rp = rp; } ………… } 属性私有 (用private关键字修饰) 提供公有的方法访问私有属性, 可以在方法中实现对属性的控制。 上述示例中学员类的两个属性都被声明为私有的了(private),也就是说这两个属性只能被Student2这个类访问,其他所有类都不能访问,那么怎么给这两个属性赋值,又如何取得这两个属性的值呢?我们来看下面这位仁兄的代码: 该看的看,不该看的别看 仁兄代码: public class Student2Test { public static void main(String[] args) { //实例化学员对象,对其属性进行初始化 Student2 xiaoxin = new Student2(); xiaoxin.setName(小新); xiaoxin.setRp(-1); //小新自我介绍 roduction(); } } 细心的同学会发现,我们可以通过公有的getter(取值)、setter(赋值)方法访问这两个属性,而且在人品的赋值方法中加入了对属性访问的限制,成功的实现了对小新人品的拯救。 通过公有的setter方法给两个属性赋值 教员演示 Student2Test.java 封装提供了4种访问控制级别 访问修饰符有以下4个: public 公共的,最高的访问级别,类的public成员所有类的成员都可以访问。 protected 受保护的,类的protected成员只能被该类的成员以及其子类成员访问。还可以被同一个包中其他类的成员访问。 private 私有的,不对外公开,类的private成员只能被该类的成员访问,访问级别最低。 默认,类的成员什么修饰符都没有,又叫包修饰符,只有类本身成员和当前包下类的成员可以访问。 访问修饰符 本类 同包其他类 不同包子类 不同包非子类 public 可以 可以 可以 可以 protected 可以 可以 可以 不可以 默认 可以 可以 不可以 不可以 private 可以 不可以 不可以 不可以 课堂练习 改写学员类,增加年龄属性,实现对年龄属性的封装,年龄要求必须大于18周岁。写测试类测试。 演示:改写后的效果 小结 封装的具体实现步骤? 修改属性的可见性来限制对属性

文档评论(0)

1444168621 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档