首先这是源代码:
1 class Employee 2 { 3 //定义一个静态方法 4 private static int nextId=1; 5 6 private String name; 7 private double salary; 8 private int id; 9 10 public Employee(String n,double s,int i) 11 { 12 name=n; 13 salary=s; 14 id=i; 15 16 } 17 public Employee(String string, int i) { 18 // TODO 自动生成的构造函数存根 19 } 20 public String getName() 21 { 22 return name; 23 } 24 public double getSalary() { 25 return salary; 26 } 27 public int getId() 28 { 29 return id; 30 } 31 public void setId() 32 { 33 id=nextId; 34 nextId++; 35 } 36 public static void main(String[] args) 37 { 38 Employee e=new Employee("Harry harcker",80000); 39 System.out.print(e.getName()+" "+e.getSalary()); 40 41 }
我是这样理解的:首先,因为return是返回方法的调用者,在System.out.print(e.getName()+" "e.getSalary());中,getName()是一个返回name的方法,此时,该方法的调用者是对象e,因为该对象被初始化了,里头有实际参数:“Harry karcker”,在
return的作用下,进行参数类型匹配,并在System类的作用在屏幕上输出对象e中的实参“Harry harcker”,这样理解是否正确
你确定你这个函数能够打印出salary的值吗?
public Employee(String string, int i) { }这个构造函数并没有为属性数值呀,如何取出?
return是返回方法所计算后的值,如getName返回string类型 数据是name
再一个e是Employee的一个实例,不是调用者. 这个调用者在你这个代码是main函数
谁调用谁就是调用者
基础太差.这个跟JAVA都没关系.是因为没有 "表达式"这个概念,买本入门教科书从头看到尾.不然还会有跟多这种不知所谓的问题.
..首先. 你实例化对象的时候传了两个参数.
Employee e=new Employee("Harry harcker",80000);
对应的构造函数是下面这个
public Employee(String string, int i) { // TODO 自动生成的构造函数存根 }
因为你没有做任何操作.
所以name 和 salary 的值是空的. 所以你返回的值也是空的. 所以你打印不出任何值.
然后e.getName() 和 e.getSalary() 是这样的.
e 是Employee类的实例. 实例里 e 里面有 name的值, salary的值. 有getName(), getSalary()方法等等。
然后getName()方法体里是return name.
所以e.getName() 返回的就是 实例e的name值.
如果你在public Employee(String string, int i) { // TODO 自动生成的构造函数存根 }构造方法中进行初始化成员或者通过setxx的方法进行赋值的话,可以通过getxxx获取return返回的值。return就是将内容返回给调用者,谁调用它谁就可以取到它的值。