实验报告(四)继承和多态 (完整代码)

合集下载

Java实验报告继承、多态、接口和异常处理

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. 在实验过程中,重点是要区分好实例和类,灵活掌握类的调⽤。

实验四 、类的继承与多态

实验四 、类的继承与多态

实验四类的继承与多态一、实验目的1.理解类的继承概念和类的继承规则。

根据实际需要正确的运用类的继承。

2.理解类的多态概念,掌握子类对父类方法的重新定义,理解方法的匹配调用原则。

二、实验内容1.模拟编写程序,理解类的继承、多态、继承和多态规则。

2. 独立编程,实现类的继承和多态。

三、实验过程(一)继承(1)模拟编写程序,理解类的继承,继承规则。

请编码实现动物世界的继承关系:(1)动物(Animal)具有行为:吃(eat)、睡觉(sleep)。

(2)动物包括:兔子(Rabbit),老虎(Tiger)。

(3)这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。

请通过继承实现以上需求,并编写测试类AnimalTest进行测试。

1. 定义Animal类,代码如下:public class Animal {public void sleep(){System.out.println("我正睡觉呢!");}public void eat(){}}2. 定义Tiger类,代码如下:public class Tiger extends Animal {public void eat(){System.out.println("我喜欢吃肉!");}}3. 定义Rabbit类,代码如下:public class Rabbit extends Animal {public void eat(){System.out.println("我喜欢吃草和青菜!"); }}4、定义AnimalTest类,代码如下:public class AnimalTest {public static void main(String[] args) {Tiger tiger = new Tiger();tiger.sleep();tiger.eat();System.out.println();Rabbit rabbit = new Rabbit();rabbit.sleep();rabbit.eat();}}5. 编译运行程序,查看运行结果。

.NET继承与多态实验报告

.NET继承与多态实验报告

实验报告课程名称.NET程序设计实验项目.NET继承与多态专业计科班级 1 姓名学号指导教师实验成绩年月日一、实验目的(介绍本次实验的预期目标,完成的功能)1.理解类的继承性与多态性,掌握其应用方法。

2.理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。

二、实验过程(介绍实验中涉及的关键过程,如核心算法、数据结构等)1.设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生等派生类,要求具有不同的特性和行为,能通过静态成员自动记录不同学生的人数。

学生类要求的功能:成员变量:学号、姓名、总成绩、性别等;方法:构造函数、析构函数、显示学生的全部信息。

派生类要求的功能:成员变量:小学生类:语文成绩、数学成绩、英语成绩中学生类:化学成绩、物理成绩大学生类:高数成绩、计算机成绩静态变量:人数方法:构造函数、析构函数、显示学生全部信息。

选择“文件”→“新建”→“项目”菜单命令,弹出“新建项目”对话框,在“模板”列表框中选择“控制台应用程序”。

首先创建一个学生类,属性有学号、姓名、总成绩、性别,构造函数里赋值。

代码如图1-1所示:图1-1 学生类源代码然后分别创建小学生类、中学生类和大学生类。

代码如图1-2、1-3、1-4所示:图1-2 小学生类源代码图1-3 中学生类源代码最后创建班级类并实现学生信息管理。

如图1-5、1-6所示:图1-5 班级类图1-6 程序源代码三、实验结果分析(分析实验的最终结果)1.选择“调试”→“启动调试”,或“调试”→“开始执行(不调试)”菜单命令,将程序显示在命令提示符窗口中。

如图2-1所示:图2-1 程序主界面按数字1键,输入班级的学生人数,然后按回车键。

依次输入学生学号、姓名、性别、总成绩。

如图2-2所示:图2-2 输入学生信息按数字2键,可以输入学号来查询学生信息。

如图2-3所示:图2-3 查询学生信息按数字3键可以统计出全班的平均分。

Java继承与多态实验报告

Java继承与多态实验报告

西安邮电大学(计算机学院)课内实验报告实验名称:继承与多态专业名称:计算机科学与技术班级:计科1405班学生姓名:高宏伟学号:04141152指导教师:刘霞林实验日期:2016.10.13一、实验目的通过编程和上机实验理解Java 语言的继承和多态特性,掌握变量的隐藏、方法的覆盖、重载,掌握抽象类和接口的使用。

二、实验要求1.编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。

2.编写体现类的多态性(成员方法重载)的程序。

3.编写体现类的多态性(构造方法重载)的程序。

4.编写使用接口的程序。

三、实验内容(一)类的继承1.创建公共类Student.(1)编写程序文件Student.java,源代码如下:public class Student{protected String name; //具有保护修饰符的成员变量protected int number;void setData(String m,int h) //设置数据的方法{name =m;number= h;}public void print() //输出数据的方法{System.out.println(name+", "+number);}}(2)编译Student.java,产生类文件Student.class。

2.创建继承的类Undergraduate(1)程序功能:通过Student 类产生子类undergraduate,其不仅具有父类的成员变量name(姓名)、number(学号),还定义了新成员变量academy(学院)、department (系)。

在程序中调用父类的print 方法。

(2)编写Undergraduate 程序:class Undergraduate extends Student{【代码1】//定义成员变量academy【代码2】//定义成员变量departmentpublic static void main(String args[]){【代码3】//创建一个学生对象s【代码4】//用父类的setData方法初始化对象s【代码5】//对象s调用print方法【代码6】//创建一个大学生对象u【代码7】//调用父类的成员方法setData初始化对象u【代码8】//设置对象u的成员变量academy【代码9】//设置对象u的成员变量departmentSystem.out.print(+", "+u.number+", "+u.academy+", "+u.department);}}(3)编译并运行程序注意:公共类Student 与undergraduate 类要在同一文件夹(路径)内。

实验4 继承性和多态

实验4 继承性和多态

实验四继承性和多态一、实验目的:熟悉JA V A中的继承性和多态性。

掌握子类的定义及用法,继承机制中的隐藏与覆盖。

子类的构造方法的用法,对象的上转型对象,抽象类与抽象方法等。

二、实验要求:1.根据下面的要求,编写Java应用程序实现:编写程序模拟中国人、美国人是人、北京人是中国人。

除主类外,程序中还有4个类:People、ChinaPeople、AmericanPeople和BeijingPeople类。

要求如下:●People类有权限是protected的double型成员变量height和weight,以及public voidspeakHello()、public void averageHeight()和public void averageWeight()方法。

●ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。

要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。

●AmericanPeople类是People的子类,新增public void americanBoxing()方法。

要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。

●BeijingPeople类是ChinaPeople的子类,新增public void beijingOpera()方法。

要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。

实验4 继承、多态、抽象类、接口

实验4 继承、多态、抽象类、接口

实验4 继承、多态、抽象类、接口注意:有些程序由于Word的关系,复制后,tab缩位可能会变成其它符号。

需要你去调整一下,删除缩位,重新Tab一、实验目的 (1)二、实验要求 (1)三、实验内容 (2)1. 类的继承与覆盖练习 (2)1.0 父类的哪些成员可以被继承? (2)1.1 父类Student(学生)与子类HiStudent(大学生) (2)1.2 实例方法为什么需要覆盖 (4)1.3 验证成员方法的覆盖方式 (5)1.4 this、super和super()的使用 (6)1.5 变量、静态方法的隐藏。

(9)1.6 隐藏与覆盖的综合性实例 (10)2. 类的多态性练习 (11)2.1 普通方法的重载(实验3,本实验略) (11)2.2 构造方法的重载(实验3,本实验略) (11)2.3 运行时多态与动态绑定 (11)3. 抽象类 (13)4. 接口 (15)一、实验目的通过编程和上机实验理解Java语言的面向对象特性,了解类的继承性和多态性的作用,掌握它们的实现方法,了解数据域和静态方法的隐藏,了解抽象类和接口的作用。

二、实验要求1、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序;2、编写体现类的多态性的程序;3、编写体现抽象类和接口功能的程序。

三、实验内容1. 类的继承与覆盖练习例如,圆是一种形状。

圆类Circle是形状类Shape的子类。

父类也叫基类、超类,子类也叫次类、扩展类、派生类。

子类可从父类中产生,保留父类的成员变量和方法,并可根据需要对它们加以修改。

新类还可添加新的变量和方法。

这种现象就称为类的继承。

当建立一个父类时,不必写出全部成员变量和成员方法。

只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。

Java 提供了一个庞大的类库让开发人员继承和使用。

设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。

你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,和父类一样,那样没什么用。

Java实验指导4继承与多态

Java实验指导4继承与多态

-------------精选文档 -----------------《Java 程序设计》实验指导实验四继承与多态一、实验目的:1.掌握类的继承方法。

2.掌握变量的继承和覆盖。

3.掌握方法的继承、重载和覆盖。

4.了解接口的实现方法。

二、实验原理新类可从现有的类中产生,并保留现有类的成员变量和方法,并可根据需要对它们加以修改。

新类还可添加新的变量和方法。

这种现象就称为类的继承。

当建立一个新类时,不必写出全部成员变量和成员方法。

只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。

被继承的类称为父类或超类(superclass),这个新类称为子类。

Java 提供了一个庞大的类库让开发人员继承和使用。

设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。

你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。

所以,通常要对子类进行扩展,即添加新的属性和方法。

这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。

继承的意义就在于此。

语法格式:类访问限定符子类名extends父类名{⋯⋯}三、实验内容及要求:1.定义一个接口( ShapeArea ),其中包含返回面积的方法(getArea )。

定义一个矩形类( Rectangle),派生出一个正方形类(Square ),再定义一个圆类(Circle ),三者都要求实现接口ShapeArea,自行扩充成员变量和方法。

在主方法中建一数组,数组中放入一些上述类型的对象,并计算它们的面积之和。

2.运行下面的程序,理解成员变量的继承与隐藏,方法的覆盖与重载。

class A{int sum,num1,num2;public A(){num1=10;num2=20;sum=0;}void sum1(){sum=num1+num2;System.out.println("sum="+num1+"+"+num2+"="+sum);}void sum2(int n){num1=n;sum=num1+num2;System.out.println("sum="+num1+"+"+num2+"="+sum);}}class B extends A{int num2;public B(){num2=200;}void sum2(){sum=num1+num2;System.out.println("sum="+num1+"+"+num2+"="+sum);}void sum2(int n){num1=n;sum=num1+num2;System.out.println("sum="+num1+"+"+num2+"="+sum);}void sum3(int n){super.sum2(n);System.out.println("sum="+num1+"+"+num2+"="+sum);}}public class test{public static void main (String arg[]){B m=new B();m.sum1();m.sum2();m.sum2(50);m.sum3(50);}}。

实验4_继承与多态

实验4_继承与多态

实验4 继承与多态性实验目的:1.掌握子类的定义和使用方法2.掌握用抽象类实现多态性实验内容:一、编辑、编译和运行程序:1.带参构造方法(RectExample.java)class Rect{ private int length,width;Rect(int l,int w){ length=l; width=w; }int GetArea(){ return length*width; }}class Rectangular extends Rect{ private int height;Rectangular(int l,int w, int h){ super(l,w); height=h;}int GetV(){ return GetArea()*height;}}public class RectExample{ public static void main(String args[]){ Rectangular r=new Rectangular(3,4,5);System.out.println("长方体体积是:"+r.GetV());}}2.用抽象类实现多态性(ShapeTestWithPolymorphism.java)import java.util.Scanner;abstract class Shape//抽象类{ double area;abstract void computeArea();//抽象方法}class Rectangle extends Shape{ private double width, height;Rectangle(double _width, double _height){ width = _width; height = _height; }void computeArea(){ area = width * height; }//抽象方法在子类中的具体实现}class Circle extends Shape{ private double radius;Circle(double _radius){ radius = _radius; }void computeArea(){ area = Math.PI * radius * radius; }}class Square extends Rectangle{ Square(double _side){ super(_side, _side); }}public class ShapeTestWithPolymorphism_1{ public static void main(String args[]){ Scanner reader=new Scanner(System.in);System.out.println("-------------------------------");System.out.println("计算矩形面积,请输入1\n计算园面积,请输入2\n计算正方形面积,请输入3");System.out.println("-------------------------------");System.out.print("请输入选择:");int k=reader.nextInt();String str="";Shape p=null;switch(k){ case 1:System.out.print("请输入矩形宽和高:");int w=reader.nextInt();int h=reader.nextInt();p=new Rectangle(w,h);str="矩形面积是:";break;case 2:System.out.print("请输入园的半径:");int r=reader.nextInt();p=new Circle(r);str="园面积是:";break;case 3:System.out.print("请输入正方形的边长:");int s=reader.nextInt();p=new Square(s);str="正方形面积是:";}puteArea();System.out.println(str+p.area);}}二、用面向对象方法编程。

实验类-继承-多态代码

实验类-继承-多态代码

对象和类#include <iostream.h>#include <math.h>// 类的接口定义class CRectangle{private:double x;double y;double a;double b;public:CRectangle() {cout<<"\nCRectangle Constructed."<<endl;}CRectangle(double dx, double dy, double da, double db) { x=dx; y=dy; a=da; b=db;cout<<"\nCRectangle Constructed."<<endl;}~CRectangle() {cout<<"CRectangle Destructed."<<endl;}void putxy(double dx, double dy){ x=dx; y=dy;}void putab(double da, double db){ a=da; b=db;}double getx(){ return x;}double gety(){ return y;}double geta(){ return a;}double getb(){ return b;}double getperimeter(){ return 2*(a+b);}double getarea(){ return a*b;}//友元的位置在public或private没有任何区别friend double dist(CRectangle& rt);};// 类的内部实现double dist(CRectangle& rt) {double tx, ty;tx=rt.x+rt.a/2.0;ty=rt.y+rt.b/2.0;return sqrt(tx*tx+ty*ty);}// 演示主程序void main(){CRectangle rect;rect.putxy(100.0, 50.0);rect.putab(1200.0, 700.0);cout<<"Down_Left corner point is: ("<<rect.getx() <<", " <<rect.gety() <<")" <<endl;cout<<"a= " <<rect.geta() <<", b= " <<rect.getb() <<endl; cout<<"Perimeter of this rectangle is: "<<rect.getperimeter() <<endl;cout<<"Area of this rectangle is: "<<rect.getarea() <<endl;cout<<"The Distance is :"<<dist(rect) <<endl;CRectangle recta(200,150,2000,800);cout<<"Down_Left corner point is: ("<<recta.getx() <<", " <<recta.gety() <<")" <<endl;cout<<"a= " <<recta.geta() <<", b= " <<recta.getb() <<endl; cout<<"Perimeter of this rectangle is: "<<recta.getperimeter() <<endl;cout<<"Area of this rectangle is: "<<recta.getarea() <<endl;cout<<"The Distance is :" << dist(recta) <<endl;return;}继承#include <iostream.h>#include <string.h>// 类的外部接口class CStudent{private:char name[30];int code;double score;public:CStudent(char* nm){ strcpy(name, nm);} CStudent(){}void putname(char* nm){ strcpy(name, nm);} void putcode(int d){ code=d;}void putscore(double sc){ score=sc;}void getname(char* nm){ strcpy(nm, name);} double getcode(){ return code;}double getscore(){ return score;}void addscore(double sc){ score+=sc;}};// 类的内部实现class CGraduateStudent: public CStudent {private:char advisor[30];int paper;public:void putadvisor(char* nm){ strcpy(advisor, nm);} void getadvisor(char* nm){ strcpy(nm, advisor);} void putpaper(int d){ paper=d;}void addpaper(int d){ paper+=d;}int getpaper(){ return paper;}};// 演示主程序void main(){CGraduateStudent sdt;sdt.putname("Hanson");sdt.putadvisor("MichaelPhong");sdt.putpaper(8);sdt.addpaper(2);char csname[30];sdt.getname(csname);char caname[30];sdt.getadvisor(caname);cout<<"Student "<<csname<<endl;cout<<"(Advisor: "<<caname<<")"<<endl;cout << "Total paper is " << sdt.getpaper() <<endl; }多态#include <iostream.h>#include <string.h>// 类的外部接口class CStudent{private:char name[30];int code;double score;public:CStudent(char* nm){ strcpy(name, nm);} CStudent(){}void putname(char* nm){ strcpy(name, nm);} void putcode(int d){ code=d;}void putscore(double sc){ score=sc;}void getname(char* nm){ strcpy(nm, name);} double getcode(){ return code;}double getscore(){ return score;}void addscore(double sc){ score+=sc;}};// 类的内部实现class CGraduateStudent: public CStudent {private:char advisor[30];int paper;public:void putadvisor(char* nm){ strcpy(advisor, nm);} void getadvisor(char* nm){ strcpy(nm, advisor);} void putpaper(int d){ paper=d;}void addpaper(int d){ paper+=d;}int getpaper(){ return paper;}};// 演示主程序void main(){CGraduateStudent sdt;sdt.putname("Hanson");sdt.putadvisor("MichaelPhong");sdt.putpaper(8);sdt.addpaper(2);char csname[30];sdt.getname(csname);char caname[30];sdt.getadvisor(caname);cout<<"Student "<<csname<<endl;cout<<"(Advisor: "<<caname<<")"<<endl;cout << "Total paper is " << sdt.getpaper() <<endl; }。

Java继承与多态实验报告.doc

Java继承与多态实验报告.doc

Java继承与多态实验报告.doc
Java的继承与多态实验报告
本报告致力于分析Java继承与多态的概念、原理和作用,以及相关实验过程及其结果。

继承,又称为分类,是Java面向对象程序设计语言中定义类之间关系的重要技术。

它使一个类可以使用另一个基类中定义的方法和属性,在基类中已经定义了一些功能,子
类可以对基类功能进行拓展与定制。

《Java技术手册》得出结论,继承可以有效提高软件的复用性、可维护性和可重用性,使大型的、复杂的程序有条理层次。

多态是Java中一种特殊的程序结构,允许不同类的对象对相同的消息作出不同的响应,由程序的消息而不是对象的类型来决定对象的行为。

它是Java多态性的基础,使程
序能够在不同对象上进行操作,统一实现。

从实验中,可以明显看出Java继承与多态之间的联系:多态必须依赖于继承,当子
类被创建时,它继承了母类的方法以及特性,这样,它才能以逐渐上升的方式处理所有消息,而多态给了子类独特-->性的功能。

同时,多态也方便了代码重用,因为子类会继承
母类的方法和属性。

此外,结果表明,多态的优点使程序可以提高可重用性,它也减少了代码的重复编写,同时允许特定类之外的类可以得到适用。

它促进了软件不断更新,因为多态给开发人员提
供了以对象层次组织代码的方法。

本练习涉及到Java继承与多态概念的整体概述和实现细节,为完全理解多态的概念
打下了坚实的基础。

它提供了一个理解和使用这些概念的有用方式和指导。

Java实验报告(四)继承和多态

Java实验报告(四)继承和多态
}
int index=BinarySearch(shape1,shape3);
System.out.println("\n【二分法查找】:");
if(index==0){
System.out.println("【对象】"+shape3.toString()+"不存在【圆形】数组中。");
}
else{
Shape[] shape2={new Rectangle(1.0,4.0),new Rectangle(7.0,3.0),new Rectangle(3.0,5.0),
new Rectangle(9.0,5.0),new Rectangle(5.0,4.0)};
Shape shape3=new Circle(2.0);
}
public double getRadius(){
return radius;
}
public void setRadius(double val){
this.radius=val;
}
public double getArea(){
return Math.PI*radius*radius;
}
public double getPerimeter(){
}
else{
return -1;
}
}
public int compareTo(Object o) {
if(this.getArea()>((Circle)o).getArea())
return 1;
else if(this.getArea()==((Circle)o).getArea())

继承与多态实验报告

继承与多态实验报告

实验五继承与多态理解继承与多态的概念,掌握三种访问控制的区别,掌握抽象类、接口与包的应用。

二、实验内容:1. 参考教材P112,示例程序C5_17,掌握抽象类的应用。

2. 参考教材P116,示例程序C5_19,掌握接口的使用方法。

3. 参考教材P121,示例程序C5_20,掌握包的使用方法。

三、实验要求:1.完成示例程序的验证。

2.写出实验报告。

四、实验步骤与结果:(由学生按照实验内容完成)1. 示例程序c5_17import java.awt.*;import java.applet. *;abstract class Shapes //定义一个抽象类Shapes{public int x,y; //x、y为画图的坐标public int width,height;public Shapes(int x,int y,int width,int height){ this.x=x;this.y=y;this.width=width;this.height=height;}abstract double getArea( ); //求图形面积的抽象方法abstract double getPerimeter( ); //求图形周长的抽象方法}class Square extends Shapes //由抽象类Shapes派生的子类——矩形类{public double getArea( ){return(width*height);}public double getPerimeter( ){return(2*width+2*height);}public Square(int x,int y,int width,int height){ super(x,y,width,height); }}class Triangle extends Shapes //由抽象类Shapes派生的子类——三角形类{public double c; //斜边public double getArea( ){return(0.5*width*height);}public double getPerimeter( ){return(width+height+c);}public Triangle(int x,int y,int base,int height){super(x,y,base,height);c=Math.sqrt(width*width+height*height);}}class Circle extends Shapes //由抽象类Shapes派生的子类——圆类{public double r; //半径public double getArea( ){return(r*r*Math.PI);}public double getPerimeter( ){return(2*Math.PI*r);}public Circle(int x,int y,int width,int height){super(x,y,width,height);r=(double)width/2.0;}}public class c5_18 extends Applet{/****/private static final long serialVersionUID = -L;Square Box=new Square(5,15,25,25);Triangle tri=new Triangle(5,50,8,4);Circle Oval=new Circle(5,90,25,25);public void paint(Graphics g){//画正方形g.drawRect(Box.x,Box.y,Box.width,Box.height);g.drawString("Box Area:"+Box.getArea( ),50,35);g.drawString("Box Perimeter:"+Box.getPerimeter( ),50,55);g.drawString("tri Area:"+tri.getArea( ),50,75);g.drawString("tri Perimeter:"+tri.getPerimeter( ),50,95);g.drawOval(Oval.x,Oval.y,Oval.width,Oval.height); //画圆g.drawString("oval Area:"+Oval.getArea( ),50,115);}}2. 示例程序C5_19import java.awt.*;import java.applet.*;interface Shapes{ abstract double getArea( );abstract double getPerimeter( );}class Coordinates{int x,y;public Coordinates(int x,int y){this.x=x;this.y=y;}}//Square Coordinates Shapesclass Square extends Coordinates implements Shapes{public int width,height;public double getArea( ){return(width*height);}public double getPerimeter( ){return(2*width+2*height);} public Square(int x,int y,int width,int height){super(x,y);this.width=width;this.height=height;}}class Triangle extends Coordinates implements Shapes{public int width,height;public double c;public double getArea( ){return(0.5*width*height);}public double getPerimeter( ){return(width+height+c);}public Triangle(int x,int y,int base,int height){super(x,y);width=base;this.height=height;c=Math.sqrt(width*width+height*height);}}class Circle extends Coordinates implements Shapes{public int width,height;public double r;public double getArea( ){return(r*r*Math.PI);}public double getPerimeter( ){return(2*Math.PI*r);}public Circle(int x,int y,int width,int height){super(x,y);this.width=width;this.height=height;r=(double)width/2.0;}}public class c5_20 extends Applet{/****/private static final long serialVersionUID = L;Square Box=new Square(5,15,25,25);Triangle tri=new Triangle(5,50,8,4);Circle Oval=new Circle(5,90,25,25);public void paint(Graphics g){g.drawRect(Box.x,Box.y,Box.width,Box.height);g.drawString("Box Area:"+Box.getArea( ),50,35);g.drawString("Box Perimeter:"+Box.getPerimeter( ),50,55);g.drawString("tri Area:"+tri.getArea( ),50,75);g.drawString("tri Perimeter:"+tri.getPerimeter( ),50,95);g.drawOval(Oval.x,Oval.y,Oval.width,Oval.height);g.drawString("oval Area:"+Oval.getArea( ),50,115);}}五.总结。

(4) 实验四 继承与多态

(4) 实验四 继承与多态
(1)类的继承
Java语言使用extends关键字在两个类之间建立这种类似与父子血缘关系的“继承”关系:在定义类时,使用extends来指明它的父类。
值得注意的是,Java中的继承只能是单继承即单根继承。
语法格式:
class SubClass extens SuperClass{//只能有一个父类
……
System.out.pri!~”);
}
public void fB(){
System.out.println(“method fB() from class B!”);
fA();
System.out.println(“x is”+ x);
}
}
public class Test{
2)什么时候需要使用super语句来显式调用父类构造?
(二)多态
多态是面向对象编程的重要技巧,它也是面向对象的重要特征之一。多态的本意是“同一个操作,不同的行为”,也就是使用同一个方法名,运行的实际是不同的方法。在Java语言中,多态主要通过方法的重载(Overloading)和重写(Overriding)实现。
public static void main(String[] args){
B b;
System.out.println(“====类已加载完毕=====”);
b = new B(10);
b.fB();
}
}
问题:
1)请结合运行结果分析Java中创建对象过程。(分析类的不同区域的运行前后次序,提示:类加载时或创建对象时,父类静态成员、实例成员、构造方法和子类静态成员、实例成员、构造方法的执行先后次序)
当程序运行并通过向上转型后的对象来调用方法时,Java会根据实际的对象类型来调用实际类型所对应的方法。这种运行时的多态,我们也成为动态绑定。

实验四 类的继承性与多态性

实验四  类的继承性与多态性

《Java语言程序设计》实验报告实验内容(2)设计两个Graphics类的子类:Rectangle类(矩形)和Circle类(圆),编译并运行使程序运行结果如下所示:矩形的面积为:100.0圆的面积为:314.1592653589793代码:package exp4;//矩形类public class Rectangle extends Graphics{protected double a;protected double b;public Rectangle(double a,double b){super("矩形");this.a=a;this.b=b;}public double area(){return this.a*this.b;}}package exp4;//圆形类public class Circle extends Graphics {protected double r;public Circle(double r){super("圆形");this.r=r;}public double area(){return Math.PI*this.r*this.r;}}package exp4;//调用上述类public class Graphics_ex {public static void main(String args[]){Graphics g = new Rectangle(4,25);g.print();g = new Circle(10);g.print();}}运行结果:实验分析本次试验运行情况良好。

通过本次试验我掌握类的继承原则、重载和覆盖等多态概念设计的正确使用方法、声明抽象类的方法,还理解了抽象类的作用。

csharp继承和多态实验报告

csharp继承和多态实验报告

实验报告三继承和多态一、实验目的本实验的目的是熟练学习和掌握继承和多态并能灵活运用。

二、实验内容及结果(一)、题目的要求:设计基本几何图形的继承层次结构,并编程实现其中的主要类型,要求通过抽象方法、虚拟方法和重载方法来计算各种图形的面积和周长。

1、程序编程思路:首先定义一个shape类,然后通过抽象方法、虚拟方法和重载方法来计算各种图形(如圆和正方形)的面积和周长2、程序源码:static void Main(string[] args){Console.WriteLine("请输入圆的半径:");double r = double.Parse(Console.ReadLine());shape v1 = new circle(r);Console.WriteLine("该圆的周长为{0},面积为{1}",v1.length(),v1.area());Console.WriteLine("请输入正方形的边长:");double edge = double.Parse(Console.ReadLine());v1 = new square(edge);Console.WriteLine("该正方形的周长为{0},面积为{1}", v1.length(),v1.area());Console.ReadLine();}}public abstract class shape{public abstract double area();public abstract double length();}public class circle:shape{private double r;public double R{get { return r; }set { r = value; }}public override double area(){return Math.PI * Math.Pow(r, 2);}public override double length(){return Math.PI * 2 * r;}public circle(double r){this.r = r;}}public abstract class fouredge : shape{public override abstract double area(); public override abstract double length(); }public class square : fouredge{private double edge;public double Edge{get { return edge; }set { edge = value; }}public override double area(){return Math.Pow(edge, 2);}public override double length(){return 4*edge;}public square(double edge){this.edge = edge;}3、实验结果:二、实验效果对这个题目,要熟记抽象方法、虚拟方法和重载方法,掌握本章继承和多态的思想。

实验四类的继承和多态

实验四类的继承和多态

import java.util.Scanner; public class Main {
public static void main(String[] args) { Scanner myScan = new Scanner(System.in); String strColor = myScan.next(); String strName = myScan.next(); Shape shape1 = new Circle(strColor,strName); shape1.printType(); shape1.printName();
实验四பைடு நூலகம்类的继承和多态
苏明明 16 电信二班 160705226
一、实验目的 1、掌握类的继承以及访问控制。 2、掌握类的多态性。 3、掌握内部类和匿名类的定义和使用。 二、实验过程 1、知识点归纳: 编程实践类的继承以及访问控制; 编程实践类的多态性; 编程实践内部类和匿名类的定义和使用。 2、实验题目 请构建两个类: class Shape {.....}和 class Circle extends Shape {......} 再写一个测试,表现类继承时构造器的调用顺序和初始化顺序。 输入要求:子类 Circle 的颜色和名字。 输出要求:按照类继承时构造器的调用顺序输出相应信息。 输入:red c1 输出:shape constructor red circle be constructed. this is circle my name is c1 输入:blue c2 输出:shape constructor blue circle be constructed. this is circle my name is c2 3、需求分析 本题需要写两个类,一个父类 Shape 和一个子类 Circle,能够在输入子类的 颜色和名字时,输出相应的信息。 4、程序结构 一个父类 Shape 和一个子类 Circle 5、编写代码

继承与多态实验报告

继承与多态实验报告

继承与多态实验报告继承与多态实验报告在面向对象编程中,继承和多态是两个重要的概念。

通过继承,我们可以创建新的类,并从现有的类中继承属性和方法。

而多态则允许我们使用父类的引用来指向子类的对象,实现同一操作具有不同的行为。

本实验旨在通过实际的编程实践,加深对继承和多态的理解。

实验一:继承在这个实验中,我们创建了一个动物类(Animal),并从它派生出了两个子类:狗类(Dog)和猫类(Cat)。

动物类具有一些共同的属性和方法,如名字(name)和发出声音(makeSound)。

子类继承了父类的属性和方法,并可以添加自己的特定属性和方法。

在编写代码时,我们首先定义了动物类,并在其中实现了共同的属性和方法。

然后,我们创建了狗类和猫类,并分别在这两个类中添加了自己的特定属性和方法。

通过继承,我们可以在子类中直接使用父类的方法,并且可以根据需要进行重写。

实验二:多态在这个实验中,我们使用多态的概念来实现一个动物园的场景。

我们定义了一个动物园类(Zoo),并在其中创建了一个动物数组。

这个数组可以存储不同类型的动物对象,包括狗、猫等。

通过多态,我们可以使用动物类的引用来指向不同类型的动物对象。

例如,我们可以使用动物类的引用来指向狗对象,并调用狗类特有的方法。

这样,我们可以统一处理不同类型的动物对象,而不需要为每种类型编写特定的处理代码。

实验三:继承与多态的结合应用在这个实验中,我们进一步探索了继承和多态的结合应用。

我们定义了一个图形类(Shape),并从它派生出了三个子类:圆形类(Circle)、矩形类(Rectangle)和三角形类(Triangle)。

每个子类都实现了自己的特定属性和方法。

通过继承和多态,我们可以在图形类中定义一些通用的方法,如计算面积和周长。

然后,我们可以使用图形类的引用来指向不同类型的图形对象,并调用相应的方法。

这样,我们可以轻松地对不同类型的图形进行统一的处理。

结论:通过本次实验,我们进一步理解了继承和多态的概念,并学会了如何在编程中应用它们。

实验四 类的继承与多态实验

实验四 类的继承与多态实验

实验四类的继承与多态实验实验四类的继承与多态实验实验四类的继承与多态实验【实验目的】1.理解软件重用性的一种形式――继承。

2.能够通过继承已有的类创建新类。

3.理解基类和派生类的概念。

4.能在派生类中采用构造函数和析构函数5.自学虚基类在化解二义性问题中的促进作用。

6.熟悉多态分类,理解静态联编和动态联编概念。

7.掌握运算符重载方法。

8.认知虚函数、tcsh函数和抽象类概念。

9.掌控用抽象类和多态性同时实现编程的方法。

【实验内容】1.分析程序,写出下列程序的运行结果:(1)#includeclassbase{private:intbase_priv_dat;protected:intbase_prot_dat;public:voidbase_show();};classderived:publicbase{private:intderived_priv_dat;public:voidderived_show();};voidbase::base_show(){base_priv_dat=1;//基类函数可以压低私有和维护型基类数据base_prot_dat=2;cout<voidderived::derived_show(){derived_priv_dat=3;base_prot_dat=4;//派生函数可以处理保护型基类数据,但不能处理私有基类数据cout<}intmain(){derivedd_obj;d_obj.base_show();//可用派生对象调用基类函数d_obj.derived_show();return(0);}(2)#include#includeclassperson{public:person(constchar*s)//拎参数的构造函数{name=newchar[strlen(s)+1];strcpy(name,s);}~person(){delete[]name;}//析二重函数搞清扫工作char*getname(){returnname;}protected:char*name;};classstudent:publicperson{char*major;public:student(constchar*s,constchar*m):p erson(s)//派生类构造函数{major=newchar[strlen(m)+1];strcpy(major,m);}~student(){delete[]major;}//派生类析构函数char*getmajor(){returnmajor;}};intmain(){studentstu(\cout<2.编译运行下列程序,分析出现编译错误的原因,并给出解决办法。

C++实验报告 继承与多态

C++实验报告 继承与多态
程序运行结果如图:
四、实验结果分析及总结(对实验的结果是否达到预得派生类中不曾定义过的成员,提高了编程效率; 2)继承与派生分为共有、私有、保护三种继承方式,其中共有使用最广泛,
它使得派生类与基类中的成员具有相同的属性。 3)多重继承存在有二义性,用虚基类能有效解决这一问题。 4)除了继承还有组合关系,及在一个类中定义另一个类的对象,此时初始化时要用对象名 来调用初始化函数。调用对应的函数时,要用对象名调用它的函数。 5)函数重载就是一名多用,可以使代码更容易被理解; 6)对于插入运算符与流提取运算符的重载格式: istream &operator >>(istream &, 自定义类 &); ostream &operator >>(ostream &,自定义类 &); 6)用一个指针调用派生类的函数时,将指针定义为指向基类的指针,基类的函数要定义为 虚函数,将各个派生类的地址赋值给指针,通过指针调用函数,实现多态性。
void Boss::print() { cout << id << '\t' << name << '\t' << age << '\t' << sex << '\t'<< "Boss" << "\t\t" << '$' << getPay() << " per " << salarySystem<< endl;
Boss(string name, int age, string id, string sex, string salarySystem = "year") : Person(name, age, id, sex, salarySystem) {}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
str1 += String.valueOf(i + 1) + circle[i] + "\n";
}
System.out.println("您所创建的圆按半径由小到大排序如下:\n" + str1);
Shape.sort(rectangle);
String str2 = "";
for (int i = 0; i < rectangle.length; i++) {
输入:
预期输出:
实际输出:
分析
六、实验结果
用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。
输入:
输出结果:
结果分析:
七、总结
对上机实验结果进行分析、上机的心得体会及改进意见。
附录:
如果原来的算法中发现了错误,在附录中附上改正后的算法实现。
setLength(length);
setWidth(width);
}
public double getLength() {
return length;
}
public void setLength(double val) {
this.length = (val <= 0 ? 1 : val);
}
public double getWidth() {
} else {
System.out.println("未找到符合的圆!");
}
System.out.println("要查找的矩形的长和宽?:");
Scanner f6 = new Scanner(System.in);
Rectangle r1 = new Rectangle(f6.nextDouble(), f6.nextDouble());
sort(list);
while (low <= high) {
mid = (low + high) / 2;
if (((Comparable) target).compareTo(list[mid]) < 0) {
high = mid - 1;
} else if (((Comparable) target).compareTo(list[mid]) > 0) {
list[currentMaxIndex] = list[i];
list[i] = currentMax;
}
}
}
public static int search(Shape[] list, Shape target) {
int mid, low = 0, high = list.length - 1;
Scanner b2 = new Scanner(System.in);
int b = b2.nextInt();
Shape[] rectangle = new Shape[b];
System.out.println("总共创建了" + b + "个矩形\n请依次输入各个矩形的长和宽:");
Scanner c3 = new Scanner(System.in);
double e = e5.nextDouble();
Circle c1 = new Circle(e);
if (Shape.search(circle, c1) != 0) {
System.out.println("所查找的圆的位置及其具体信息为:\n" + Shape.search(circle, c1) + c1);
创建一个Java应用项目
把UML项目中的类自动生成代码到Java应用项目中
实现类中的方法及通用的排序和检索程序
进行编译
进行测试,使用的测试用例:
输入:预期输出:

五、调试过程
1.编译过程
记录算法实现中发现的语法错误及改正
2.调试过程
记录算法实现中发现的逻辑错误及改正,对每个测试用例,记录实际输出,并与预期输出进行比较,如果不同,分析产生错误的原因并改正。
return Math.PI * radius * radius;
}
public int compareTo(Object o) {
if (radius > ((Circle) o).radius) {
return 1;
} else if (radius < ((Circle) o).radius) {
福建农林大学计算机与信息学院实验报告

计算机
专业
年级
12级
成绩
姓名
学号
实验室
机号
实验时间
教师签字
实验(四)
一、实验目的和要求
1.掌握面向对象的继承关系
2.理解面向对象的多态
3.掌握方法的重写
4.掌握接口的实现
二、实验内容和原理
设计一个抽象类Shape,包括2个抽象方法,分别是计算形状的周长和面积。设计具体类Rectangle和Circle,分别表示矩形和圆,它们都是Shapes的子类。使Rectangle和Circle都实现Comparable接口(根据面积比较大小),编写一个通用的排序程序和一个通用的二分查找程序(自己写代码实现),能对这二种类型的数组进行排序并查找指定的对象。
三、实验环境
1.硬件环境:
2.软件环境:JDK1.5
四、算法描述及实验步骤
1.算法描述(可以用类图、流程图、伪代码或源程序描述)
package test;
import javax.swing.JOptionPane;
import java.util.Scanner;
public class Test {
for (int j = i - 1; j >= 0; j--) {
if (((Comparable) currentMax).compareTo(list[j]) < 0) {
currentMax = list[j];
currentMaxIndex = j;
}
}
if (currentMaxIndex != i) {
low = mid + 1;
} else {
return mid + 1;
}
}
return 0;
}
}
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
}
}
}
class Circle extends Shape {
private double radius;
public Circle() {
this(0);
}
public Circle(double radius) {
setRadius(radius);
}
public double getRadius() {
return width;
}
public void setWidth(double val) {
this.width = (val <= 0 ? 1 : val);
}
@Override
public String toString() {
String str = "";
str += "矩形长:" + length + "宽:" + width;
return radius;
}
public void setRadius(double val) {
this.radius = (val < 0 ? 0 : val);
}
@Override
public String toString() {
String str = "";
str += "圆半径:" + radius + "周长:" + String.format("%-6.2f", getPerimeter());
return 2 * (length + wi Nhomakorabeath);
}
protected double getArea() {
return length * width;
}
public int compareTo(Object o) {
if (getArea() > ((Rectangle) o).getArea()) {
for (int i = 0; i < b; i++) {
rectangle[i] = new Rectangle(c3.nextDouble(), c3.nextDouble());
}
Shape.sort(circle);
String str1 = "";
for (int i = 0; i < circle.length; i++) {
public static void main(String[] args) {
System.out.println("要创建几个圆?:");
Scanner a1 = new Scanner(System.in);
相关文档
最新文档