首页新闻找找看学习计划

编写Java程序,模拟简单的计算器。 定义名为Number的类,其中有两个整型数据成员n1和n2。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、 减(subtration)、乘(multiplication)、除(division)等成员方法,分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。 */

0
悬赏园豆:30 [已解决问题] 解决于 2017-12-03 17:56
class Number {
    float num1;
    float num2;
    
    void addition(){
         double addition=num1+num2;
        System.out.println("N1+N2结果为:" + addition);
    }
    void subtration(){
        double subtration=num1-num2;
        System.out.println("N1-N2结果为:" + subtration);
    }
    void multiplication(){
        float multiplication=num1*num2;
        System.out.println("N1*N2结果为:" + multiplication);
    }
    void division(){
        float division=num1/num2;
        System.out.println("N1/N2结果为:" + division);
    }
}
 1 import java.util.Scanner;
 2 
 3 public class Number_main {
 4 
 5     public static void main(String[] args) {
 6         Number num1=new Number();
 7         Number num2=new Number();
 8         Number num3=new Number();
 9         Number num4=new Number();
10         
11         Scanner input=new Scanner(System.in);
12         System.out.println("输入两个值来计算加减乘除:");
13         float n1 = input.nextInt();
14         Scanner input2=new Scanner(System.in);
15         System.out.println("输入第二个值:");
16         float n2 = input.nextInt();
17         
18         num1.addition();
19         num2.subtration();
20         num3.division();
21         num4.multiplication();
22         
23     }
24 
25 }

输入两个值来计算加减乘除:
5
输入第二个值:
4
N1+N2结果为:0.00.0

N1-N2结果为:0.0

N1/N2结果为:NaN
N1*N2结果为:0.0

为什么会出现这样的情况?怎么样才能根据题目做出来,是我的想法有问题吗?

窗外雨,夜微寒。的主页 窗外雨,夜微寒。 | 初学一级 | 园豆:29
提问于:2017-11-30 20:46
< >
分享
最佳答案
1

用Number类申明一个对象number,将你输入的值赋给对象的两个属性n1,n2,再调用对象的方法即可

收获园豆:10
黑白猫123 | 初学一级 |园豆:57 | 2017-12-01 09:57

谢谢大佬了。

窗外雨,夜微寒。 | 园豆:29 (初学一级) | 2017-12-03 17:55
其他回答(2)
0

你就没给你的Number对象的两个数字赋值过你说怎么可能得出正确答案?

ps:标题长的确显眼。。。。

收获园豆:10
Daniel Cai | 园豆:10374 (专家六级) | 2017-11-30 20:49

 咋弄。。。。我就在想怎么把输入的值赋给num1和num2

支持(0) 反对(0) 窗外雨,夜微寒。 | 园豆:29 (初学一级) | 2017-11-30 20:54

@窗外雨,夜微寒。: 简单点你把那两个字段public出来,要么去掉那两个字段,降到方法上

class Number

{

  void multiplication(float num1,float num2){

   float multiplication=num1*num2;

  System.out.println("N1*N2结果为:" + multiplication);

  }

  //..依次类推

}

外边直接当入参传入就可以了,new那么多Number实例没用。

支持(0) 反对(0) Daniel Cai | 园豆:10374 (专家六级) | 2017-11-30 21:02

@Daniel Cai: 解决了谢谢大佬了。

支持(0) 反对(0) 窗外雨,夜微寒。 | 园豆:29 (初学一级) | 2017-12-03 17:55
0

根据面向对象的设计原则,你可以这样写:

public class Number {
float value;

Number addition(Number num){
double addition=this.value+num.value;
System.out.println("N1+N2结果为:" + addition);
return this;
}
Number subtration(Number num){
double subtration=this.value-num.value;
System.out.println("N1-N2结果为:" + subtration);
return this;
}
Number multiplication(Number num){
float multiplication=this.value*num.value;
System.out.println("N1*N2结果为:" + multiplication);
return this;
}
Number division(Number num){
float division=this.value/num.value;
System.out.println("N1/N2结果为:" + division);
return this;
}

Number(float f){
this.value = f ;
}
public static void main(String[] args) {
Number number1 = new Number(4);
Number number2 = new Number(5);

number1.addition(number2)
.subtration(number2)
.division(number2)
.multiplication(number2);
}
}

收获园豆:10
Xi_Feng | 园豆:164 (初学一级) | 2017-12-01 11:26

谢谢大佬。

支持(0) 反对(0) 窗外雨,夜微寒。 | 园豆:29 (初学一级) | 2017-12-03 17:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册