JAVA练习8
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
一、题目1-
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
二、题目2-
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结
前言
提示:这里可以添加本文要记录的大概内容:
1月2日练习内容
提示:以下是本篇文章正文内容,下面案例可供参考
一、题目1-重写计算逻辑
1.题目描述
描述
在父类Base中定义了计算方法calculate(),该方法用于计算两个数的乘积(X*Y)。请在子类Sub中重写该方法,将计算逻辑由乘法改为除法(X/Y)。注意,当分母为0时输出“Error”。
输入描述:
两个整数
输出描述:
两个整数的商(int类型,不考虑小数情况)
2.思路与代码
2.1 思路
1.本题主要考察子类重写父类方法
2.将子类继承父类,在子类的构造方法中调用父类的构造方法,接着重写父类的calculate方法,将父类的乘积(X*Y)重写为子类的除法(X/Y)
3.在main方法中,输入x,y,创建对象和调用子类方法
2.2 代码
代码如下(示例):
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//输入
int x = in.nextInt();
int y = in.nextInt();
//创建对象
Sub su = new Sub(x,y);
//调用方法
su.calculate();
}
}
//父类
class Base {
private int x;
private int y;
public Base(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public void calculate() {
System.out.println(getX() * getY());
}
}
//子类
class Sub extends Base {
public Sub(int x, int y) {
super(x, y);
}
//子类重写父类方法
public void calculate() {
if (getY() == 0) {
System.out.print("Error");
} else {
System.out.println(getX() / getY());
}
}
}
二、题目2-
1.题目描述
已知有三个类:First、Second、Third。要求定义一个打印方法,支持传入任意引用类型的参数(包括上述三个类),并在方法内部打印出对象的字符串形式。
输入描述:
类名
输出描述:
由该类实例化出来的对象的字符串表示
2.思路与代码
2.1 思路
1.因为定义的桑类的返回的类型本身就是字符串类型,与系统定义类型的参数相同,这里可以直接调用方法:getClass().getName(),
2.输出
2.2 代码
代码如下(示例):
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
String name = input.next();
// print就是需要你定义的方法
print(Class.forName(name).newInstance());
}
}
//print方法
public static void print(Object obj) {
//调用getName函数直接输出
System.out.println(obj.getClass().getName());
}
}
class First {
public String toString() {
return "First";
}
}
class Second {
public String toString() {
return "Second";
}
}
class Third {
public String toString() {
return "Third";
}
}
总结
提示:这里对文章进行总结: