1.继承
创建Person类,含有属性:name姓名,age年龄。含有方法void eat;方法中打印输出“我爱吃XXX”。含有构造方法,带两个参数,分别是name和age,并利用this关键字传值到成员变量中 。
创建Student类,含有属性:grade,含有方法,void study();方法打印输出:“我热爱学习XXX”。创建包含三个参数的构造方法,分别是name,age,grade,利用super实现父类构造方法传值。重写void eat方法。
创建Teacher类,含有属性:subject,含有方法,void teach();方法打印输出:“我教授的是XXX”。创建包含三个参数的构造方法,分别是name,age,subject,利用super实现父类构造方法传值。重写void eat方法。
创建Test测试类,创建Student对象,并调用带3个参数的构造方法,自己赋值,然后依次调用study方法,eat方法。
创建Teacher对象,并调用带3个参数的构造方法,自己赋值,然后依次调用teach方法,eat方法。
2.多态
动物王国
请创建一个Animal动物类,要求有方法eat( )方法,方法输出一条语句“吃东西”。创建一个接口AnimalInfo,接口里有一个抽象方法fly( )。创建一个Bird类继承Animal类并实现接口AnimalInfo里的方法输出一条有语句“鸟儿飞翔”,重写父类的eat( ) 方法输出一条语句“鸟儿吃虫”。
创建Test类并添加main方法,在main方法中添加 如下功能:
(1)创建Animal类的对象并调用eat( )方法;
(2)使用父类引用Bird类的对象,并调用eat( )方法;
(3)使用接口引用Bird类的对象,并调用fly( )方法;
(4)使用Bird类引用Bird类的对象,并调用eat( )方法和fly( )方法。
输出结果如下:
吃东西
鸟儿吃虫
鸟儿飞翔
鸟儿吃虫
鸟儿飞翔
3. 私有化,赋值1
请创建一个Car抽象类,要求有brand(品牌)属性,并且要求封装私有化,写出属性的 set、get方法。抽象类Car构造方法中也可以对brand属性赋值,写出一个抽象方法run()。创建一个跑车类SportsCar继承抽象类Car。实现Car抽象方法输出一条语句“超级跑车”,在本类中写出一个自己的方法price(),输出一条语句“售价100w”。在测试类Test类中创建跑车对象car1,用构造器赋值品牌属性,输出属性,调用run()、 price()方法。创建跑车car2,用set方法赋值属性,输出属性,调用run()、price()方法。
评分标准:
1)正确写出抽象类Car ,写出抽象方法—10分
2)封装属性,写出set、get方法—15分
3)正确写出SportsCar类继承Car类和实现run方法—15分
4)创建car1、car2对象并调用方法—10分
5)成功正确输出—10分
显示结果如下:
法拉利
超级跑车
售价100w
兰博基尼
超级跑车
售价100w
4.私有化,赋值2
首先定义一个抽象类Animal,具有属性:重量,重量要求封装私有化,写出属性的 set、get方法;抽象类Animal构造方法中也可以对重量属性赋值;抽象类中定义二个抽象方法play()和show()。创建 一个猫Cat类,继承Animal并重写play方法输出“猫玩老鼠”;重写show方法输出“猫重几斤”。创建一个猴Monkey类, 继承Animal并重写play方法输出“猴玩球”;重写show方法输出“猴重几斤”。最后编写测试类TestDemo,通 过创建猫,用构造器赋值重量属性,输出属性;并调用猫对象的play方法和show方法。通过创建猴,用set方法赋值属性,get方法输出属性。并调用猴对象的play方法和show方法。
效果如:
猫玩老鼠
猫重3斤
猴玩球
猴重10斤
5.私有化,赋值2
(1)定义一个Flower花类作为父类(20分)
属性:颜色 价格
价格属性要进行封装(即私有属性写set,get方法)
定义无参构造方法,和传两个参数的有参构造方法。
方法:显示详细信息的方法showInfo ()。
(2)定义一个Rose玫瑰花类继承Flower类(20分)
玫瑰花自己的属性:产地(要求对产地属性进行封装 私有化属性)
重写父类中的显示详细信息的方法showInfo,在重写的showInfo方法中通过super调用父类的showInfo方法;并显示产地信息。
再定义一个方法warn警告显示:不要摘玫瑰花,小心扎手!
(3)定义测试类Test完成:(20分)
①实例化Flower类,调用构造方法赋值,并调用方法,输出:
花的颜色是白色,价格是10元。
②实例化玫瑰花类,调用方法,输出:
花的颜色是紫色,价格是30元。
产地是大理。
不要摘玫瑰花,小心扎手!
6.时间加法减法
加法
在程序中,经常要对时间进行操作,请定义实现一个时间类,来满足程序中的需要:(1)定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second)。(2)为了保证数据的安全性,这三个成员变量应声明为私有。(3)为MyTime类定义构造方法,以方便创建对象时初始化成员变量。(4)为MyTime类添加以下三个方法,分别对时、分、秒进行加减运算。
addSecond(int second)
addMinute(int minute)
addHour(int hour)
注意时、分、秒可以大于或小于0,在进行计算时还应该注意进位。
如当前时间12:20:40,当调用addSecond( 30)时,则时间变为:12:21:10;(5)重写toString()方法,用于将时间信息打印出来。输出格式为:时:分:秒(12:20:40)测试要求如下:
(1)初始化时间为 12:20:40
(2)增加30秒之后输出时间为:12:21:10
(3)增加70分钟后输出时间为:13:31:10
(4)增加25小时后输出时间为:14:31:10
输出结果如下:
12:21:10
13:31:10
14:31:10
public class MyTime {
private int hour;
private int minute;
private int second;
public MyTime() {
}
public MyTime(int hour, int minute, int second) {
super();
this.hour = hour;
this.minute = minute;
this.second = second;
}
public void addSecond(int second) {
this.second+=second;
addMinute(this.second/60);
this.second=this.second%60;
}
public void addMinute(int minute) {
this.minute+=minute;
addHour(this.minute/60);
this.minute=this.minute%60;
}
public void addHour(int hour) {
this.hour+=hour;
this.hour=this.hour%24;
}
@Override
public String toString() {
return hour+":"+minute+":"+second;
}
}
public class Text {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyTime m=new MyTime(12,20,40);
m.addSecond(30);
System.out.println(m.toString());
m.addMinute(70);
System.out.println(m.toString());
m.addHour(25);
System.out.println(m.toString());
}
}
减法
public class MyTime {
private int hour;
private int minute;
private int second;
public MyTime() {
}
public MyTime(int hour, int minute, int second) {
super();
this.hour = hour;
this.minute = minute;
this.second = second;
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}
public void cutSecond(int second) {
this.second-=second;
if(this.second<0) {
int i=(-this.second)/60;
this.second=(this.second%60)+60;
i+=1;
cutMinute(i);
}
}
public void cutMinute(int minute) {
this.minute-=minute;
if(this.minute<0) {
int i=(-this.minute)/60;
this.minute=(this.minute%60)+60;
i+=1;
cutHour(i);
}
}
public void cutHour(int hour) {
this.hour-=hour;
if(this.hour<0) {
this.hour+=24;
}
}
@Override
public String toString() {
return hour+":"+minute+":"+second;
}
}
public class Text {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyTime m=new MyTime(12,20,40);
m.cutSecond(50);
System.out.println(m.toString());
m.cutMinute(70);
System.out.println(m.toString());
m.cutHour(25);
System.out.println(m.toString());
}
}