与分层继承相关的简单Java程序没有提供所需的输出
我编写了以下Java程序: 选项卡1:与分层继承相关的简单Java程序没有提供所需的输出,java,inheritance,Java,Inheritance,我编写了以下Java程序: 选项卡1: package base; import java.util.Scanner; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner obj = new Scanner(System.in); System.out.println
package base;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner obj = new Scanner(System.in);
System.out.println("Enter first number: ");
int num1 = obj.nextInt();
System.out.println("Enter the second number: ");
int num2 = obj.nextInt();
Add obj1 = new Add();
Mul obj2 = new Mul();
obj1.getData(num1, num2);
int add = obj1.addition();
int mul = obj2.multiplication();
System.out.println("The addition of the two numbers is: " +add);
System.out.println("The multiplication of the two numbers is: " +mul);
}
}
package base;
public class Parent {
int num1, num2;
void getData(int x, int y){
num1 = x;
num2 = y;
}
}
package base;
public class Add extends Parent {
int addition(){
int x;
x = num1 + num2;
return x;
}
}
package base;
public class Mul extends Parent {
int multiplication(){
int x;
x = num1*num2;
return x;
}
}
选项卡2:
package base;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner obj = new Scanner(System.in);
System.out.println("Enter first number: ");
int num1 = obj.nextInt();
System.out.println("Enter the second number: ");
int num2 = obj.nextInt();
Add obj1 = new Add();
Mul obj2 = new Mul();
obj1.getData(num1, num2);
int add = obj1.addition();
int mul = obj2.multiplication();
System.out.println("The addition of the two numbers is: " +add);
System.out.println("The multiplication of the two numbers is: " +mul);
}
}
package base;
public class Parent {
int num1, num2;
void getData(int x, int y){
num1 = x;
num2 = y;
}
}
package base;
public class Add extends Parent {
int addition(){
int x;
x = num1 + num2;
return x;
}
}
package base;
public class Mul extends Parent {
int multiplication(){
int x;
x = num1*num2;
return x;
}
}
选项卡3:
package base;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner obj = new Scanner(System.in);
System.out.println("Enter first number: ");
int num1 = obj.nextInt();
System.out.println("Enter the second number: ");
int num2 = obj.nextInt();
Add obj1 = new Add();
Mul obj2 = new Mul();
obj1.getData(num1, num2);
int add = obj1.addition();
int mul = obj2.multiplication();
System.out.println("The addition of the two numbers is: " +add);
System.out.println("The multiplication of the two numbers is: " +mul);
}
}
package base;
public class Parent {
int num1, num2;
void getData(int x, int y){
num1 = x;
num2 = y;
}
}
package base;
public class Add extends Parent {
int addition(){
int x;
x = num1 + num2;
return x;
}
}
package base;
public class Mul extends Parent {
int multiplication(){
int x;
x = num1*num2;
return x;
}
}
选项卡4:
package base;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner obj = new Scanner(System.in);
System.out.println("Enter first number: ");
int num1 = obj.nextInt();
System.out.println("Enter the second number: ");
int num2 = obj.nextInt();
Add obj1 = new Add();
Mul obj2 = new Mul();
obj1.getData(num1, num2);
int add = obj1.addition();
int mul = obj2.multiplication();
System.out.println("The addition of the two numbers is: " +add);
System.out.println("The multiplication of the two numbers is: " +mul);
}
}
package base;
public class Parent {
int num1, num2;
void getData(int x, int y){
num1 = x;
num2 = y;
}
}
package base;
public class Add extends Parent {
int addition(){
int x;
x = num1 + num2;
return x;
}
}
package base;
public class Mul extends Parent {
int multiplication(){
int x;
x = num1*num2;
return x;
}
}
当我运行代码时,它会给出如下结果:
Enter first number:
5
Enter second number:
4
The addition of the two numbers is: 9
The multiplication of the two numbers is: 0
我用各种不同的输入得到了相同类型的结果
乘法的结果总是0
我已经反复检查了我的代码好几次,但显然我没有发现任何错误
我哪里做错了
任何帮助都将不胜感激
Add obj1 = new Add();
Mul obj2 = new Mul();
obj1.getData(num1, num2);
您创建了两个不同的对象,
obj1
和obj2
,但仅将非零值放入obj1
。obj2
中的值仍然为零。在调用其方法之前,应该将参数传递给Mul
实例
obj2.getData(num1, num2);
int mul = obj2.multiplication();
在
obj2
上没有调用getData()
:
obj2.getData(num1, num2);
您从未使用
getData()
设置obj2
上的值。零乘以零等于零。您可能还发现这很有用:请将getData的名称更改为setData。您正在设置数据,因此如果您的函数调用getData,则会造成混乱。