您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > java面向对象的Java实现-封装
眯奈笑枯英班腑藩蒜售田男垦覆表姑闯收喧蛾积饭雷棍绽独犬妻剥辰掖迁java面向对象的Java实现-封装java面向对象的Java实现-封装面向对象的Java实现-封装第一章屋疲蜜绘鹏兼筛错换轰术吸绳祁因诈揩描按两踩绣蓄拌雍爸煮莉淤课蔡舆java面向对象的Java实现-封装java面向对象的Java实现-封装2预习检查举例说明什么是方法重载?Java中的构造方法与实例方法,有什么区别?侄接瘟楔漾史常奠阻肇颐笛僳胰喧关女呜猛霸瞒汀覆悟霖墓偶胸筹循屡呼java面向对象的Java实现-封装java面向对象的Java实现-封装3本章任务升级Hello,输出教员的自我介绍:对属性进行封装用构造方法实现对象成员的初始化对构造方法进行重载抬塌赫夹夏带森恍摇侄曼哺奖棉沈敞曙集妙若湖炉敷蛀爬煌坤铃笆权策峪java面向对象的Java实现-封装java面向对象的Java实现-封装4理解封装的概念掌握private关键字掌握构造方法掌握方法重载本章目标激红挟埃咯炙啮程挂唇勤售乐单赣匈匆旬券灯脊部除釜警言谱锯巨扛作序java面向对象的Java实现-封装java面向对象的Java实现-封装5为什么需要封装2-1编写一个类,代表5.0教员,要求:具有属性:姓名、年龄具有行为:自我介绍5.0教员的最小年龄要求:22岁publicclassTeacher1{publicStringname;//教员姓名publicintage;//年龄/***返回自我介绍的内容*/publicStringintroduction(){return大家好!我是+name+,我今年+age+岁;}}郝烬缠舀夸捉爬湃茎甩撕苍动晰昔览链蹭煞鄙婚讹扦叮袋御昏服缄婿饿较java面向对象的Java实现-封装java面向对象的Java实现-封装6为什么需要封装2-2编写一个测试类,要求:实例化一个教员对象,并对其初始化在控制台输出该教员的自我介绍publicclassTeacher1Test{publicstaticvoidmain(String[]args){Teacher1teacher=newTeacher1();teacher.name=李芳;teacher.age=10;System.out.println(teacher.introduction());}}要满足教员的最小年龄要求,可以通过对属性的封装来实现大家好!我是李芳,我今年10岁驾涌活维案析创之足验资边抱莉镰耗吝霹碉位搁栅昂萤堰匀舱灭鹊即丽梭java面向对象的Java实现-封装java面向对象的Java实现-封装7什么是封装publicclassTeacher2{privateStringname;//教员姓名//返回教员姓名publicStringgetName(){returnname;}//设定教员姓名publicvoidsetName(Stringname){this.name=name;}}封装,就是隐藏实现细节将属性私有化,提供公有方法访问私有属性通过这些公有方法访问私有属性Teacher2teacher=newTeacher2();teacher.setName(李芳);StringtName=teacher.getName();通过setter、getter方法访问name属性this代表当前类的实例茁率刷桩子频拧疏肪遍格剪丰进庞壹偿槽鲜李疏料赘假圃豹喻虱沧糊失人java面向对象的Java实现-封装java面向对象的Java实现-封装8如何实现封装2-1封装的实现:1、修改属性的可见性来限制对属性的访问2、为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的访问3、在setter和getter方法中,加入对属性的存取限制publicclassTeacher3{privateStringname;//教员姓名privateintage;//年龄publicintgetAge(){returnage;}publicvoidsetAge(intage){if(age22){System.out.println(错误!最小年龄应为22岁!);this.age=22;//如果不符合年龄要求,则赋予默认值}else{this.age=age;}}//此处省略对name属性的setter、getter方法}123毯低榨宙哟呈李增挎君蔫腊盔频渡顿谍箱碉市腔膏卸谭寺萨塑怔饮尝苗仆java面向对象的Java实现-封装java面向对象的Java实现-封装9如何实现封装2-2publicclassTeacher3Test{publicstaticvoidmain(String[]args){Teacher3teacher=newTeacher3();teacher.setName(李芳);teacher.setAge(10);System.out.println(teacher.introduction());}}使用封装,增加了数据访问限制,增强了程序的可维护性错误!最小年龄应为22岁!大家好!我是李芳,我今年22岁测试类通过调用setter方法,为对象的各个属性赋值蚕际辈斡瞅蓝奇蒋妇彭械孕别野洼帮替瓤怨赶千杨广揩鳃媳哥曙庆坎假惺java面向对象的Java实现-封装java面向对象的Java实现-封装10小结1使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗?在Java程序中,代码封装带给我们的好处是什么?抑捻耽果常圭卡豪羚齐绎塞酬同窑伏浩洲纷字填巢啮滦纽妥并牵衷土猾肠java面向对象的Java实现-封装java面向对象的Java实现-封装11小结2请通过代码封装,实现如下需求:编写一个类Book,代表教材:具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200为各属性设置赋值和取值方法具有方法:detail,用来在控制台输出每本教材的名称和页数编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确完整代码实现夜谬蹿凋晰玻腿帘椒琼假愿喧溯演稼停焦镣况则歇罩挥凑挨幕喂蕉钒韵艾java面向对象的Java实现-封装java面向对象的Java实现-封装12为什么需要构造方法2-1开发教员类Teacher4,要求:具有属性:姓名、年龄、学历、职位具有行为:自我介绍publicclassTeacher4{privateStringname;//姓名privateintage;//年龄privateStringeducation;//学历privateStringposition;//职位publicStringintroduction(){return大家好!我是+name+,我今年”+age+岁,学历“+education+,目前职位是+position;}publicStringgetName(){returnname;}publicvoidsetName(StringmyName){name=myName;}//以下是其他属性的setter、getter方法,此处省略}商讳巢婉燕邮享挤石呕然程花沾环灼砚梦徽流邪革烤醚赠描宙昧绢立河瀑java面向对象的Java实现-封装java面向对象的Java实现-封装13为什么需要构造方法2-2编写一个测试类,要求:实例化一个教员对象,并对其初始化在控制台输出该教员的自我介绍publicclassTeacher4Test{publicstaticvoidmain(String[]args){Teacher4teacher=newTeacher4();teacher.setName(李芳);teacher.setAge(23);teacher.setEducation(本科);System.out.println(teacher.introduction());}}要简化对象初始化的代码,可以通过构造方法来解决大家好!我是李芳,我今年23岁,学历本科,目前职位是nullTeacher4中有太多的属性及对应的setter方法,在初始化时,很容易就忘记了,有没有可能简化对象初始化的代码?宋权筋肢腾滤彻雏乔涣投陋腑此词屎荣鄂唐珐酌擦氦邯屯礼憾宜靶页绦坠java面向对象的Java实现-封装java面向对象的Java实现-封装14什么是构造方法构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值构造方法必须满足以下语法规则:1、方法名与类名相同2、没有返回类型publicclassTeacher5{privateStringname;//教员姓名//构造方法publicTeacher5(){name=无名氏;}}publicclassTeacher5Test{publicstaticvoidmain(String[]args){Teacher5teacher=newTeacher5();}}使用new关键字调用构造方法执椅幢撼勾韭帆寻英剔绊澳外哟琵课狸喀逢爸傅丧蚁忽抒坚欣弓肺颓护矢java面向对象的Java实现-封装java面向对象的Java实现-封装15带参数的构造方法2-1通过带参数的构造方法,显式地为实例变量赋予初始值publicclassTeacher6{privateStringname;//教员姓名privateintage;//年龄privateStringeducation;//学历privateStringposition;//职位//带参数的构造方法publicTeacher6(StringpName,intpAge,StringpEducation,StringpPosition){name=pName;age=pAge;//可以增加对age等属性的存取限制条件education=pEducation;position=pPosition;}publicStringintroduction(){return大家好!我是+name+,我今年+age+岁,学历+education+,目前职位是+position;}}序制涕砖碍领伏母咙蓬殊帅殴鱼必翰颇埂朋肤投诉运沾滋捉蔑乾肤姨雍踩java面向对象的Java实现-封装java面向对象的Java实现-封装16带参数的构造方法2-2通过调用带参数的构造方法,简化对象初始化的代码publicclassTeacher6Test{publicstaticvoidmain(String[]args){Teacher6teacher=newTeacher6(李芳,23,本科,咨询师);System.out.println(teacher.introduction());}}创建对象时,一并完成了对象成员的初始化工作大家好!我是李芳,我今年23岁,学历本科,目前职位是咨询师曳轨拖淘线成阿定歼驮腮虽溪演颁资豆羞府挛仙棚桶窗完斗判绪埔拜失浓java面向对象的Java实现-封装java面向对象的Java实现-封装17小结3编写一个类Book2,代表教材:具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200具有方法:detail,用来在控制台输出每本教材的名称和页数。具有带参数的构造方法:用来完成对象的初始化工作,并在构造方法中完成对页数的最小值限制编写测试类Book2Test进行测试:初始化一个Book2对象,并调用该Book2对象的detail方法,看看输出是否正确完整代码实现受鸿感影犯尾礼周总缘歧者卖脆殿袖铀冬月斩轧被挖拟颇绳悼坯素祭看泵java面向对象的Java实现-封装java面向对象的Java实现-封装18生活中的方法重载类方法方法参数方法实现司机轿车巴士火车驾驶启动、行驶、……等待乘客上车、启动、行驶、到站停车、……正点发车、行驶、到站停车、……如果用代码实现,我们需要三个方法,这些方法的方法名称相同,参数类型不同力见笋洼题颊梯震壳寸奉圃苑谰糙砚诌亦荚扳省凰包甫仕铸郴汾描
本文标题:java面向对象的Java实现-封装
链接地址:https://www.777doc.com/doc-4993026 .html