1.编写 Java 程序,设计一个学生类Student和它的一个子类Undergraduate,要求如下:
(1) Student类有name(姓名)、和age(年龄)属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个show()方法打印Student的属性信息
(2) 本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和age属性赋值,第三个参数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信息
(3) 在编写测试类Test01中分别创建Student对象和Undergraduate对象,调用它们的show()。
1.代码:
class Student {
String name;
int age;
// 构造方法
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// show()方法
public void show() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
// 本科生类,继承自学生类
class Undergraduate extends Student {
String degree;
// 构造方法
public Undergraduate(String name, int age, String degree) {
super(name, age);
this.degree = degree;
}
// show()方法
@Override
public void show() {
super.show();
System.out.println("学位:" + degree);
}
}
// 测试类
public class Test01 {
public static void main(String[] args) {
// 创建Student对象
Student student = new Student("张三", 20);
// 调用show()方法
student.show();
// 创建Undergraduate对象
Undergraduate undergraduate = new Undergraduate("李四", 22, "计算机科学");
// 调用show()方法
undergraduate.show();
}
}
2.运行结果:
2.编写 Java 程序,请按照以下要求设计一个学生类Student和Teacher,并进行测试。
(1) 设计两个类Student和Teacher
(2) 抽取两个类共同的内容(如:吃饭、睡觉)封装到一个类Person中,各自特有的部分保留在各自类中。
(3) 让学生类继承Person类,老师类也继承Person。
(4) 编写测试类Test02,测试Student类和Teacher是否继承了Person类的成员。
1.代码
// 定义Person类,包含共同的内容
class Person {
void eat() {
System.out.println("吃饭");
}
void sleep() {
System.out.println("睡觉");
}
}
// 定义Student类,继承Person类
class Student1 extends Person {
String name1;
// 构造方法
public Student1(String name1) {
this.name1 = name1;
}
// 重写eat方法
@Override
void eat() {
System.out.println(name1 + "正在吃饭");
}
}
// 定义Teacher类,继承Person类
class Teacher extends Person {
String subject;
// 构造方法
public Teacher(String subject) {
this.subject = subject;
}
// 重写sleep方法
@Override
void sleep() {
boolean name1 = false;
System.out.println(name1 + "正在学习" + subject);
}
}
// 测试类Test02
public class Test02 {
public static void main(String[] args) {
// 创建Student对象并测试
Student1 student1 = new Student1("小明");
student1.eat(); // 输出:小明正在吃饭
student1.sleep(); // 输出:小明正在睡觉
// 创建Teacher对象并测试
Teacher teacher = new Teacher("数学");
teacher.eat(); // 输出:老师正在吃饭
teacher.sleep(); // 输出:老师正在学习数学
}
}
2.运行结果:
3.编写 Java 程序,请按照以下要求设计一个Test03类,并进行测试。
(1) 定义一个类Phone,编写方法call(),表示打电话功能
(2) 定义一个Phone的子类NewPhone,重写父类call()方法,让它除了打电话功能外还具有开启语言和关闭语言功能。
(3) 编写一个测试类Test03,分别调用重写前和重写后的call()方法
1.代码
// 定义Phone类
class Phone {
public void call() {
System.out.println("--重写前--");
System.out.println("打电话");
}
}
// 定义Phone的子类NewPhone
class NewPhone extends Phone {
@Override
public void call() {
System.out.println("--重写后--");
System.out.println("开启语音功能");
System.out.println("打电话");
System.out.println("关闭语音功能");
}
}
// 编写测试类Test03
public class Test03 {
public static void main(String[] args) {
Phone phone = new Phone(); // 创建Phone对象
phone.call(); // 调用重写前的call()方法
NewPhone newPhone = new NewPhone(); // 创建NewPhone对象
newPhone.call(); // 调用重写后的call()方法
}
}
2.运行结果:
4. 编写 Java 程序,定义Test04类进行测试,要求如下:
(1) 设计接口Phone代表传统手机,在接口中定义receiveMessages()和call()抽象方法。
(2) 设计接口SmartPhone代表智能手机,在接口中定义faceTime()方法,并使用extends关键字继承Phone接口,使其具有Phone接口的所有功能。
(3) 设计类HWPhone表示华为手机,类中定义useHWUI()方法,并实现SmartPhone接口的所有方法。
4)编写测试类Test04,测试类中对HWPhone进行实例化,并访问华为手机具有的各种功能。
1.代码
interface Phone1 {
void receiveMessages();
void call();
}
interface SmartPhone extends Phone1 {
void faceTime();
}
class HWPhone implements SmartPhone {
@Override
public void receiveMessages() {
System.out.println("接收短信");
}
@Override
public void call() {
System.out.println("语音通话");
}
@Override
public void faceTime() {
System.out.println("视频通话");
}
public void useHWUI() {
System.out.println("使用HWUI");
}
}
public class Test04 {
public static void main(String[] args) {
HWPhone phone = new HWPhone();
phone.receiveMessages();
phone.call();
phone.faceTime();
phone.useHWUI();
}
}
- 运行结果:
应用题1:定义USB接口(具备开启功能、关闭功能),笔记本要使用USB设备,鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范。
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
USB接口,包含开启功能、关闭功能
笔记本类,包含运行功能、关机功能、使用USB设备功能
鼠标类,要符合USB接口
键盘类,要符合USB接口
注:掌握定义类、接口的语法结构、掌握面向接口的编程方法。
1.代码
interface USB {
void turnOn();
void turnOff();
}
class Notebook implements USB {
private boolean isRunning;
public Notebook() {
isRunning = false;
}
public void run() {
if (!isRunning) {
isRunning = true;
System.out.println("笔记本正在运行");
} else {
System.out.println("笔记本已经在运行了");
}
}
public void useUSBDevice(USB device) {
device.turnOn();
System.out.println("已使用USB设备");
}
public void shutdown() {
if (isRunning) {
isRunning = false;
System.out.println("笔记本已经关机");
} else {
System.out.println("笔记本已经关机了");
}
}
@Override
public void turnOn() {
System.out.println("USB接口已开启");
}
@Override
public void turnOff() {
System.out.println("USB接口已关闭");
}
}
class Mouse implements USB {
@Override
public void turnOn() {
System.out.println("鼠标已开启");
}
@Override
public void turnOff() {
System.out.println("鼠标已关闭");
}
}
class Keyboard implements USB {
@Override
public void turnOn() {
System.out.println("键盘已开启");
}
@Override
public void turnOff() {
System.out.println("键盘已关闭");
}
}
public class Test05 {
public static void main(String[] args) {
Notebook notebook = new Notebook();
notebook.run();
notebook.shutdown();
USB mouse = new Mouse();
notebook.useUSBDevice(mouse);
mouse.turnOn();
mouse.turnOff();
USB keyboard = new Keyboard();
notebook.useUSBDevice(keyboard);
keyboard.turnOn();
keyboard.turnOff();
}
}
2.运行结果
应用题2.编写一个程序模拟“饲养员喂食动物”的过程。
饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发出欢快的叫声。例如,给小狗喂骨头,小狗会汪汪叫;给小猫喂食,小猫会喵喵叫。
实现要求如下:
饲养员给小狗喂骨头,小狗汪汪叫。
饲养员给小猫喂小鱼,小猫喵喵叫。
1.代码
class Animal {
void makeSound() {
System.out.println("动物发出叫声");
}
}
// Dog 类,继承自 Animal 类,表示小狗
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("小狗汪汪叫~~~小狗正在啃着香喷喷的骨头!");
}
}
// Cat 类,继承自 Animal 类,表示小猫
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("小猫喵喵叫~~~小猫正在吃着香喷喷的黄花鱼!");
}
}
// Zookeeper 类,表示饲养员
class Zookeeper {
// 喂食方法,参数为动物类型
void feedAnimal(Animal animal) {
// 喂食时动物发出叫声
animal.makeSound();
}
}
// 主程序
class Main {
public static void main(String[] args) {
System.out.println("欢迎来到动物园!");
System.out.println("-------------------");
// 创建小狗对象和小猫对象
Dog dog = new Dog();
Cat cat = new Cat();
// 创建饲养员对象
Zookeeper zookeeper = new Zookeeper();
// 饲养员给小狗喂骨头
zookeeper.feedAnimal(dog);
// 饲养员给小猫喂小鱼
zookeeper.feedAnimal(cat);
}
}
2.运行结果: