补全构造方法、重写计算逻辑 题目

JAVA21 补全构造方法

描述
 
有父类Base,内部定义了x、y属性。有子类Sub,继承自父类Base。

子类新增了一个z属性,并且定义了calculate方法,在此方法内计算了父类和子类中x、y、z属性三者的乘积。

请补全子类构造方法的初始化逻辑,使得该计算逻辑能够正确执行。

 

输入描述:
三个整数:x, y, z
 
输出描述:
三个整数的乘积:xyz
 
示例:

输入:1 2 3
输出:6

 
 

分析:

在子类的构造方法中设置父类的x,y属性的值。

 
 

代码:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            int z = scanner.nextInt();
            Sub sub = new Sub(x, y, z);
            System.out.println(sub.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;
    }

}

class Sub extends Base {

    private int z;

    public Sub(int x, int y, int z) {
        super(x,y);
        this.z=z;
    }

    public int getZ() {
        return z;
    }

    public int calculate() {
        return super.getX() * super.getY() * this.getZ();
    }

}


 
 
 

JAVA22 重写计算逻辑

描述
在父类Base中定义了计算方法calculate(),该方法用于计算两个数的乘积(X*Y)。请在子类Sub中重写该方法,将计算逻辑由乘法改为除法(X/Y)。注意,当分母为0时输出“Error”。
 
输入描述:
两个整数
 
输出描述:
两个整数的商(int类型,不考虑小数情况)

示例:

输入:6 2
输出:3
输入:1 0
输出:Error

 
 

分析:

分两种情况:

​        1.分母为0,返回Error。

​        2.分母不为0,进行除法运算。

 
 

代码:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            Sub sub = new Sub(x, y);
            sub.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);
    }

    //write your code here......
    public void calculate(){
        if(super.getY()==0){
            System.out.println("Error");
        }else{
            System.out.println(super.getX()/super.getY());
        }
    }

}

 
 

大佬代码:

Sub继承于Base,且没有重写getY()和getX()方法, 故可以省略super。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            Sub sub = new Sub(x, y);
            sub.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);
    }

    //write your code here......
    public void calculate(){
        if(getY()==0){
            System.out.println("Error");
        }else{
            System.out.println(getX()/getY());
        }
    }

}
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值