JAVA各章习题及答案

int x,y; X2(int j){ super(3); // 利用super来调用父类的构造方法 this.x=j; // 利用this来调用本类的数据成员x } void show(){ System.out.println(\// 输出父类和子类的属性x } void setY(){ y=super.x+this.x; // 引用父类和子类中的数据成员x } }

【运行结果】

super.x=3 this.x=5 super.y=6 this.y=8

5.编写一个人类Person,其中包含姓名、性别和年龄的属性,包含构造方法以及显示姓名、性别和年龄的方法。再编写一个学生类Student,它继承Person类,其中包含学号属性,包含构造方法以及显示学号的方法。最后编写一个主类X5_3_5,包含main()方法,在main()方法中定义两个学生s1和s2并给他们赋值,最后显示他们的学号、姓名、性别以及年龄。

【编程分析】本题主要考察类的继承问题。

第一步:定义Person类。

第二步:定义Student类,该类继承Person类。 第三步:定义主类。 【参考程序】

public class X5_3_5 {

public static void main(String[] args) {

Student s1=new Student(\ Student s2=new Student(\ s1.show(); s1.showID(); s2.show(); s2.showID(); } }

class Person{ String name; String sex; int age;

public Person(String n,String s,int a){ name = n; sex = s;

29

age = a; }

void show(){

System.out.println(\ System.out.println(\ System.out.println(\ } }

class Student extends Person{ String sID;

public Student(String n,String s,int a,String sid){ super(n,s,a); sID = sid; }

void showID(){

System.out.println(\ } }

【运行结果】

name: Zhangsan sex: Male age: 20 sID: 102A name: Lisi sex: Female age: 18 sID: 108S

6.编一个程序,包含以下文件。

(1)Shape.java文件,在该文件中定义接口Shape,该接口在shape包中。 属性:PI。

方法:求面积的方法area()。

(2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。 属性:圆半径radius。

方法:构造方法;实现接口中求面积方法area();求周长方法perimeter()。 (3)“Cylinder.java”文件,在该文件中定义圆柱体类Cylinder,该类口在cylinder包中,

继承圆类。

属性:圆柱体高度height。

方法:构造方法;求表面积方法area();求体积方法volume()。

(4)X5_3_6.java文件,在该文件中定义主类X5_3_6,该类在默认包中,其中包含主方法main(),在主方法中创建两个圆类对象cir1和cir2,具体尺寸自己确定,并显示圆的面积和周长;再创建两个圆柱体类的对象cy1和cy2,具体尺寸自己确定,然后分别显示圆柱体cy1和cy2的底圆的面积和周长以及它们各自的体积和表面积。

【编程分析】本题主要考察接口、包、继承、封装等问题。编程步骤如下:

第一步:首先创建p1包,在其中创建Shape接口

30

// Shape.java文件

package p1; // 创建p1包 public interface Shape{ // 定义Shape接口 … }

第二步:创建Circle类和Cylinder类,它们都定义在p2包中。

// Circle.java文件

package p2; // 创建p2包 import p1.*;

public class Circle implements Shape{ // 定义实现Shape接口的Circle类 … }

// Cylinder.java文件 package p2;

public class Cylinder extends Circle{ // 创建继承Circle类的Cylinder类 … }

第三步:创建主类,在其中的main()方法中创建对象,实现相应的功能。

// X5_3_6.java文件 package p3; import p2.*;

public class X5_3_6 { // 定义主类 public static void main(String[] args) { … } }

// X5_3_6.java文件 package p3; import p2.*;

public class X5_3_6 { // 定义主类 public static void main(String[] args) { Circle cir1 = new Circle(120.5); Circle cir2 = new Circle(183.8); System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ Cylinder cy1 = new Cylinder(27.3,32.7); Cylinder cy2 = new Cylinder(133.5,155.8); System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\

31

【参考程序】

} }

// Shape.java文件

package p1; // 创建p1包 public interface Shape{ // 定义Shape接口 double PI=Math.PI; double area(); // 求面积方法 }

// Circle.java文件

package p2; // 创建p2包 import p1.*;

public class Circle implements Shape{ // 定义实现Shape接口的Circle类 double radius; // 半径 public Circle(double r){ radius = r; } public double area(){ // 实现Shape接口中的方法(这是必须的) return PI*radius*radius; } public double perimeter(){ // 定义求圆周长的方法 return 2*PI*radius; } }

// Cylinder.java文件 package p2;

public class Cylinder extends Circle{ // 创建继承Circle类的Cylinder类 double height; public Cylinder(double r,double h){ super(r); height = h; } public double area(){ return 2*PI*radius*radius+2*PI*radius*height; } public double volume(){ return PI*radius*radius*height; } }

cir1.area: 45616.710728287195 cir1.perimeter: 757.1238295151402 cir2.area: 106130.66532433797 cir2.perimeter: 1154.849459459608 cy1.area: 10291.857533160162

32

【运行结果】

联系客服:779662525#qq.com(#替换为@)