成员函数在单独调用时接受值,但在main函数中调用时不接受

时间:2016-09-15 07:35:36

标签: java

我写的程序

public class Angle{
int deg1,deg2, min1,min2;
    void accept()throws IOException
{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter the angle parameters degree fb minute fb next degree");
    deg1= Integer.parseInt(br.readLine());
    min1= Integer.parseInt(br.readLine());
    deg2= Integer.parseInt(br.readLine());
    min2= Integer.parseInt(br.readLine());
}
int anglesum(int a,int b,int x, int y)
{
    int m= (int)(b+y)/60;

    int s=a+x+m;
    return(s);
}
void main()throws IOException
{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    Angle abc=new Angle();
    abc.accept();
    int e=abc.anglesum(deg1,min1,deg2,min2);
    System.out.println("The sum is ="+e+" degrees "+(min1+min2-60)+" minutes");
}

它在通过对象分别调用函数时接受值,但在运行main函数时不接受。可能是什么问题?

1 个答案:

答案 0 :(得分:0)

您的问题是您正在调用方法main,它是对象Angle的方法,而您正在创建另一个类型为Angle的对象的实例

您可以更改int e=abc.anglesum(deg1,min1,deg2,min2);int e=abc.anglesum(abc.deg1, abc.min1, abc.deg2, abc.min2); 然后你可能得到你想要的结果。

System.out.println("The sum is ="+e+" degrees "+(abc.min1 + abc.min2-60)+" minutes");

相同

1)您应该移动方法main,使其不属于对象Angle

2)您可以在Angle

中创建新方法
int anglesum() { return anglesum(deg1,min1,deg2,min2); }

然后你可以调用你的主要方法(它将不再是Angle的一部分):

abc.accept();
int e=abc.anglesum();