任务描述
本关任务:判断梨类、苹果类和水果类的关系,并通过对象类型转换调用彼此的属性和方法。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中判断梨类、苹果类和水果类的关系,并通过对象类型转换调用彼此的属性和方法,具体要求如下:
依次判断 f、a、p 是否为 Fruits 的子类对象;
把梨类对象赋值给水果类,其中 name 值为 bigPear,颜色为 green;
输出当前水果类引用的名称;
依次判断当前水果类引用是否为水果类和梨类的子类;
将当前水果类引用强转为梨类;
输出当前梨类的颜色。
/**
* 判断梨类、苹果类和水果类的关系,并通过对象类型转换调用彼此的属性和方法。
*/
class Fruits
{
public String name; // 定义水果名称
Fruits (String name)
{
this.name = name;
}
}
// 苹果类继承水果类
class Apple extends Fruits
{
public String acolor; // 苹果颜色
public Apple(String name, String acolor)
{
super(name);
this.acolor = acolor;
}
}
// 梨类继承水果类
class Pear extends Fruits
{
public String pcolor; // 梨的颜色
public Pear(String name, String pcolor)
{
super(name);
this.pcolor = pcolor;
}
}
public class Tests
{
public static void main(String args[])
{
Fruits f = new Fruits("水果");
Apple a = new Apple("苹果","red");
Pear p = new Pear(";梨","yellow");
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********* Begin *********/
// 依次判断 f、a、p是否为 Fruits的子类对象
System.out.println(f instanceof Fruits);
System.out.println(a instanceof Fruits);
System.out.println(p instanceof Fruits);
// 把梨类对象赋值给水果类,其中name值为bigPear,颜色为green
Fruits bp=new Pear("bigPear","green");
// 输出当前水果类引用的名称
System.out.println(bp.name);
// 依次判断当前水果类引用是否为水果类和梨类的子类
System.out.println(bp instanceof Fruits);
System.out.println(bp instanceof Pear);
// 将当前水果类引用强转为梨类
Pear x=(Pear) bp;
// 输出当前梨类的颜色
System.out.println(x.pcolor);
/********** End **********/
}
}
2.
任务描述
本关任务:定义 Person 类和 Student 类,分别实现定义各自基本属性的功能。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。
/*
* 定义 Person 类和 Student 类,分别实现定义各自基本属性的功能。
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********* Begin *********/
// 声明一个名为Person的类,里面有name与age两个属性,分别为String和int型,并声明一个含有两个参数的构造方法
class Person
{
public String name ;
public int age ;
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
}
public class Student extends Person
{
String school ;
public Student(String name,int age,String school)
{
super(name,age);
this.school=school;
}
}
// 声明一个名为Student的类,此类继承自Person类,添加一个属性school,字符串类型
// 在子类的有参构造方法中调用父类中有两个参数的构造方法
/********** End **********/
3.
任务描述
本关任务:计算球的表面积。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。
/**
* 重写 Shape 中的 area 方法,计算球的表面积。
*/
class Shape {
private double r; //球的半径
// 球的体积
public double area(){
double s = (double)3/4*Math.PI*Math.pow(r,3);
return s;
}
}
public class Sphere extends Shape{
private double r; //球的半径
public Sphere(double r) {
this.r = r;
}
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********* Begin *********/
// 重写 Shape 中的 area 方法,计算球的表面积,将计算结果返回
public double area(){
double s = (double)4*Math.PI*Math.pow(r,2);
return s;
}
/********** End **********/
}
4.
任务描述
本关任务:使用 instanceof 运算符判断所给对象是否为特定类的一个实例,并输出判断结果。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。
/**
* 任务:使用 instanceof 运算符判断所给对象是否为特定类的一个实例,并输出判断结果。
*/
public class Demo {
public static void main(String[] args){
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
Object hello = "Hello";
// 判断hello是否是Object类的实例
if(hello instanceof Object)
System.out.println("true");
else
System.out.println("false");
if(hello instanceof String)
System.out.println("true");
else
System.out.println("false");
if(hello instanceof Math)
System.out.println("true");
else
System.out.println("false");
// 判断hello是否是String类的实例
// 判断hello是否是Math类的实例
// 判断a是否是Object类的实例
String a = "hello";
if(a instanceof Object)
System.out.println("true");
else
System.out.println("false");
}
}
5.
任务描述
本关任务:定义一个矩形 Rectangle 类和 三角形 Triangle 类,都继承 Shape 类,在这两个类中分别定义 一个名为 area 的方法,实现计算该形状面积的功能(Shape 类已经定义完成,可以在 Shape.java 文件查看相应代码)。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
要求:在各自的文件中完成相应的类,点击右侧的代码文件可以文件的替换。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。
①
/**
* 任务:定义一个矩形 Rectangle 类,继承 Shape 类,
* 在这个类中分别定义一个名为 area 的方法,实现计算该形状面积的功能。
* 类名为:Rectangle
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 定义一个Rectangle的公开类,并继承Shape类
// 定义一个area方法,实现计算矩形面积的功能。
public class Rectangle extends Shape
{
public double area()
{
return getHeight()*getWidth();
}
}
/********** End **********/
②
/**
* 任务:定义一个三角形 Triangle 类,继承 Shape 类,
* 在这个类中分别定义一个名为 area 的方法,实现计算该形状面积的功能。
* 类名为:Triangle
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 定义一个Triangle的公开类,并继承Shape类
// 定义一个area方法,实现计算三角形面积的功能。
public class Triangle extends Shape
{
public double area()
{
return 0.5*getHeight()*getWidth();
}
}
/********** End **********/