Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码不会输出我输入的内容,也不会计算输入的数字_Java_Class_If Statement_Public_Private Methods - Fatal编程技术网

Java 代码不会输出我输入的内容,也不会计算输入的数字

Java 代码不会输出我输入的内容,也不会计算输入的数字,java,class,if-statement,public,private-methods,Java,Class,If Statement,Public,Private Methods,这是一个计算器问题。我们将有一个计算器类,其中包含其他三个类,数字类用于检查要处理的量的类型,操作类用于五个操作,内存类用于内存函数 当我输入数字时,它不会输出数字,也不会计算输入的数字。对不起,如果有任何混乱。任何帮助都将不胜感激 import java.util.*; public class calculatortest{ private Num num; private Ope ope; public static void main(String args[]){ c

这是一个计算器问题。我们将有一个计算器类,其中包含其他三个类,数字类用于检查要处理的量的类型,操作类用于五个操作,内存类用于内存函数

当我输入数字时,它不会输出数字,也不会计算输入的数字。对不起,如果有任何混乱。任何帮助都将不胜感激

import java.util.*;

public class calculatortest{
private Num num;
private Ope ope;

public static void main(String args[]){
       calculatortest c = new calculatortest();
       c.start();
}

public calculatortest()
{

}
public void start()
{
    describeProgram();
    getInput();
    displayOutput();
    //getMemory();
}
private void describeProgram()
{
    System.out.println("this is kc program and it starts from here");

}
private void displayOutput()
{
    System.out.println("Input number 1: " + num.number1());
    System.out.println("Input operator: " + ope.operator());
    System.out.println("Input number 2: " + num.number2());
    System.out.println("Answer is: " + ope.answer());
}
private void getInput()
{
    double number11;
    String operator2;
    double number22;

    Scanner scanner = new Scanner(System.in);
    System.out.print("Number 1: ");
    number11 = scanner.nextDouble();
    System.out.print("Operator: ");
    operator2 = scanner.next();
    System.out.print("Number 2: ");
    number22 = scanner.nextDouble();

    //operation = new Operation(number11,operator2, number33);
    num = new Num (number11, number22);
    ope = new Ope (number11, number22);
}   

}
class Num{

private double number11;
private double number22;

public Num (double number11, double number22)
{

}
public double number1()
{
    return number11;
}
public double number2()
{
    return number22;
}
}
class Ope
{
String operator2;
double answer;
double num1, num2;

public Ope(double number11, double number22 )
{
    setNumber11(number11);
    setNumber22(number22);
}

public String operator() {
    // TODO Auto-generated method stub
    return ("does not work");
}

/*public String Ope(String operator)
{
    return operator2;
}*/

public void setNumber11(double number11)
{
    num1 = number11;
}
public void setNumber22(double number22)
{
    num2 = number22;

}
public double answer() {

    if(operator2.equals("+"))
    {
        double answer = num1 + num2;
        return answer;
    }
    else if(operator2.equals("-"))
    {
        double answer = num1 - num2;
        return answer;
    }
    else if(operator2.equals("*"))
    {
        double answer = num1 * num2;
        return answer;
    }
    else if(operator2.equals("/"))
    {
        double answer = num1 / num2;
        return answer;
    }
    return 0;
}


}
//class Mem

This is the OUTPUT:
this is kc program and it starts from here

Number 1: 5

Operator: +

Number 2: 5


Exception in thread "main" java.lang.NullPointerException

at Ope.answer(calculatortest.java:106)

at calculatortest.displayOutput(calculatortest.java:33)

at calculatortest.start(calculatortest.java:20)

at calculatortest.main(calculatortest.java:9)


Input number 1: 0.0

Input operator: does not work

Input number 2: 0.0

您应该定义构造函数以接受如下运算符:

public Ope(double number11, String operator, double number22 )
{
    operator2 = operator;
    setNumber11(number11);
    setNumber22(number22);
}
然后在getInput上执行以下操作:

操作=新打开编号11,操作编号2,编号33