繁体   English   中英

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

[英]Member function accepts values when called separately but not when called in main function

我写的程序

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 ,它是对象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); }

那么你可以调用你的 main 方法(它将不再是Angle一部分):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM