java构造方法的问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 08:46:59
class Producer
{
...
public Producer(Q q)
{
this.q=q;
}
...
}
这个问题我一直不大理解为什么构造方法每次都要写this.q=q;
到底是什么意思啊,他是怎么赋值的,不写有什么关系,作用是什么
最好说详细简单点,因为这个非常简单的问题我总是不能理解
具体点,你站在理解的角度当然可以这么说啊

这是一个传参的构造方法。而楼主给出的这个构造方法实现的是把类里面的参数q赋值为传进去的q.
当然你也可以写一个传多个参数的购造方法如
public Producer(Q q,P p){
this.q=q;
this,p=p;
}
当你new 一个Producer时,就可以传两个参数进去,就不需要赋值 了
不知道这么说楼主明不明白

当然你不一定在构造方法里这么写。你也可以这样
把传入的参数处理后再赋值如
public Producer(Q q)
{
this.q=q*2;
}

是为了防止混淆:
如果你自己的类里声明了2个变量name和age,然后 你的构造函数的用到的参数名正好是name和age,用this指针表示该实例的属性
class A{
private String name;
private int age;

public A(String name,age){
this.name = name;
this.age = age
}
}

这有一定的区别,this.q是调的程序的成员变量,而public Producer(Q q) 里的q是一个局部的,那么this.q=q它是给成员变量赋值。也就是说为了区分开两个不同的q,当然如果它们有不同的名字是没有别要加this的。

只是工具