我是java的新手,正在玩代码。我很好奇如何使用类A中的System.out.print在类B中打印返回值。我不想在类B中使用System.out.print。我已经知道如何这样做。
-------- CLASS A ------------------------------------- ---
import java.util.Scanner;
public class Moregot {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Give giveObj = new Give();
System.out.println("Enter your First Name ");
String fNamed = scan.nextLine();
System.out.println("Enter your Last Name ");
String lNamed = scan.nextLine();
System.out.println("Enter your Age ");
int theAge = scan.nextInt();
Give.setInfomation(fNamed, lNamed, theAge);
System.out.println("Your Name is " + giveObj.getfN() + " "+ giveObj.getlN() + " and you are age "+ giveObj.getOld());
}
}
-------- CLASS B ------------------------------------- ---
package Practice2;
public class Give {
private String _fName, _lName;
private int _age;
public static void setInfomation(String fNam, String lNam, int old)
{
String _fName = fNam;
String _lName = lNam;
int _age = old;
}
public String getfN(){
return _fName;
}
public String getlN(){
return _lName;
}
public int getOld(){
return _age;
}
}
答案 0 :(得分:1)
在Give
班级中更改行:
String _fName = fNam;
String _lName = lNam;
int _age = old;
为:
_fName = fNam;
_lName = lNam;
_age = old;
另外,改变:
Give.setInfomation(fNamed, lNamed, theAge);
为:
giveObj.setInfomation(fNamed, lNamed, theAge);
并从static
setInfomation()
声明
一个问题是,在方法setInfomation()
中,您创建了新变量并将值分配给它们,而不是将参数分配给您的类成员。
第二个问题是,您使用setInfomation()
调用Give
- 您的类(因为它被声明为静态),而不是将其设置为非静态并使用您创建的实例调用它:{{1} }
答案 1 :(得分:0)
getInformation
方法应该由构造函数替换。this.foo = foo;
toString()
方法,它返回对象状态的String表示。例如,您的方法将返回一个String,该String包含名称字段和年龄字段中的值。System.out.println(...)
来轻松打印出来。首选
编码示例回复
您可以更好地尝试自己的编码,因为您将通过努力学到更多知识。
答案 2 :(得分:0)
首先,setInfomation(...)
不应该是静态方法,因为您正在尝试设置您创建的实例的值:
public void setInfomation(String fNam, String lNam, int old)
{
_fName = fNam;
_lName = lNam;
_age = old;
}
此外,请勿在方法_fName
中再次声明lName
,_age
和setInfomation
,因为您隐藏了声明的字段在课堂上。
最后,在main
方法中,使用您创建的实例setInformation
调用giveObj
:
giveObj.setInfomation(fNamed, lNamed, theAge);