




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类与对象复习,1,说明类与对象的区别?举例说明什么是方法重载?Java中的构造方法与实例方法,有什么区别?,思考:,2,对属性进行封装用构造方法实现对象成员的初始化对构造方法进行重载,要点:,3,理解封装的概念掌握private关键字掌握构造方法掌握方法重载,目标:,4,编写一个类,代表学生,要求:具有属性:姓名、年龄具有行为:自我介绍学生的最小年龄要求18岁,publicclassStudent1publicStringname;/学生姓名publicintage;/年龄/*返回自我介绍的内容*/publicStringintroduction()return大家好!我是+name+,我今年+age+岁;,5,编写一个测试类,要求:实例化一个学生对象,并对其初始化在控制台输出该学生的自我介绍,publicclassStudent1Testpublicstaticvoidmain(Stringargs)Student1s=newStudent1();=李芳;s.age=10;System.out.println(roduction();,要满足学生的最小年龄要求,可以通过对属性的封装来实现,6,publicclassStudent2privateStringname;/学生姓名/返回学生姓名publicStringgetName()returnname;/设定学生姓名publicvoidsetName(Stringname)=name;,封装,就是隐藏实现细节将属性私有化,提供公有方法访问私有属性通过这些公有方法访问私有属性,Student2s=Student2();s.setName(李芳);StringsName=s.getName();,通过setter、getter方法访问name属性,this代表当前类的实例,7,封装的实现:1、修改属性的可见性来限制对属性的访问2、为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的访问3、在setter和getter方法中,加入对属性的存取限制,publicclassStudent3privateStringname;/学生姓名privateintage;/年龄publicintgetAge()returnage;publicvoidsetAge(intage)if(age18)System.out.println(错误!最小年龄应为18岁!);this.age=18;/如果不符合年龄要求,则赋予默认值elsethis.age=18;/此处省略对name属性的setter、getter方法,1,2,3,8,publicclassStudent3Testpublicstaticvoidmain(Stringargs)Student3s=newStudent3();s.setName(李芳);s.setAge(10);System.out.println(roduction();,使用封装,增加了数据访问限制,增强了程序的可维护性,错误!最小年龄应为18岁!大家好!我是李芳,我今年18岁,测试类通过调用setter方法,为对象的各个属性赋值,9,小结1,使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗?在Java程序中,代码封装带给我们的好处是什么?,10,小结2,请通过代码封装,实现如下需求:编写一个类Book,代表教材:具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200为各属性设置赋值和取值方法具有方法:detail,用来在控制台输出每本教材的名称和页数编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确,11,classBookprivateStringtitle;privateintpageNum;publicintgetPageNum()returnpageNum;publicvoidsetPageNum(intpageNum)if(pageNum200)System.out.println(页数不能少于200页!);this.pageNum=200;elsethis.pageNum=pageNum;publicStringgetTitle()returntitle;publicvoidsetTitle(Stringtitle)this.title=title;publicvoiddetail()System.out.println(书名:+title+,页数:+pageNum);,12,publicclassBookTestpublicstaticvoidmain(Stringargs)Bookb=newBook();b.setTitle(Java快速入门);b.setPageNum(109);b.detail();,13,开发学生类Student4,要求:具有属性:姓名、年龄、学历、职位具有行为:自我介绍,publicclassStudent4privateStringname;/姓名privateintage;/年龄privateStringaddress;/家庭住址privateStringtelephone;/联系方式publicStringintroduction()return“大家好!我是”+name+“,我今年”+age+“岁,家庭住址“+address+”,联系方式是+telephone;publicStringgetName()returnname;publicvoidsetName(StringmyName)name=myName;/以下是其他属性的setter、getter方法,此处省略,14,编写一个测试类,要求:实例化一个学生对象,并对其初始化在控制台输出该教员的自我介绍,publicclassStudent4Testpublicstaticvoidmain(Stringargs)Student4s=newStudent4();s.setName(李芳);s.setAge(23);s.setAddress(“大兴);System.out.println(roduction();,要简化对象初始化的代码,可以通过构造方法来解决,大家好!我是李芳,我今年23岁.,Student4中有太多的属性及对应的setter方法,在初始化时,很容易就忘记了,有没有可能简化对象初始化的代码?,15,构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值构造方法必须满足以下语法规则:1、方法名与类名相同2、没有返回类型,publicclassStudent5privateStringname;/学生姓名/构造方法publicStudent5()name=无名氏;,publicStudent5Testpublicstaticvoidmain(Stringargs)Student5teacher=newStudent5();,使用new关键字调用构造方法,16,通过带参数的构造方法,显式地为实例变量赋予初始值,publicclassStudent6privateStringname;/学生姓名privateintage;/年龄privateStringaddress;/家庭住址privateStringtelephone;/联系方式/带参数的构造方法publicStudent6(StringpName,intpAge,StringpAdddress,StringpTelephone)name=pName;age=pAge;/可以增加对age等属性的存取限制条件education=pAddress;position=pTelephone;publicStringintroduction()return“大家好!我是”+name+“,我今年”+age+“岁,家庭住址是”+address+“,联系方式+telephone;,17,通过调用带参数的构造方法,简化对象初始化的代码,publicclassStudent6Testpublicstaticvoidmain(Stringargs)Student6s=newStudent6(李芳,23,“大兴”,;System.out.println(roduction();,创建对象时,一并完成了对象成员的初始化工作,大家好!我是李芳,我今年23岁,,18,小结3,编写一个类Book2,代表教材:具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200具有方法:detail,用来在控制台输出每本教材的名称和页数。具有带参数的构造方法:用来完成对象的初始化工作,并在构造方法中完成对页数的最小值限制编写测试类Book2Test进行测试:初始化一个Book2对象,并调用该Book2对象的detail方法,看看输出是否正确,19,classBook2privateStringtitle;privateintpageNum;publicBook2(Stringtitle,intpageNum)this.title=title;if(pageNum200)System.out.println(页数不能少于200页!);this.pageNum=200;elsethis.pageNum=pageNum;publicvoiddetail()System.out.println(“书名:”+title+“,页数:+pageNum);,20,publicclassBook2Testpublicstaticvoidmain(Stringargs)Book2b=newBook2(Java入门,107);b.detail();,21,生活中的方法重载,类,方法,方法参数,方法实现,司机,轿车,巴士,火车,驾驶,启动、行驶、,等待乘客上车、启动、行驶、到站停车、,正点发车、行驶、到站停车、,如果用代码实现,我们需要三个方法,这些方法的方法名称相同,参数类型不同,22,方法重载并不陌生java.io.PrintStream类的println方法能够打印数据并换行,根据数据类型的不同,有多种实现方式,publicclassTestpublicstaticvoidmain(Stringargs)inti=0;charc=z;Stringstr=hello;System.out.println(i);System.out.println(c);System.out.println(str);,PrintStream,println(int)println(char)println(String),方法名相同,参数类型不同,调用不同的println方法,方法重载,23,java.lang.Math类的max()方法能够从两个数字中取出最大值,它有多种实现方式运行时,Java虚拟机先判断给定参数的类型,然后决定到底执行哪个max()方法,publicclassTestpublicstaticvoidmain(Stringargs)Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);,方法重载,24,构造方法重载是方法重载的典型示例,publicclassStudent7privateStringname;/学生姓名privateStringschool=“北京联合大学;publicStudent7(Stringname)=name;/设定学生姓名publicStudent7(Stringname,Stringschool)=name;/设定学生姓名this.school=school;/设定学生所在学校publicStringintroduction()return大家好!我是+school+的+name;,构造方法重载,25,通过调用不同的构造方法来表达对象的多种初始化行为例如:默认情况下,学生来自北京联合大学,初始化时,只需提供学生姓名有时,需要提供所在学生来自学校及学生姓名,publicclassStudent7Testpublicstaticvoidmain(Stringargs)Student7s1=newStudent7(李芳);System.out.println(roduction();Student7s2=newStudent7(张欣,“北京工业大学);System.out.println(roduction();,大家好!我是北京联合大学的李芳大家好!我是北京工业大学的张欣,26,小结4,编写一个类Book3,代表教材:具有属性:名称(title)、页数(pageNum)、种类(type)具有方法:detail,用来在控制台输出每本教材的名称、页数、种类具有两个带参构造方法:第一个构造方法中,设置教材种类为“计算机”(固定),其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定编写测试类Book3Test进行测试:分别以两种方式完成对两个Book3对象的初始化工作,并分别调用它们的detail方法,看看输出是否正确,27,classBook3privateStringtitle;privateintpageNum;privateStringtype;publicBook3(Stringtitle,intpageNu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 检验员考试中的综合素养与技能要求分析试题及答案
- 2024年国际美术设计师考试题目及答案
- 学习技巧与2024年纺织品检验员试题及答案
- 2024年纺织工程师考试的参赛策略与试题及答案
- 2024年如何进行广告效果评估试题及答案
- 未来婚礼测试题及答案
- 村干部面试试题及答案
- 2024年助理广告师广告创意力测评试题及答案
- 助理广告师考试客户关系培养试题及答案
- 2024年助理广告师考试知识体系融合试题及答案
- 防洪度汛检查表
- 手术通知单模板
- GB∕T 26077-2021 金属材料 疲劳试验 轴向应变控制方法
- GB∕T 3853-2017 容积式压缩机 验收试验
- 招商合同范本4篇-合同范本
- 《二次函数图像与性质》学习评价量规
- 2019版人教版教材习题高中物理必修3
- 直肠类癌rectalcarcinoid课件
- 关于互联网金融对商业银行风险影响的实证研究会计学专业
- 第1课 古代埃及-部编版历史九年级上册课件(共16张PPT)
- 十八项电网重大反事故措施
评论
0/150
提交评论