刚学习java,下面代码中的this.name=name;什么意思?

public class User{
String name;
int age;
public User (String name,int age)
{
this.name=name;
this.age=age;
public User()
{}
public viod show()
{
System.out.println(name,age);

}
public static void main(String[] args)
User user1=new User();
User user2=new User("sun",28);
System.out.println(user2.name,user2.age);
user2.show();

}
}
public User()
{}有什么用呢?

1.关于 this.name=name的问题
你会发现类中有个成员变量name ,而 括号中也有一个name ,括号中的name是参数变量。它的作用范围只在这个方法内部。 this.name=name 的意思是 将 参数name的值赋值给 本对象的成员变量name。
你可以看到这句 User user2=new User("sun",28); 创建了个对象user2, 它传进去的参数是 sum字符串,然后将这个sum字串 赋值给 user2的成员变量name,即 this.name=name。 this指本对象的意思。

2.public User()
这个如果和public User (String name,int age) 在同一级 算是构造变量,但在public User (String name,int age) 我感觉是错的,结果不知道 你试试。因为在内部的话,它算是一个方法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-12
public class User{
String name;
int age;
}
user类定义了name和age两个属性。
this指user类本身。this.name指user类的name属性。
this.name=name,右边的name是方法传进来的参数。只有方法范围内有效。
public User()是构造方法 ,用来初始化的本回答被网友采纳
第2个回答  2014-12-28
this.name=name;

后面的name是参数
this是指当前的对象。
目的就是把当前对象的name属性设置成参数的值

注意必须带有this。否则就相当于把参数name的值赋值给自己。

或者把参数名称修改为pname
name=pname;
也可以
第3个回答  2014-12-28
String name会有一个默认的值null。this.name=name是初始化,普通意思就是给它一个新的值。User user2=new User("sun",28);调用User的带参构造方法,把实参的值“sun”给了上面带参构造方法的第一个形参(String name),把name的值更新变换。
第4个回答  2014-12-28
User user2=new User("sun",28);

this.name=name;

this就代表user2,this.name=name赋值;
相当于User.name="sun";即给User的name属性赋值追问

public User()
{}有什么用呢?

追答

无参构造方法,创建的对象属性就是默认值
User user1=new User();创建对象

User1的name属性默认值就是null;
User1的age 属性默认值就是0;
可以User1.name ="小白";给属性赋值
无参构造方法 在这边没太大意义,主要在后面反射机制里会有用的

相似回答