我是Java的新手,并搜索了以前提出的问题,这些问题对我的问题没有帮助......
如何将int变量age和String名称从main类传递给Person类?
package engineers;
import java.util.Scanner;
public class Engineers {
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in); //declaration and ssignment of scanner
System.out.println("Enter name: "); //name prompt
String name = scan.next(); //reads name input from user
System.out.println("Enter age: "); //age prompt
int age = scan.nextInt(); //reads age input from user
System.out.println("Pay check amount: ");
double salary = scan.nextDouble();
Person person = new Person();
}
private static class Person {
/**
* A default constructor
*/
public Person() {
}
/**
* method for displaying the computation result
*/
double avgSalary = 40000 * Math.sqrt(Math.exp(0.04295 * age + 0.141) );
public void showData(int age, double pay){
System.out.printf( "%s earns $%4.3f for age %3d.\n", name, (pay*Math.sqrt(age)*.15), age);
}//end method showData
}
}
答案 0 :(得分:3)
你应该像这样使用Person构造函数:
public Person(int age, String name) {
this.age = age;
this.name = name;
}
在构造函数之前在Person类中添加两个字段:
private int age;
private String name;
然后我假设你需要在person类中使用这个变量,为了做到这一点,你可以这样做:
double avgSalary = 40000 * Math.sqrt(Math.exp(0.04295 * this.age + 0.141) );
引用您的变量:
public void showData(){
System.out.printf( "%s earns $%4.3f for age %3d.\n", this.name, (pay*Math.sqrt(this.age)*.15), this.age);
}//end method showData
Finnaly,您需要实例化您的Person对象才能使用它:
Person p = new Person(name, age);
我还建议(因为你正在学习java),要理解getter / setter和构造函数方法之间的区别:Setter methods or constructors
答案 1 :(得分:0)
你的意思是这样的吗?
int age;
String name;
class Person(int age, String name) {
this.age = age;
this.name = name;
}
或(和)
void setAge(int age) {
this.age = age;
}
void setName(String name) {
this.name = name;
}
答案 2 :(得分:0)
您可能希望使用任何参数定义构造函数,而另一个类可能需要最基本的功能。
Person
的费用将使用姓名和年龄进行初始化(即使最好存储出生日期并根据当前日期计算年龄)。
为此,您需要班级Person
看起来像这样:
public class Person{
private String name;
private Date birthdate;
//Constructor method
public Person(String n, Date bd){
name=n;
birthdate=bd;
}
//Other methods
}
在main()
方法中,您可以在获得所需内容后创建新的Person
,如下所示:
Person p = new(name, date);