- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的Java实现-封装 为什么需要封装 2-1 编写一个类,代表ZhuoYue教员,要求: 具有属性:姓名、年龄 具有行为:自我介绍 ZhuoYue教员的最小年龄要求:22岁 * public class ZhuoYueTeacher1{ public String name; // 教员姓名 public int age; //年龄 /** * 返回自我介绍的内容 */ public String introduction() { return 大家好!我是 + name + ,我今年+ age+岁; } } 为什么需要封装 2-2 编写一个测试类,要求: 实例化一个教员对象,并对其初始化 在控制台输出该教员的自我介绍 * public class ZhuoYueTeacher1Test { public static void main(String[ ] args) { ZhuoYueTeacher1 teacher = new ZhuoYueTeacher1(); teacher.name = 李芳; teacher.age =10; System.out.println(teacher.introduction()); } } 要满足教员的最小年龄要求,可以通过对属性的封装来实现 大家好!我是李芳,我今年10岁 什么是封装 封装,就是隐藏实现细节 将属性私有化,提供公有方法访问私有属性 通过这些公有方法访问私有属性 * public class ZhuoYueTeacher2 { private String name; // 教员姓名 // 返回教员姓名 public String getName() { return name; } // 设定教员姓名 public void setName(String name) { this.name = name; } } ZhuoYueTeacher2 teacher = new ZhuoYueTeacher2(); teacher.setName (李芳); String tName = teacher.getName(); 通过setter、getter方法访问name属性 this代表当前类的实例 如何实现封装2-1 封装的实现: 1、修改属性的可见性来限制对属性的访问 2、为每个属性创建一对赋值(setter)方法和取值(getter) 方法,用于对这些属性的访问 3、在setter和getter方法中,加入对属性的存取限制 * public class ZhuoYueTeacher3 { private String name; // 教员姓名 private int age; //年龄 public int getAge() { return age; } public void setAge(int age) { if (age22) { System.out.println(错误!最小年龄应为22岁!); this.age = 22; //如果不符合年龄要求,则赋予默认值 } else { this.age = age; } } //此处省略对name属性的setter、getter方法 } 1 2 3 如何实现封装2-2 * public class ZhuoYueTeacher3Test { public static void main(String[ ] args) { ZhuoYueTeacher3 teacher = new ZhuoYueTeacher3(); teacher.setName (李芳); teacher.setAge(10); System.out.println(teacher.introduction()); } } 使用封装,增加了数据访问限制,增强了程序的可维护性 错误!最小年龄应为22岁! 大家好!我是李芳,我今年22岁 测试类通过调用setter方法,为对象的各个属性赋值 小结 1 使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗? 在Java程序中,代码封装带给我们的好处是什么? * 小结 2 * 编写一个类Mouse,代表地鼠: 具有属性:名字(name)、编号(id),其中编号不能为0,否则输出错误信息,并随机赋默认值 为各属性设置赋值和取值方法 具有方法: eat,用来打印正在吃东西的老鼠编号名字。 编写测试类MouseTest进行测试:初始化一个Mouse对象,并调用该Mouse对象的eat方法,看看输出
文档评论(0)