黑马程序员技术交流社区
标题:
thisi语句,构造函数之间的调用。
[打印本页]
作者:
张学永
时间:
2012-11-14 08:33
标题:
thisi语句,构造函数之间的调用。
本帖最后由 张学永 于 2012-11-14 13:49 编辑
我知道构造函数之间的调用是this(),或者this(参数列表)的格式,但是不太清楚什么时候会这么用呢?什么时候会用的构造函数之间的互相调用呢,求解?
作者:
王震阳老师
时间:
2012-11-14 08:40
当类中的函数被另一个类调用的时候会用到。
作者:
李桐
时间:
2012-11-14 09:01
1、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
2、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this
3、在函数中,需要引用该函所属类的当前对象时候,直接用this。
作者:
刘菲
时间:
2012-11-14 09:09
1.首先我觉得应该是本类构造函数内部调用时用this语句,而在子类调用父类的构造函数时用super语句。
2.当本类中构造函数内部定义的方法,被本类中的其它方法所共用时,这时为了提高代码的可重用性,以及代码的简练,可以进行this语句的调用。
3.要注意,this语句只能定义在构造函数的第一行,因为初始化要先执行。
4.以上只是我个人的理解,希望可以帮到楼主。
作者:
聽聽我dē❤
时间:
2012-11-14 09:43
1.构造函数可以通过this来调用。
2.this的调用必须是在函数中的第一句
3.this只能用在构造函数中,并且是在函数中的第一句。
4.局部变量可以与成员标量重名,哪个对用调用方法,this就在哪个方法中用。(引用那个对象)
5.在一个方法中我们直接使用变量名形式访问一个变量,优先寻找局部变量,没有局部变量时,自动加上this,找成员变量。
6.如果使用this。变量名,形式,那么无论有没有局部变量,都会找成员变量,哪个对象调用当前方法,就找哪个对象的变量。
7.在一个方法中可以使用this访问调用该方法的对象,可以当作实参传入的另一个方法。
class ArgsTransferDemo {
public static void main(String[] args){
int x = 5;
fun(x);
System.out.println(x);
Person p = new Person();
p.name = "姓名1";
fun(p);
System.out.println(p.name);
}
static void fun(int x){
x = 10;
}
static void fun(Person p){
p.name = "姓名2";
}
}
class Person {
String name;
}
作者:
聽聽我dē❤
时间:
2012-11-14 09:44
构造方法是在产生对象时被java系统自动调用的,我们不能在程序中像调用其他方法一样去调用构造方法(必须通过关键词new自动调用它)。但我们可以在一个构造方法里调用其他重载的构造方法,不是用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法。例如:
public class Person{
String name;
int age;
public Person(String name){
this.name = name;
}
public Person(String name,int age){
this(name);
this.age = age;
}
}
作者:
刘腾
时间:
2012-11-14 10:37
本帖最后由 刘腾 于 2012-11-14 10:39 编辑
//以视频中的例子为例子吧
public class Person
{
private String name;
private int age;
Person(String name)
{
this.name=name;
}
/*这是不使用构造函数的调用
Person(String name,int age)
{
this.name=name;
this.age=age;
}
*/
//这是使用构造函数的调用
Person(String name,int age)
{
this(name);/*这个地方之所以使用构造函数的调用是因为this.name=name这个语句已经有函数使用,并封装完了,
我们直接拿来用就可以了,所以使用到了函数的调用,我个人的理解是this()语句的使用提高了代码
的复用性,不知道这样的解释能否消除你心中的疑惑*/
this.age=age;
}
public static void main(String[] args)
{
Person p=new Person("lisi",20);
}
//如果还是不明白,建议看下毕老师视频05天的最后那个,“this关键字在构造函数中的调用”。over
}
复制代码
作者:
陈军
时间:
2012-11-14 13:02
记住一点:在同一个类用this调用构造函数的理由。其实是为了提高代码的复用性。从而简化书写。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2