Java 实验二:类的封装与继承
一·实验内容
1.学生类和借书卡类的设计
要求:
(1)设计学生类、借书卡类、及应用测试类3个类;
(2)在学生类中设计属性:学生名字和电子邮件,成员方法:包括名字和电子邮件的设置和返回;
(3)在借书卡类中设计属性:持卡人(学生)和已经借出书的数量,成员方法:包括针对两个属性的设置和返回以及显示卡中记录的所有相关信息。
(4)设计成员变量和成员方法的定义和修饰符,只能通过类自身方法访问私有属性。类外的对象可以访问公有方法。
2.USB接口程序的设计。
鼠标、键盘、麦克风这些USB设备需要插入接口中才能使用。 USB设备随着计算机的启动而启动,随着计算机的关闭而关闭,所以接口中需要定义设备的启动和停止方法。
(1)编写USB接口:设备启动方法(turnOn( ))、设备关闭方法(turnOff( ))
(2)实现USB接口的鼠标类(Mouse)、键盘类(KeyBoard)和麦克风类 (Mic),实现抽象方法
(3)由于这些设备需要在计算机中使用,设计计算机类(Computer)。计算机中有了USB插槽后,才能插入USB接口,每次插入一个新设备,计算机都会安装此设备的驱动程序。驱动安装后,设备才能正常使用,所以计算机类中设计一个USB插槽(数组)和安装USB设备(add(USB usb))的方法。 同时,计算机要有开机方法(powerOn())和关机方法(powerOff()) 。
(4)测试类Test。实例化计算机对象,并向计算机对象中添加USB设备,运行查看结果
二.实验代码
1.学生类和借书卡类的设计
//学生类public class Student { private String name; private String email; public Student() { } public Student(String name, String email) { this.name = name; this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}
//借书卡类public class Card { private String cardholder; private int number; public Card() { } public Card(String cardholder, int number) { this.cardholder = cardholder; this.number = number; } public String getCardholder() { return cardholder; } public void setCardholder(String cardholder) { this.cardholder = cardholder; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public void display(){ System.out.println("持卡人姓名为:"+getCardholder()+"\t\t已经借出的数量为:"+getNumber()); }}
//测试类package excecise2;public class Test { public static void main(String[] args) { Student s=new Student(); Card c=new Card(); s.setName("白敬亭"); s.setEmail("3678269@11.com"); c.setCardholder("小白"); c.setNumber(3); System.out.println("借书人姓名:"+c.getCardholder()+"\t\t\t借书人邮箱:"+s.getEmail()+"\t\t\t已经借书的数量:"+ c.getNumber()); }}
2.USB接口程序的设计。
/**USB接口 * @author zhao */public interface USB { void turnOn(); void turnOff();}
/** * 键盘类 */public class KeyBoard implements USB { @Override public void turnOn() { System.out.println("KeyBoard启动了"); } @Override public void turnOff() { System.out.println("keyBoard关闭了"); }}
/** * 鼠标类 */public class Mouse implements USB{@Override public void turnOn() { System.out.println("Mouse启动了"); } @Override public void turnOff() { System.out.println("Mouse关闭了"); }}
/** * 麦克风类 */public class Mic implements USB{ @Override public void turnOn() { System.out.println("Mic启动了"); } @Override public void turnOff() { System.out.println("Mic关闭了"); }}
/** * 电脑类 */public class Computer { private USB[] usbArr = new USB[4]; //像计算机上连接一个USB设备 public void add(USB usb) { //遍历数组 for (int i = 0; i < usbArr.length; i++) { if (usbArr[i] == null) { usbArr[i] = usb; break; } } } //计算的开机功能 public void powerOn() { //遍历所有的插槽 for (int i = 0; i < usbArr.length; i++) { //如果发现有设备 if (usbArr[i] != null) { //将USB设备启动 usbArr[i].turnOn(); } } System.out.println("计算机开机成功!!!"); } //计算的关机功能 public void powerOff() { //遍历所有的插槽 for (int i = 0; i < usbArr.length; i++) { //如果发现有设备 if (usbArr[i] != null) { //将USB设备关闭 usbArr[i].turnOn(); } } System.out.println("计算机关机成功!!!"); }}
/** * 测试类 */public class Test { public static void main(String[] args) { //实例化对象 Computer computer=new Computer(); //像计算机中添加鼠标、键盘、麦克风 computer.add(new KeyBoard()); computer.add(new Mouse()); computer.add(new Mic()); //开机 computer.powerOn(); //关机 computer.powerOff(); }}
三.运行结果
1.
2.