黑马程序员技术交流社区
标题:
求this 关键字在构造函数之间调用实例
[打印本页]
作者:
孙宁洋
时间:
2013-6-7 10:23
标题:
求this 关键字在构造函数之间调用实例
求this 关键字在构造函数之间调用实例
作者:
杜光
时间:
2013-6-7 11:03
本帖最后由 杜光 于 2013-6-7 11:05 编辑
this
1、当全局变量跟局部变量重名时,表示使用全局变量(此时this指代本类对象)
例有一类
class A
{
String name;
void setName(String name)
{
this.name = name;
}
}
复制代码
2、构造方法相互调用,此时this指代本类类名
注意this只能放在构造方法第一句
如
class B
{
String name;
B()
{
this("name");//会自动调用带String参数的构造方法
}
B(String name)
{
this.name = name;
}
}
复制代码
作者:
sweethui1
时间:
2013-6-7 16:03
this 用构造函数之间进行互相调用
this只能放在构造函数的第一行,因为初始化的动作应先执行。
例:
class person {
String name;//成员变量,实例变量
int age;
person()
{
name="";
age=0;
}
person(int age)
{
this.age=age;
}
person(String name,int age)
{
this(age);//这时没有必要再重写一次,可以用this()调用构造函数
this.name=name;
}
}
作者:
夜默
时间:
2013-6-10 10:53
楼主你好 如果帖子的问题已经解决,请把帖子的类型改为“已解决”。
作者:
月时微
时间:
2013-6-18 13:20
class Super{
private int a;
protected Super(int a)
{
this.a=a;
}
}
class Sub extends Super
{
public Sub(int a)
{
super(a);
}
public Sub()
{
this(5);
}
}
作者:
shang1jk
时间:
2013-6-18 13:48
视频里讲过, 很简单, 看下代码就能明白了.
public class Test {
public Test()
{
System.out.println("Test()");
}
public Test(int x)
{
this(); //this语句要写在构造器的第一行.
System.out.println("Test() " + x);
}
public static void main(String[] args) {
new Test();
System.out.println("===============");
new Test(4);
}
}
复制代码
作者:
孙百鑫
时间:
2013-6-22 02:03
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2