1.setXxx(),getXxx9()使用
题目一:定义一个Division类(除法),类中定义两个int类型的私有成员变量dividend(被除数)和divisor(除数),默认值都为1。定义四个公有方法setDividend(int mDividend )、getDividend()、setDivisor(int mDivisor)和getDivisor(),用于对私有属性进行设置和访问。在setDivisor(int mDivisor)方法中对传入的参数进行检查,如果传入值为零,则打印“除数不能为零”,如果不为零,才将其设置为divisor属性的值。
定义Example01类,在类的main()方法中创建Division对象,分别调用setDividend(int mDividend)和setDivisor(int mDivisor)方法给两个私有属性dividend和divisor赋值,然后打印出dividend和divisor的结果。
代码展示
class Division{
private int divident = 1;
private int divisor = 1;
public int getDividend() {
return divident;
}
public void setDivident(int divident){
this.divident=divident;
}
public int getDivisor() {
return divisor;
}
public void setDivisor(int divisor) {
if(divisor == 0) {
System.out.println("除数不能为零");}
else {
this.divisor=divisor;
}
}
public void chufa() {
System.out.println("两数相除为divident/divisor="
+divident/divisor);
}
}
运行结果:两数相除为divident/divisor=6
getXxx()和setXxx()方法的作用
类的封装,将对象的状态信息隐藏在内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作访问。
在定义一个类时,将类属性私有化,如果外界要访问私有属性,要提供一些使用公共方法,其中就包括获取属性值的getXxx()方法和设置属性值的setXxx()方法。
2.继承(extends)
题目二:1)定义一个类Phone,编写方法call(),表示打电话功能;
2)定义一个Phone的子类NewPhone,重写父类call()方法,让它除了打电话功能外还具有开启语言和关闭语言功能;
3)编写测试类Example02,分别调用重写前和重写后的call()方法。
代码展示
class phone{
public void call(){
System.out.println("我给你打电话");
System.out.println("-----------");
}
}
class Newphone extends phone{
public void call() {
System.out.println("我给你打电话");
System.out.println("开启语音");
System.out.println("关闭语音");
}
}
public class Example02 {
public static void main(String[] args) {
phone a = new phone();
a.call();
phone b = new Newphone();
b.call();
}
}
运行结果:
我给你打电话
我给你打电话
开启语音
关闭语音
3.super关键字
题目三:1)编写一个Fu类,在类中定义无参构造方法、一个初始值为20的num成员变量。一个无返回值的show()方法。
2)Zi类继承Fu类,在子类中对num值进行了修改,同时在子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super关键字调用了Fu类的num成员变量、调用Fu类的show()方法、调用Fu类的构造方法。
3)定义测试类Example03。
代码展示
class Fu{
int num = 20;
public Fu() {
System.out.println("父类无参构造方法被调用了");
}
public void show() {
System.out.println("无返回值的方法被调用了");
}
}
class Zi extends Fu{
int num= 30;
public Zi() {
super();//调用父类的无参构造方法
System.out.println("子类无参构造方法被调用了");
}
public void method() {
System.out.println("name="+super.num);//访问父类的成员变量
super.show();//调用父类的成员方法
}
}
public class Example03 {
public static void main(String[] args) {
Fu fu = new Fu();//创建父类的对象并调用无参构造方法
System.out.println("num="+fu.num);//打印父类成员变量
Zi zi = new Zi();//实例化子类的无参构造方法
zi.show();//调用子类有父类继承过来的方法
zi.method();
System.out.println("num="+zi.num);//打印子类成员变量
}
}
运行结果:
父类无参构造方法被调用了
num=20
父类无参构造方法被调用了
子类无参构造方法被调用了
无返回值的方法被调用了
name=20
无返回值的方法被调用了
num=30
- 使用super关键字调用父类的成员变量和成员方法
super.成员变量
super.成员方法([参数1,参数2…])
- 使用super关键字调用父类的构造方法
super([参数1,参数2…])
总结
通过本次课的学习,并通过上机实践,掌握了一些java的关键字,对于this,super,extends关键字,以及getXxx()和setXxx()方法的使用比较熟悉。
心得体会
在这次Java的实验中,通过自己独立的完成实验,联系课堂所学的知识实现题目的需求,其实挺有成就感的。希望自己一直保持对于学习Java的热情,学好这门语言,相信自己。