[英]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.