实验15、16:JAVA面向对象编程(继承、接口)
面向对象编程实验报告

面向对象编程实验报告一、实验目的本次实验旨在通过面向对象编程的方式,设计并实现一个简单的学生信息管理系统,加深对面向对象编程原理和概念的理解,并掌握面向对象编程的应用技巧。
二、实验内容1. 设计学生类(Student):包括学生的基本信息(学号、姓名、性别、年龄等)以及相关操作(添加信息、修改信息、删除信息等)。
2. 设计班级类(Class):包括班级的基本信息(班级编号、班级名称等)以及与学生类的关联关系(一个班级包含多个学生)。
3. 设计主程序类(Main):用于对学生信息进行管理和操作,包括添加学生、删除学生、修改学生信息、查询学生信息等功能。
4. 编写测试用例:对设计的学生信息管理系统进行测试,保证系统能够正常运行并实现预期功能。
三、实验步骤1. 设计学生类(Student):首先确定学生类的属性和方法,定义学生类的成员变量(学号、姓名、性别、年龄)以及成员方法(添加学生信息、修改学生信息、查询学生信息等)。
2. 设计班级类(Class):确定班级类的属性和方法,包括班级编号、班级名称以及一个包含学生信息的集合,设计班级类与学生类的关联关系。
3. 编写主程序类(Main):在主程序类中实现学生信息的管理功能,通过用户输入选择对学生信息的操作,调用学生类和班级类中的方法实现相应功能。
4. 编写测试用例:设计多个测试用例,分别测试添加学生、删除学生、修改学生信息等功能,确保系统能够正确运行并实现预期功能。
四、实验结果分析经过测试,学生信息管理系统能够正常运行并实现预期功能。
用户可以通过主程序类对学生信息进行添加、删除、修改和查询操作,操作界面友好,操作流程清晰,便于用户操作和管理学生信息。
五、实验总结通过本次实验,我深入理解了面向对象编程的原理和概念,掌握了面向对象编程的应用技巧,提升了对Java编程语言的熟练程度。
面向对象编程具有代码复用、维护方便和高扩展性等优点,是一种高效的编程思想。
在今后的学习和工作中,我将继续深入研究面向对象编程,不断提升自己的编程能力。
java编程实验报告

java编程实验报告Java编程实验报告引言:Java是一种广泛应用于软件开发领域的高级编程语言,具有跨平台、面向对象、安全性高等特点。
本篇文章将介绍我在Java编程实验中的实践和收获。
实验一:Hello World程序在本实验中,我学习了如何使用Java编写一个简单的Hello World程序。
通过这个实验,我了解了Java的基本语法和程序结构。
在编写过程中,我发现Java的语法规范相对严格,需要注意语句的结束符号和代码的缩进。
通过运行程序,我成功输出了"Hello World"这个简单的字符串,这让我对Java编程的基本流程和语法有了更深入的了解。
实验二:变量与运算符在本实验中,我学习了Java中的变量和运算符的使用。
通过编写程序,我实现了对不同类型的变量进行声明和赋值,并进行基本的运算操作。
在这个过程中,我发现Java的变量需要先声明后使用,而且在进行运算时需要注意数据类型的匹配。
通过这个实验,我对Java中的变量和运算符有了更深入的理解。
实验三:条件语句与循环结构在本实验中,我学习了Java中的条件语句和循环结构的使用。
通过编写程序,我实现了对不同条件进行判断,并根据不同的条件执行相应的操作。
同时,我还学习了循环结构的使用,通过循环语句实现了对一段代码的重复执行。
在这个实验中,我发现条件语句和循环结构是Java编程中非常重要的部分,能够帮助程序实现更复杂的逻辑。
实验四:数组和字符串在本实验中,我学习了Java中数组和字符串的使用。
通过编写程序,我实现了对数组和字符串的声明、赋值和操作。
在这个过程中,我发现Java中的数组和字符串是一种非常方便的数据结构,能够帮助程序处理大量的数据。
通过这个实验,我对Java中数组和字符串的使用有了更深入的了解。
实验五:面向对象编程在本实验中,我学习了Java中的面向对象编程的基本概念和使用。
通过编写程序,我实现了对类的定义、对象的创建和方法的调用。
java实验报告 类的继承

java实验报告类的继承一、实验目的1、深入理解 Java 中类的继承概念和机制。
2、掌握通过继承实现代码复用和功能扩展。
3、学会使用 super 关键字和方法重写。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse 或 IntelliJ IDEA三、实验内容1、创建一个父类`Animal`包含属性:`name`(字符串类型),`age`(整数类型)包含方法:`eat()`(打印出动物正在吃东西),`sleep()`(打印出动物正在睡觉)2、创建子类`Dog` 继承自`Animal`新增属性:`breed`(字符串类型,表示狗的品种)重写父类的`eat()`方法,打印出狗吃东西的特有方式新增方法:`bark()`(打印出狗在叫)3、创建子类`Cat` 继承自`Animal`新增属性:`color`(字符串类型,表示猫的颜色)重写父类的`sleep()`方法,打印出猫睡觉的特有姿势新增方法:`meow()`(打印出猫在叫)四、实验步骤1、在 Java 项目中创建一个名为`Animal` 的类:```javapublic class Animal {private String name;private int age;public Animal(String name, int age) {thisname = name;thisage = age;}public void eat(){Systemoutprintln(name +" is eating");}public void sleep(){Systemoutprintln(name +" is sleeping");}}```2、创建一个名为`Dog` 的类继承自`Animal`:```javapublic class Dog extends Animal {private String breed;public Dog(String name, int age, String breed) {super(name, age);thisbreed = breed;}@Overridepublic void eat(){Systemoutprintln(supergetName()+" the "+ breed +" dog is eating greedily");}public void bark(){}}```3、创建一个名为`Cat` 的类继承自`Animal`:```javapublic class Cat extends Animal {private String color;public Cat(String name, int age, String color) {super(name, age);thiscolor = color;}@Overridepublic void sleep(){Systemoutprintln(supergetName()+" the "+ color +" cat is sleeping curled up");}public void meow(){}}```4、在`Main` 类中进行测试:```javapublic class Main {public static void main(String args) {Dog dog = new Dog("Buddy", 3, "Labrador");dogeat();dogbark();dogsleep();Cat cat = new Cat("Mimi", 2, "White");cateat();catsleep();catmeow();}}```五、实验结果1、运行`Main` 类后,输出结果如下:`Buddy the Labrador dog is eating greedily``Buddy is barking``Buddy is sleeping``Mimi is eating``Mimi the White cat is sleeping curled up``Mimi is meowing`2、可以看到,子类`Dog` 重写了父类`Animal` 的`eat()`方法,展示了狗特有的吃东西方式;子类`Cat` 重写了父类的`sleep()`方法,展示了猫特有的睡觉姿势。
Java实验报告继承、多态、接口和异常处理

Java实验报告继承、多态、接⼝和异常处理实验5 继承、多态、接⼝和异常处理⼀、实验⽬的1、掌握Java的类和对象的声明和使⽤⽅法;2、掌握Java的类的继承和实现⽅法;3、掌握多态性在类的继承中的运⽤;4、掌握接⼝的定义与使⽤;5、掌握基本异常的处理机制;6、熟悉try语句与catch语句的搭配使⽤;7、了解有异常处理与没有异常处理的差别;8、多重catch语句的使⽤;9、使⽤Throws声明异常和Throw抛出异常。
⼆、实验环境1、PC微机;2、DOS操作系统或 Windows 操作系统;3、Java sdk程序开发环境、eclipse集成环境。
三、实验内容1. 设计三个类,分别是学⽣类Student,本科⽣类UnderGraduate,研究⽣类Postjgraduate,其中Student类是⼀个抽象类,它包含学⽣的基本信息如姓名、所学课程、课程成绩等,⽽Undergraduate类和Postgraduate类都是Student类的⼦类,这两个类计算课程成绩等级的⽅法有所不同,如下表所⽰。
假设某班级⾥既有研究⽣⼜有本科⽣,编写程序统计出全班学⽣2. 和Mobilephone具体实现,并设计⼀个应⽤程序类来使⽤这些类。
3.要求设计⼀个GUI图形窗⼝程序,该程序让⽤户输⼊⼀个星期中的任意⼀天的数字1-7,然后输出该数字所对应的是星期⼏。
四、实验步骤实验内容⼀1.建⽴package experiment5_1,其最终⽬录结构如下:2.建⽴Student类:package experiment5_1;public abstract class Student {final static int CourseNo = 3;String name;String type;int[] courses;String courseGrade;public Student(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name; courses = new int[CourseNo];courseGrade = "" ;}public abstract void calculateGrade();public String getName( ) {return name;}public String getType( ) {return type ;}public String getCourseGrade( ) {return courseGrade;}public int getCourseScore(int courseNumber) {return courses[courseNumber];}public void setName(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name;}public void setType(String type) {this.type = type;}public void setCourseScore(int courseNumber, int courseScore) { //按课程索引号设置课程成绩this.courses[courseNumber] = courseScore ;}}3.建⽴外部类(1)研究⽣类Postjgraduatepackage experiment5_1;public class postgraduate extends Student {public postgraduate(String name) {super(name);type = "研究⽣";}public void calculateGrade() {// TODO Auto-generated method stubint total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += courses[i];};average = total / CourseNo;if (average>=90&&average<100) courseGrade = "优秀"; else if (average>=80&&average<90) courseGrade = "良好"; else if (average>=70&&average<80) courseGrade = "⼀般"; else if (average>=60&&average<70) courseGrade = "及格"; else courseGrade = "不及格";}}(2)本科⽣类UnderGraduatepackage experiment5_1;public class undergraduate extends Student {public undergraduate(String name ) {super(name);type = "本科⽣";}public void calculateGrade() {int total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += getCourseScore(i) ;};average = total / CourseNo;if (average>=80&&average<100) courseGrade = "优秀"; else if (average>=70&&average<80) courseGrade = "良好"; else if (average>=60&&average<70) courseGrade = "⼀般"; else if (average>=50&&average<60) courseGrade = "及格"; else courseGrade = "不及格";}}4.编写代码测试函数package experiment5_1;public class polymorphism {public static void main(String[] args) {Student[] students = new Student[5];students[0] = new undergraduate("陈建平");students[1] = new undergraduate("鲁向东");students[2] = new postgraduate("匡晓华");students[3] = new undergraduate("周丽娜");students[4] = new postgraduate("梁欣欣");for (int i=0; i<5 ;i++) {students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for (int i=0; i<5 ;i++) {students[i].calculateGrade();}System.out.println("姓名" + " 类型" +" 成绩");System.out.println("-----------------------");for (int i=0; i<5 ;i++) {System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));}}}实验内容⼆1.建⽴package experiment5_2,其最终⽬录结构如下:2.写接⼝Soundable代码:package experiment5_2;public interface Soundable {public void increaseV olume( );public void decreaseV olume( );public void stopSound( );public void playSound( );}3.创建三个类Radio、Walkman和Mobilephone具体实现,分别添加代码:// Mobilephone类package experiment5_2;class Mobilephone implements Soundable{public void increaseV olume( ) {System.out.println("增⼤⼿机⾳量");}public void decreaseV olume( ) {System.out.println("减⼩⼿机⾳量");}public void stopSound( ) {System.out.println("关闭⼿机");}public void playSound( ) {System.out.println("⼿机发出来电铃声");}}// Walkman类package experiment5_2;class Walkman implements Soundable { public void increaseV olume( ) { System.out.println("增⼤随声听⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩随声听⾳量"); }public void stopSound( ) {System.out.println("关闭随声听");}public void playSound( ) {System.out.println("随声听发出⾳乐"); }}// Radio类package experiment5_2;class Radio implements Soundable{ public void increaseV olume( ) { System.out.println("增⼤收⾳机⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩收⾳机⾳量"); }public void stopSound( ) {System.out.println("关闭收⾳机");}public void playSound( ) {System.out.println("收⾳机播放⼴播"); }}4.创建people类及编写测试代码://People类package experiment5_2;class People {public void listen(Soundable s) {s.playSound( );}}//测试代码package experiment5_2;import java.util.Scanner;public class InterfaceTest {public static void main(String[] args) {int i;People sportsman = new People( );Scanner scanner = new Scanner(System.in);Soundable[] soundDevice = new Soundable[3];//往声⾳设备数组中放⼊能发声的设备soundDevice[0] = new Radio( );soundDevice[1] = new Walkman( );soundDevice[2] = new Mobilephone();System.out.println("你想听什么? 请输⼊选择:0-收⾳机1-随声听2-⼿机");i = scanner.nextInt( );//开始听声⾳sportsman.listen(soundDevice[i]);soundDevice[i].increaseV olume( );soundDevice[i].stopSound();scanner.close();}}实验内容三1.建⽴package experiment5_3,其最终⽬录结构如下package experiment5_3;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DateTransf extends JFrame implements KeyListener{/****/private static final long serialVersionUID = 1L;private static DateTransf frm;private static JTextField txt;private static JTextField data;DateTransf() {setTitle("数字与星期转换");setLocation(700, 300);setSize(400,130);}public static void main(String[] args) {frm = new DateTransf();frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setLayout(new GridLayout(2,2));txt = new JTextField(12);data = new JTextField(12);JLabel lable1 = new JLabel("输⼊数字:");JLabel lable2 = new JLabel("星期⼏:");frm.add(lable1);txt.addKeyListener(frm);frm.add(txt);frm.add(lable2);frm.add(data);frm.setVisible(true);}public void keyPressed(KeyEvent e) {if (e.getSource() == txt) {if (e.getKeyCode() == KeyEvent.VK_ENTER) // 判断按下的键是否是回车键{try {int number = Integer.parseInt(txt.getText());switch (number) {case 1:data.setText("Mon");break;case 2:data.setText("Tue");break;case 3:data.setText("Wen");break;case 4:data.setText("Thu");break;case 5:data.setText("Fri");break;case 6:data.setText("Sat");break;case 7:data.setText("Sun");break;default:JOptionPane.showMessageDialog(null, "您输⼊的数字不是1~7","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMATION_MESSAGE); break;}}catch (Exception e1) {// TODO: handle exceptionJOptionPane.showMessageDialog(null, "您输⼊的不是整数","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMA TION_MESSAGE); }}}}public void keyReleased(KeyEvent e) {}public void keyTyped(KeyEvent e) {}}2.编译运⾏五、实验结果●实验内容⼀结果:●实验内容⼆结果:●实验内容三结果:六、实验⼩结1.这次实验的内容⽐较多,需要掌握Java的类和对象的声明和使⽤⽅法、Java的类的继承和实现⽅法、多态性在类的继承中的运⽤、接⼝的定义与使⽤、基本异常的处理机制、try语句与catch语句的搭配使⽤等等;2. 在实验过程中,重点是要区分好实例和类,灵活掌握类的调⽤。
java类的继承实验报告

java类的继承实验报告Java类的继承实验报告引言:在面向对象的编程语言中,继承是一种重要的概念。
Java作为一门面向对象的编程语言,也支持类的继承。
本篇实验报告将介绍Java类的继承的基本概念、语法以及实际应用。
一、继承的基本概念继承是指一个类可以派生出另一个类,被派生出的类称为子类,派生出子类的类称为父类。
子类可以继承父类的属性和方法,并且可以在此基础上进行扩展或修改。
继承的关系可以形成类的层次结构,使得代码的复用性和可维护性得到提高。
二、继承的语法在Java中,使用关键字"extends"来实现类的继承关系。
子类通过继承父类来获得父类的属性和方法。
语法格式如下:```javaclass 子类名 extends 父类名 {// 子类的成员变量和方法}```在子类中可以重写父类的方法,以实现自己的逻辑。
使用关键字"super"可以调用父类的构造方法和成员变量。
三、继承的实际应用1. 代码复用继承的一个主要优势是可以实现代码的复用。
子类可以继承父类的属性和方法,避免了重复编写相同的代码。
例如,假设有一个父类"Animal",子类"Dog"和"Cat"可以继承父类的一些通用属性和方法,如"eat()"和"sleep()"。
2. 多态性继承也为多态性的实现提供了基础。
多态性是指一个对象可以根据不同的类型表现出不同的行为。
通过继承,可以将不同的子类对象赋给父类引用,实现对不同子类对象的统一操作。
例如,有一个父类"Shape",子类"Circle"和"Rectangle"可以继承父类的方法"draw()",并在自己的类中实现具体的绘制逻辑。
通过将子类对象赋给父类引用,可以统一调用"draw()"方法,实现对不同形状的绘制。
20155313实验三《Java面向对象程序设计》实验报告

20155313实验三《Java⾯向对象程序设计》实验报告⼀、实验内容XP基础XP核⼼实践相关⼯具⼆、实验要求1.没有Linux基础的同学建议先学习《Linux基础⼊门(新版)》《Vim编辑器》课程2.完成实验、撰写实验报告,实验报告以博客⽅式发表在博客园,注意实验报告重点是运⾏结果,遇到的问题(⼯具查找,安装,使⽤,程序的编辑,调试,运⾏等)、解决办法(空洞的⽅法如“查⽹络”、“问同学”、“看书”等⼀律得0分)以及分析(从中可以得到什么启⽰,有什么收获,教训等)。
报告可以参考范飞龙⽼师的指导3.严禁抄袭,有该⾏为者实验成绩归零,并附加其他惩罚措施。
三、实验步骤1. 在IDEA中使⽤⼯具(Code->Reformate Code)把下⾯代码重新格式化,再研究⼀下Code菜单,找出⼀项让⾃⼰感觉最好⽤的功能。
提交截图,加上⾃⼰学号⽔印。
public class CodeStandard {public static void main(String [] args){StringBuffer buffer = new StringBuffer();buffer.append('S');buffer.append("tringBuffer");System.out.println(buffer.charAt(1));System.out.println(buffer.capacity());System.out.println(buffer.indexOf("tring"));System.out.println("buffer = " + buffer.toString());if(buffer.capacity()<20)buffer.append("1234567");for(int i=0; i<buffer.length();i++)System.out.println(buffer.charAt(i));}}2. 在码云上把⾃⼰的学习搭档加⼊⾃⼰的项⽬中,确认搭档的项⽬加⼊⾃⼰后,下载搭档实验⼆的Complex代码,加⼊不少于三个JUnit单元测试⽤例,测试成功后git add .; git commit -m "⾃⼰学号添加内容";git push;提交搭档项⽬git log的截图,包含上⾯git commit的信息,并加上⾃⼰的学号⽔印信息。
Java面向对象编程实战案例

Java面向对象编程实战案例1. 简介Java面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程范式,它以对象为中心,通过封装、继承和多态等特性来组织和管理代码。
本文将介绍一些实战案例,展示Java面向对象编程的实际应用。
2. 案例一:学生管理系统学生管理系统是一个典型的Java面向对象编程案例,它常用于学校、培训机构等管理学生信息。
在这个案例中,可以定义一个Student类,包含学生的姓名、年龄、学号等属性,以及学生的增删改查等方法。
可以使用面向对象的思想,将学生信息封装到一个对象中,并使用集合类来管理多个学生对象。
3. 案例二:图形计算器图形计算器是另一个有趣的Java面向对象编程案例。
可以定义一个Shape类作为图形的基类,包含计算图形面积和周长的方法,并派生出Circle、Rectangle和Triangle等子类,分别表示圆形、长方形和三角形。
通过面向对象的继承特性,可以调用对应子类的计算方法,根据用户的输入来计算所需图形的面积和周长。
4. 案例三:银行账户管理系统银行账户管理系统是一个常见的Java面向对象编程案例,用于管理银行的账户信息。
可以定义一个Account类,包含账户的姓名、余额、存取款等方法,并通过封装特性将账户信息隐藏在对象中。
可以使用ArrayList类来存储多个账户对象,实现对账户信息的管理和操作。
5. 案例四:图书馆管理系统图书馆管理系统是另一个典型的Java面向对象编程案例,用于管理图书馆的图书信息。
可以定义一个Book类,包含图书的书名、作者、价格等属性,并封装对应的get和set方法。
可以使用HashMap类来存储图书编号和对应的图书对象,实现图书的检索和借还功能。
还可以定义一个User类表示图书馆的用户,包含用户的姓名、借书数量等属性。
6. 案例五:游戏角色管理系统游戏角色管理系统是一个有趣的Java面向对象编程案例,用于管理游戏中的角色信息。
java类的继承实验报告

java类的继承实验报告Java类的继承实验报告引言:在面向对象的编程语言中,继承是一种重要的概念。
Java作为一种面向对象的编程语言,也提供了类的继承机制。
本实验旨在通过编写Java程序,深入理解和掌握Java类的继承。
实验目的:1. 理解继承的概念和原理;2. 掌握Java中类的继承的语法和用法;3. 实践继承的实际应用。
实验过程:1. 创建父类和子类在实验中,我们首先创建一个父类和一个子类。
父类可以是一个基本的类,子类则继承了父类的属性和方法。
这样,子类就可以在不改变父类的基础上,扩展自己的功能。
2. 继承的语法和用法Java中,使用关键字"extends"来实现类的继承。
子类通过继承父类,可以获得父类的属性和方法,并且可以在子类中添加新的属性和方法。
在实验中,我们可以通过创建子类对象,并调用继承自父类的方法来验证继承的正确性。
3. 方法的重写在继承中,子类可以重写父类的方法。
这样,当子类调用该方法时,实际上执行的是子类重写后的方法。
通过方法的重写,我们可以实现多态性的效果。
4. 实际应用在实验中,我们可以选择一个具体的应用场景,例如动物类的继承。
我们可以创建一个父类Animal,包含基本的属性和方法,然后创建子类Dog和Cat,分别继承Animal类,并添加自己的特有属性和方法。
通过这个实例,我们可以更好地理解继承的实际应用。
实验结果:通过实验,我们成功地创建了父类和子类,并验证了继承的正确性。
我们还成功地重写了父类的方法,实现了多态性的效果。
最后,我们还通过实际应用的例子,更好地理解了继承的实际应用。
实验总结:通过本次实验,我们深入理解和掌握了Java类的继承。
继承是面向对象编程中的重要概念,通过继承,我们可以实现代码的重用和扩展。
在实际应用中,继承也可以帮助我们更好地组织代码,提高代码的可读性和可维护性。
然而,继承也有一些限制和注意事项。
首先,Java中只支持单继承,即一个子类只能继承一个父类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验15:面向对象基础编程(六)继承
实验目的:
1.理解继承的概念
2.掌握继承的实现
3.理解继承中的覆盖现象
4.理解抽象类的概念,掌握定义抽象类的方法和应用
实验数据记录及分析(或程序及运行结果)
1.首先预测下列程序的运行结果,然后编译、执行以验证你的预测:
class Pet{
protected String name;
public Pet(String n){
name = n;
}
public String getName(){
return name;
}
public String move(){
return "run";
}
public String speak(){
return "";
}
public String toString(){
return "My pet " + name;
}
}
class Dog extends Pet{
protected int weight;
public Dog(String s){
super(s);
}
}
class PetTest{
public static void main(String[] args){
Pet myPet = new Pet("George");
Dog myDog = new Dog("Spot");
System.out.println(myPet.toString() + "\n" + "Speak: " +
myPet.speak() +"\n" + myPet.move() + " " +
myPet.getName() + "\n");
System.out.println(myDog.toString() + "\n" + "Speak: " +
myDog.speak() +"\n" + myDog.move() + " "
+myDog.getName() + "\n");
}
}
1)修改Dog类的构造函数,使之可以初始化Dog类中的weight值。
2)}在Dog类中添加方法getWeight以获得其weight值。
3)修改类Pet,使用新的构造函数创建一个名为“snoopy”,重为10的
Dog类的对象,并利用其方法输出包括重量在内的各项值
4)要使Dog类对象的speak()方法返回值为“Woof Woof”,应如何做?修
改(1)中程序,并验证你的做法。
2.试改写实验十五(1)中的Pet类,其中move与speak方法定义为抽象方法。
定义一个Pet类的子类Cat类。
在Cat类中实现move和Speak方法。
其
中move方法返回值为“run”,speak方法返回值为“meow meow”。
编
写含有main方法的公共类PetTest,在其方法体中创建一个名为myCat
的Cat的实例。
并依照十五(1)PetTest类main方法中的相应格式输出结
果。
4、按照要求完成程序:
1)第一个类是图形类(Shape),含有一个成员变量color(字符串类型),一
个没有参数的构造方法,以及一个有一个字符串类型参数的构造方法来
初始化颜色变量,还有一个返回颜色变量值的成员方法show,以及一个
抽象方法getArea获取面积,返回值为double类型;
2)第二个类是圆形类(Circle)继承自图形类,含有一个成员变量半径r,有
一个有两个参数的构造方法,来初始化颜色和半径,一个方法getArea,
返回值为double,获取圆的面积值。
3)第三个类是矩形类(Rectangle)继承自图形,含有两个double类型的成员
变量长a和宽b,有一个有三个参数的构造方法,来初始化颜色、长和宽,一个方法getArea,返回值为double,获取矩形的面积值。
4)第四个类是测试类(TestShape),分别定义圆形类和矩形类的实例对象,
并用show方法,getArea方法来测试自己的定义
评语:
日期:年月日
实验16:面向对象基础编程(七)接口
实验目的:
1.掌握接口的定义和实现接口的方法
实验要求和过程
1.如果将实验十五(1)的Pet类定义为接口,即所有相应方法全部为抽象方
法,则Cat类该如何改动?试改写相关代码,并验证你的结果。
2.根据要求完成程序:
1)定义名称为PCI()的接口,包括启动的方法start和关闭的方法stop;
2)定义名称为NetworkCard 的类表示网卡,实现PCI接口,并且其在
实现start方法时输出“sending data……”,在实现stop方法时输出
“network stop.”
3)定义名称为SoundCard 的类表示声卡,实现PCI接口;并且其在实
现start方法时输出“dudu……”,在实现stop方法时输出“sound stop.”
4)定义名称为MainBoard 的类表示主板,包含方法public void
usePCICard(PCI p),在方法体内通过p来启动和关闭组件;
5)定义一个包含main方法的Test类,在main方法内创建一个
MainBoard 对象用mb来引用,创建一个NetworkCard对象用nc来
引用,创建一个SoundCard对象用sc来引用,分别通过mb来使用
usePCICard(PCI p)启动声卡和网卡。
评语:
教师签字:日期:年月日。