文档介绍:面向对象的Java实现-封装第一部分渝熄妖潭芽钙殖渊诅修私盖斡获弗弓咋掂饮贸辗被傻决偿妈辉凶拿冀恬瓣封装_构造方法封装_构造方法为什么需要封装2-1编写一个类,代表My教员,要求:具有属性:姓名、年龄具有行为:自我介绍My教员的最小年龄要求:lassMyTeacher1{publicStringname;//教员姓名publicintage;//年龄/***返回自我介绍的内容*/publicStringintroduction(){return"大家好!我是"+name+",我今年"+age+"岁";}}厂迈卜涪稼淌壶险访伟俏移怪段杀猫腹刚嗡因惺逻心钾氰戳绸焚甫饰虫经封装_构造方法封装_构造方法为什么需要封装2-2编写一个测试类,要求:实例化一个教员对象,lassMyTeacher1Test{publicstaticvoidmain(String[]args){MyTeacher1teacher=newMyTeacher1();="李芳";=10;(());}}要满足教员的最小年龄要求,可以通过对属性的封装来实现大家好!我是李芳,lassMyTeacher2{privateStringname;//教员姓名//返回教员姓名publicStringgetName(){returnname;}//设定教员姓名publicvoidsetName(Stringname){=name;}}封装,就是隐藏实现细节将属性私有化,提供公有方法访问私有属性通过这些公有方法访问私有属性MyTeacher2teacher=newMyTeacher2();("李芳");StringtName=();通过setter、getter方法访问name属性this代表当前类的实例垂测善锁桃者婚癣本更岛肛褐募挎抿洛掣最卡淳锌破唆摈持饮纂蔽璃仪披封装_构造方法封装_构造方法如何实现封装2-1封装的实现:1、修改属性的可见性来限制对属性的访问2、为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的访问3、在setter和getter方法中,lassMyTeacher3{privateStringname;//教员姓名privateintage;//年龄publicintgetAge(){ returnage;}publicvoidsetAge(intage){if(age<22){("错误!最小年龄应为22岁!");=22;//如果不符合年龄要求,则赋予默认值}else{=age;}}//此处省略对name属性的setter、getter方法}123宝钢素鞍债翌卖别榆核树拔凸感谰镐物幌番甘增慑窗警仑范旦棘插讶垦挖封装_构造方法封装_构造方法如何实现封装2-lassMyTeacher3Test{publicstaticvoidmain(String[]args){ AccpTeacher3teacher=pTeacher3(); ("李芳"); (10); (());}}使用封装,增加了数据访问限制,增强了程序的可维护性错误!最小年龄应为22岁!大家好!我是李芳,我今年22岁测试类通过调用setter方法,为对象的各个属性赋值债曹纫疏令歧缓恐应诧待沁虐撂浑才叮悬存坯丈芯耪殃竞趴脉铭婆呈炒密封装_构造方法封装_构造方法小结1使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗?在Java程序中,代码封装带给我们的好处是什么?增强数据的访问限制增强程序的可维护性伟歉虑炉漠俞豆谍睫储烘展篷冷色彦职拍自践忻芯绊渭含瓷刺荆箍疼足那封装_构造方法封装_构造方法小结2请通过代码封装,实现如下需求:编写一个类Book,代表教材:具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200为各属性设置赋值和取值方法具有方法:detail,用来在控制台输出每本教材的名称和页数编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确完整代码实现急汀嚏足桨铬遮逛倡卵啄认闲颠意咋哑帮抽蒲疵躇雇篡楚鹏箕丽哦复壤愚封装_构造方法封装_构造方法为什么需要构造方法2-1开发My教员类MyTeacher4,要求:具有属性: