类与对象复习.ppt

上传人:b****1 文档编号:1108586 上传时间:2022-10-17 格式:PPT 页数:30 大小:552.50KB
下载 相关 举报
类与对象复习.ppt_第1页
第1页 / 共30页
类与对象复习.ppt_第2页
第2页 / 共30页
类与对象复习.ppt_第3页
第3页 / 共30页
类与对象复习.ppt_第4页
第4页 / 共30页
类与对象复习.ppt_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

类与对象复习.ppt

《类与对象复习.ppt》由会员分享,可在线阅读,更多相关《类与对象复习.ppt(30页珍藏版)》请在冰豆网上搜索。

类与对象复习.ppt

类与对象复习,说明类与对象的区别?

举例说明什么是方法重载?

Java中的构造方法与实例方法,有什么区别?

思考:

对属性进行封装用构造方法实现对象成员的初始化对构造方法进行重载,要点:

理解封装的概念掌握private关键字掌握构造方法掌握方法重载,目标:

编写一个类,代表学生,要求:

具有属性:

姓名、年龄具有行为:

自我介绍学生的最小年龄要求18岁,ublicclassStudent1publicStringname;/学生姓名publicintage;/年龄/*返回自我介绍的内容*/publicStringintroduction()return大家好!

我是+name+,我今年+age+岁;,编写一个测试类,要求:

实例化一个学生对象,并对其初始化在控制台输出该学生的自我介绍,ublicclassStudent1Testpublicstaticvoidmain(Stringargs)Student1s=newStudent1();s.name=李芳;s.age=10;System.out.println(s.introduction();,要满足学生的最小年龄要求,可以通过对属性的封装来实现,ublicclassStudent2privateStringname;/学生姓名/返回学生姓名publicStringgetName()returnname;/设定学生姓名publicvoidsetName(Stringname)this.name=name;,封装,就是隐藏实现细节将属性私有化,提供公有方法访问私有属性通过这些公有方法访问私有属性,Student2s=Student2();s.setName(李芳);StringsName=s.getName();,通过setter、getter方法访问name属性,this代表当前类的实例,封装的实现:

1、修改属性的可见性来限制对属性的访问2、为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的访问3、在setter和getter方法中,加入对属性的存取限制,ublicclassStudent3privateStringname;/学生姓名privateintage;/年龄publicintgetAge()returnage;publicvoidsetAge(intage)if(age18)System.out.println(错误!

最小年龄应为18岁!

);this.age=18;/如果不符合年龄要求,则赋予默认值elsethis.age=18;/此处省略对name属性的setter、getter方法,1,2,3,ublicclassStudent3Testpublicstaticvoidmain(Stringargs)Student3s=newStudent3();s.setName(李芳);s.setAge(10);System.out.println(s.introduction();,使用封装,增加了数据访问限制,增强了程序的可维护性,错误!

最小年龄应为18岁!

大家好!

我是李芳,我今年18岁,测试类通过调用setter方法,为对象的各个属性赋值,小结1,使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗?

在Java程序中,代码封装带给我们的好处是什么?

小结2,请通过代码封装,实现如下需求:

编写一个类Book,代表教材:

具有属性:

名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200为各属性设置赋值和取值方法具有方法:

detail,用来在控制台输出每本教材的名称和页数编写测试类BookTest进行测试:

为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确,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);,ublicclassBookTestpublicstaticvoidmain(Stringargs)Bookb=newBook();b.setTitle(Java快速入门);b.setPageNum(109);b.detail();,开发学生类Student4,要求:

具有属性:

姓名、年龄、学历、职位具有行为:

自我介绍,ublicclassStudent4privateStringname;/姓名privateintage;/年龄privateStringaddress;/家庭住址privateStringtelephone;/联系方式publicStringintroduction()return“大家好!

我是”+name+“,我今年”+age+“岁,家庭住址“+address+”,联系方式是+telephone;publicStringgetName()returnname;publicvoidsetName(StringmyName)name=myName;/以下是其他属性的setter、getter方法,此处省略,编写一个测试类,要求:

实例化一个学生对象,并对其初始化在控制台输出该教员的自我介绍,ublicclassStudent4Testpublicstaticvoidmain(Stringargs)Student4s=newStudent4();s.setName(李芳);s.setAge(23);s.setAddress(“大兴);System.out.println(s.introduction();,要简化对象初始化的代码,可以通过构造方法来解决,大家好!

我是李芳,我今年23岁.,Student4中有太多的属性及对应的setter方法,在初始化时,很容易就忘记了,有没有可能简化对象初始化的代码?

构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值构造方法必须满足以下语法规则:

1、方法名与类名相同2、没有返回类型,ublicclassStudent5privateStringname;/学生姓名/构造方法publicStudent5()name=无名氏;,publicStudent5Testpublicstaticvoidmain(Stringargs)Student5teacher=newStudent5();,使用new关键字调用构造方法,通过带参数的构造方法,显式地为实例变量赋予初始值,ublicclassStudent6privateStringname;/学生姓名privateintage;/年龄privateStringaddress;/家庭住址privateStringtelephone;/联系方式/带参数的构造方法publicStudent6(StringpName,intpAge,StringpAdddress,StringpTelephone)name=pName;age=pAge;/可以增加对age等属性的存取限制条件education=pAddress;position=pTelephone;publicStringintroduction()return“大家好!

我是”+name+“,我今年”+age+“岁,家庭住址是”+address+“,联系方式+telephone;,通过调用带参数的构造方法,简化对象初始化的代码,ublicclassStudent6Testpublicstaticvoidmain(Stringargs)Student6s=newStudent6(李芳,23,“大兴”,“13588992343);System.out.println(s.introduction();,创建对象时,一并完成了对象成员的初始化工作,大家好!

我是李芳,我今年23岁,,小结3,编写一个类Book2,代表教材:

具有属性:

名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200具有方法:

detail,用来在控制台输出每本教材的名称和页数。

具有带参数的构造方法:

用来完成对象的初始化工作,并在构造方法中完成对页数的最小值限制编写测试类Book2Test进行测试:

初始化一个Book2对象,并调用该Book2对象的detail方法,看看输出是否正确,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);,ublicclassBook2Testpublicstaticvoidmain(Stringargs)Book2b=newBook2(Java入门,107);b.detail();,生活中的方法重载,类,方法,方法参数,方法实现,司机,轿车,巴士,火车,驾驶,启动、行驶、,等待乘客上车、启动、行驶、到站停车、,正点发车、行驶、到站停车、,如果用代码实现,我们需要三个方法,这些方法的方法名称相同,参数类型不同,方法重载并不陌生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方法,方法重载,java.lang.Math类的max()方法能够从两个数字中取出最大值,它有多种实现方式运行时,Java虚拟机先判断给定参数的类型,然后决定到底执行哪个max()方法,publicclassTestpublicstaticvoidmain(Stringargs)Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);,方法重载,构造方法重载是方法重载的典型示例,ublicclassStudent7privateStringname;/学生姓名privateStringschool=“北京联合大学;publicStudent7(Stri

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1