java实验报告6
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在源程序中首先声明使用的包名mypackagemypackagemypackage然后创建然后创建然后创建ymdymdymd类该类具有计算今年的年份可以输出一个带有类该类具有计算今年的年份可以输出一个带有类该类具有计算今年的年份可以输出一个带有年月日的字符串的功能
《Java 语言程序设计》 上机实验报告
(6) 实验名称: 实验六 Java 面向对象编程 (3) 班 级: 软件工程 101 姓 名: 周 顺 权 学 号: 110029026 上机时间: 指导教师: 王 华
Page 1 of 12
一、 实验内容或题目:
1.构造函数的继承与重载。 (1) 首先预测下列程序的运行结果,然后编译、执行以验证你的预测: (2) 去掉 SubClass 的所有构造函数,然后将 JLab0503 类中 main 方法的最 后两行语句删除。预测修改后程序的运行结果,并进行验证。
Page 7 of 12
System.out.println("NAME:"+name); System.out.println("AGE:"+age); System.out.println("BIRTH:"+date); }
}
4 package test6;
abstract class Shape { public abstract double Area();
public void setTri(double a, double b, double c) { side1 = a; side2 = b; side3 = c;
} } class Cat extends Pet {
Cat(String n){ super(n);
} public String move(){
return "run"; } public String speak(){
return "miaomiao"; } } class JLab0504A { public static void main(String[] args) { Cat mycat=new Cat("Anmy"); System.out.println(mycat.toString()+"\n"+"speak:"+mycat.spea k()+"\n"+mycat.move()+""+mycat.getName()+"\n"); } }
mycat.speak() +"\n"+ mycat.move() + "" + mycat.getName() +
"\n"); }
}
3.A(1):
package mypg; public class MyPackage {
public MyPackage() { System.out.println("create MyPackage object");
} SubClass(int i){
Page 3 of 12
System.out.println("子类的第二个构造函数"); } }
(2):
package test6;
public class JLab0503 { public static void main(String args[]) { System.out.println("创建父类对象:"); SuperClass sc0 = new SuperClass(); System.out.println("\n 创建第一个子类对象:"); SubClass sc1 = new SubClass(); //System.out.println("\n 创建第二个子类对象:"); //SubClass sc2 = new SubClass(1); }
(2)编写含有主方法的公共类 JLab0504A,在其主方法中创建一个名为 myCat 的 Cat 的实例。并依照实验指导手册(5)中的类 JLab0501 主方法中的相应格式 输出结果。
(3)如果将 Pet 定义为接口,即所有相应方法全部为抽象方法,则 Cat 类 该如何改动?试改写相关代码,并验证你的结果。 3.包的定义和使用。
} }
Page 6 of 12
(2):
public class JLab0505 { public static void main(String[] args) { MyPackage mpg = new MyPackage(); }
}
B(1):
package Mypackage;
import java.util.Calendar;
Page 2 of 12
生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。
4.综合实验。
定义抽象类 Shape 表示一般二维图形。Shape 具有抽象方法 area 和 perimeter
分别计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形、
椭圆形等),这些类均为 Shape 类的子类。完成相关类的定义后,定义含有 main
} }
(2):
package Mypackage;
public class Alex { public static void main(String[] args) { String name="Alex"; String date; int year=1992,month=1,day=1; int age; YMD ymd=new YMD(); age=ymd.YY-year+1; date=year+"年"+month+"月"+day+"日";
}
class SuperClass { SuperClass() { System.out.println("父类的构造函数"); }
}
class SubClass extends SuperClass { /*SubClass() { System.out.println("子类的第一个构造函数"); }
public String getName() { return name;
}
public abstract String move();
public abstract String speak();
public String toString() { return "My pet " + name;
}
public double Area() { area = length * width; return area;
}
public double Perimeter() { perimeter = 2 * (length + width); return perimeter;
} }
class Triangle extends Shape { double side1, side2, side3, area, perimeter;
} } class SuperClass{
SuperClass( ){ System.out.println("父类的构造函数");
} } class SubClass extends SuperClass{
SubClass( ){ System.out.println("子类的第一个构造函数");
A.(1)在 C:\javalab 目录下新建目录 mypg;使用记事本程序编辑下列程序 并将其保 C:\javalab\mypg\MyPackage.java
(2)编辑下列代码,并将其保存为 C:\javalab\JLab0505.java (3)分别编译上述两个 java 源程序,并执行 JLab0505。观察相应结果。 B. 试将 C:\javalab\mypg\MyPackage.class 文件移动(剪切、粘贴)到在
public Catt(String n) { name = n;
}
public String getName() { return name;
}
public String move() { return "run";
}
public String speak() { return "miaomiao";
}
public String toString() { return "My Pet" + name;
} }
public class JLab0504C { public static void main(String args[]) { Catt mycat = new Catt("Anmy"); System.out.println(mycat.toString() + "\n" + "speak:" +
2.抽象类与接口。 (1)试改写实验指导手册(5)中第 3 题的 Pet 类,其中 move 与 speak 方法
定义为抽象方法。定义一个 Pet 类的子类 Cat 类。在 Cat 类中实现 move 和 Speak 方法。其中 move 方法返回值为“run”,speak 方法返回值为“miao miao”。
SubClass(int i) { System.out.println("子类的第二个构造函数");
}*/ }
2(1)与(2):
abstract class Pet { protected String name;
public Pet(String n) { name = n;
}
Page 4 of 12
存放源程 序的文件 夹 中建立 一个子 文件夹 Mypackage。例如, 在 “E:\java\程序”文件夹之中创建一个与包同名的子文件夹 Mypackage (E:\java\程序\Mypackage),并将编译过的 class 文件放入该文件夹 中。注意:包名与文件夹名大小写要一致。 (1)在包中创建类---YMD.java。程序功能:在源程序中,首先声明使用的包名 Mypackage,然后创建 YMD 类,该类具有计算今年的年份,可以输出一个带有 年月日的字符串的功能。 C:\javalab\目录下。再次运行 JLab0505,观察结果并思考原因。 (2)编写使用包 Mypackage 中 YMD 类的程序。程序功能:给定某人姓名与出
public abstract double Perimeter(); }
class Rectangle extends Shape { double length, width, area, perimeter;
public void setRect(double l, double w) { length = l; width = w;
方法的类 JLab0506 来使用这些类的相应对象,输出相关信息:如对象所代表图
形形状、基本数据(半径、长宽高等等)以及面积、周长等计算值。
二、 实验目的与要求:
三、 实验步骤与源程序: (1) 实验步骤
a) 编辑源文件 b) 编译 c) 运行
(2) 源代码 1(1):
public class JLab0503{ public static void main(String args[]){
public class YMD { int YY, MM, DD; Calendar t; String date; YMD(){ t = Calendar.getInstance(); YY = t.get(Calendar.YEAR); MM = t.get(Calendar.MONTH) + 1; DD = t.get(Calendar.DATE); date = YY + "年" + MM + "月" + DD + "日"; } public void output() { System.out.println(date);
(3ቤተ መጻሕፍቲ ባይዱ:
interface Pett { public String getName();
public String move();
public String speak();
public String toString(); }
Page 5 of 12
class Catt implements Pett { public String name;
System.out.println("创建父类对象:"); SuperClass sc0 = new SuperClass(); System.out.println("\n 创建第一个子类对象:"); SubClass sc1 = new SubClass();
System.out.println("\n 创建第二个子类对象:"); SubClass sc2 = new SubClass(1);
《Java 语言程序设计》 上机实验报告
(6) 实验名称: 实验六 Java 面向对象编程 (3) 班 级: 软件工程 101 姓 名: 周 顺 权 学 号: 110029026 上机时间: 指导教师: 王 华
Page 1 of 12
一、 实验内容或题目:
1.构造函数的继承与重载。 (1) 首先预测下列程序的运行结果,然后编译、执行以验证你的预测: (2) 去掉 SubClass 的所有构造函数,然后将 JLab0503 类中 main 方法的最 后两行语句删除。预测修改后程序的运行结果,并进行验证。
Page 7 of 12
System.out.println("NAME:"+name); System.out.println("AGE:"+age); System.out.println("BIRTH:"+date); }
}
4 package test6;
abstract class Shape { public abstract double Area();
public void setTri(double a, double b, double c) { side1 = a; side2 = b; side3 = c;
} } class Cat extends Pet {
Cat(String n){ super(n);
} public String move(){
return "run"; } public String speak(){
return "miaomiao"; } } class JLab0504A { public static void main(String[] args) { Cat mycat=new Cat("Anmy"); System.out.println(mycat.toString()+"\n"+"speak:"+mycat.spea k()+"\n"+mycat.move()+""+mycat.getName()+"\n"); } }
mycat.speak() +"\n"+ mycat.move() + "" + mycat.getName() +
"\n"); }
}
3.A(1):
package mypg; public class MyPackage {
public MyPackage() { System.out.println("create MyPackage object");
} SubClass(int i){
Page 3 of 12
System.out.println("子类的第二个构造函数"); } }
(2):
package test6;
public class JLab0503 { public static void main(String args[]) { System.out.println("创建父类对象:"); SuperClass sc0 = new SuperClass(); System.out.println("\n 创建第一个子类对象:"); SubClass sc1 = new SubClass(); //System.out.println("\n 创建第二个子类对象:"); //SubClass sc2 = new SubClass(1); }
(2)编写含有主方法的公共类 JLab0504A,在其主方法中创建一个名为 myCat 的 Cat 的实例。并依照实验指导手册(5)中的类 JLab0501 主方法中的相应格式 输出结果。
(3)如果将 Pet 定义为接口,即所有相应方法全部为抽象方法,则 Cat 类 该如何改动?试改写相关代码,并验证你的结果。 3.包的定义和使用。
} }
Page 6 of 12
(2):
public class JLab0505 { public static void main(String[] args) { MyPackage mpg = new MyPackage(); }
}
B(1):
package Mypackage;
import java.util.Calendar;
Page 2 of 12
生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。
4.综合实验。
定义抽象类 Shape 表示一般二维图形。Shape 具有抽象方法 area 和 perimeter
分别计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形、
椭圆形等),这些类均为 Shape 类的子类。完成相关类的定义后,定义含有 main
} }
(2):
package Mypackage;
public class Alex { public static void main(String[] args) { String name="Alex"; String date; int year=1992,month=1,day=1; int age; YMD ymd=new YMD(); age=ymd.YY-year+1; date=year+"年"+month+"月"+day+"日";
}
class SuperClass { SuperClass() { System.out.println("父类的构造函数"); }
}
class SubClass extends SuperClass { /*SubClass() { System.out.println("子类的第一个构造函数"); }
public String getName() { return name;
}
public abstract String move();
public abstract String speak();
public String toString() { return "My pet " + name;
}
public double Area() { area = length * width; return area;
}
public double Perimeter() { perimeter = 2 * (length + width); return perimeter;
} }
class Triangle extends Shape { double side1, side2, side3, area, perimeter;
} } class SuperClass{
SuperClass( ){ System.out.println("父类的构造函数");
} } class SubClass extends SuperClass{
SubClass( ){ System.out.println("子类的第一个构造函数");
A.(1)在 C:\javalab 目录下新建目录 mypg;使用记事本程序编辑下列程序 并将其保 C:\javalab\mypg\MyPackage.java
(2)编辑下列代码,并将其保存为 C:\javalab\JLab0505.java (3)分别编译上述两个 java 源程序,并执行 JLab0505。观察相应结果。 B. 试将 C:\javalab\mypg\MyPackage.class 文件移动(剪切、粘贴)到在
public Catt(String n) { name = n;
}
public String getName() { return name;
}
public String move() { return "run";
}
public String speak() { return "miaomiao";
}
public String toString() { return "My Pet" + name;
} }
public class JLab0504C { public static void main(String args[]) { Catt mycat = new Catt("Anmy"); System.out.println(mycat.toString() + "\n" + "speak:" +
2.抽象类与接口。 (1)试改写实验指导手册(5)中第 3 题的 Pet 类,其中 move 与 speak 方法
定义为抽象方法。定义一个 Pet 类的子类 Cat 类。在 Cat 类中实现 move 和 Speak 方法。其中 move 方法返回值为“run”,speak 方法返回值为“miao miao”。
SubClass(int i) { System.out.println("子类的第二个构造函数");
}*/ }
2(1)与(2):
abstract class Pet { protected String name;
public Pet(String n) { name = n;
}
Page 4 of 12
存放源程 序的文件 夹 中建立 一个子 文件夹 Mypackage。例如, 在 “E:\java\程序”文件夹之中创建一个与包同名的子文件夹 Mypackage (E:\java\程序\Mypackage),并将编译过的 class 文件放入该文件夹 中。注意:包名与文件夹名大小写要一致。 (1)在包中创建类---YMD.java。程序功能:在源程序中,首先声明使用的包名 Mypackage,然后创建 YMD 类,该类具有计算今年的年份,可以输出一个带有 年月日的字符串的功能。 C:\javalab\目录下。再次运行 JLab0505,观察结果并思考原因。 (2)编写使用包 Mypackage 中 YMD 类的程序。程序功能:给定某人姓名与出
public abstract double Perimeter(); }
class Rectangle extends Shape { double length, width, area, perimeter;
public void setRect(double l, double w) { length = l; width = w;
方法的类 JLab0506 来使用这些类的相应对象,输出相关信息:如对象所代表图
形形状、基本数据(半径、长宽高等等)以及面积、周长等计算值。
二、 实验目的与要求:
三、 实验步骤与源程序: (1) 实验步骤
a) 编辑源文件 b) 编译 c) 运行
(2) 源代码 1(1):
public class JLab0503{ public static void main(String args[]){
public class YMD { int YY, MM, DD; Calendar t; String date; YMD(){ t = Calendar.getInstance(); YY = t.get(Calendar.YEAR); MM = t.get(Calendar.MONTH) + 1; DD = t.get(Calendar.DATE); date = YY + "年" + MM + "月" + DD + "日"; } public void output() { System.out.println(date);
(3ቤተ መጻሕፍቲ ባይዱ:
interface Pett { public String getName();
public String move();
public String speak();
public String toString(); }
Page 5 of 12
class Catt implements Pett { public String name;
System.out.println("创建父类对象:"); SuperClass sc0 = new SuperClass(); System.out.println("\n 创建第一个子类对象:"); SubClass sc1 = new SubClass();
System.out.println("\n 创建第二个子类对象:"); SubClass sc2 = new SubClass(1);