类与对象复习PPT资料.ppt
《类与对象复习PPT资料.ppt》由会员分享,可在线阅读,更多相关《类与对象复习PPT资料.ppt(30页珍藏版)》请在冰豆网上搜索。
/学生姓名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.setAge(10);
使用封装,增加了数据访问限制,增强了程序的可维护性,错误!
大家好!
我是李芳,我今年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.setAge(23);
s.setAddress(“大兴);
要简化对象初始化的代码,可以通过构造方法来解决,大家好!
我是李芳,我今年23岁.,Student4中有太多的属性及对应的setter方法,在初始化时,很容易就忘记了,有没有可能简化对象初始化的代码?
构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值构造方法必须满足以下语法规则:
1、方法名与类名相同2、没有返回类型,ublicclassStudent5privateStringname;
/学生姓名/构造方法publicStudent5()name=无名氏;
publicStudent5Testpublicstaticvoidmain(Stringargs)Student5teacher=newStudent5();
使用new关键字调用构造方法,通过带参数的构造方法,显式地为实例变量赋予初始值,ublicclassStudent6privateStringname;
/联系方式/带参数的构造方法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);
创建对象时,一并完成了对象成员的初始化工作,大家好!
我是李芳,我今年23岁,,小结3,编写一个类Book2,代表教材:
名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200具有方法:
detail,用来在控制台输出每本教材的名称和页数。
具有带参数的构造方法:
用来完成对象的初始化工作,并在构造方法中完成对页数的最小值限制编写测试类Book2Test进行测试:
初始化一个Book2对象,并调用该Book2对象的detail方法,看看输出是否正确,classBook2privateStringtitle;
publicBook2(Stringtitle,intpageNum)this.title=title;
if(pageNum200)System.out.println(页数不能少于200页!
publicvoiddetail()System.out.println(“书名:
”+title+“,页数:
ublicclassBook2Testpublicstaticvoidmain(Stringargs)Book2b=newBook2(Java入门,107);
生活中的方法重载,类,方法,方法参数,方法实现,司机,轿车,巴士,火车,驾驶,启动、行驶、,等待乘客上车、启动、行驶、到站停车、,正点发车、行驶、到站停车、,如果用代码实现,我们需要三个方法,这些方法的方法名称相同,参数类型不同,方法重载并不陌生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