1、使用this调用本类中的属性

 class Person{
private String name;
private int age;
public Person(String name,int age){
name=name;
age=age;
}
public String getInfo(){
return "姓名: "+name+"年龄: "+age;
}
} public class ThisDemo{
public static void main(String[] args)
{
Person per1=new Person("张三",33);
System.out.println(per1.getInfo());
}
}

上述结果说明:现在的构造方法并不能成功把传递进去的值赋值给类中的属性。也就是说,在赋值时属性并不是明确地被指出。实际上name=name;age=age;都是构造方法中的参数。

 class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public String getInfo(){
return "姓名: "+name+"年龄: "+age;
}
} public class ThisDemo{
public static void main(String[] args)
{
Person per1=new Person("张三",33);
System.out.println(per1.getInfo());
}
}

2、使用this调用构造方法

 class Person{
private String name;
private int age; public Person()
{
System.out.println("一个新的Person对象被实例化。 ");
} public Person(String name,int age)
{
this();
this.name=name;
this.age=age;
} public String getInfo(){
return "姓名: "+name+"年龄: "+age;
}
} public class ThisDemo{
public static void main(String[] args)
{
Person per1=new Person("张三",33);
System.out.println(per1.getInfo());
}
}

 class Person{
private String name;
private int age; public Person()
{
System.out.println("一个新的Person对象被实例化。 ");
} public Person(String name,int age)
{
//this();
this.name=name;
this.age=age;
} public String getInfo(){
return "姓名: "+name+"年龄: "+age;
}
} public class ThisDemo{
public static void main(String[] args)
{
Person per1=new Person("张三",33);
System.out.println(per1.getInfo());
}
}

 class Person{
private String name;
private int age; public Person()
{
System.out.println("一个新的Person对象被实例化。 ");
} public Person(String name,int age)
{
//this();
this.name=name;
this.age=age;
this();
} public String getInfo(){
return "姓名: "+name+"年龄: "+age;
}
} public class ThisDemo{
public static void main(String[] args)
{
Person per1=new Person("张三",33);
System.out.println(per1.getInfo());
}
}

说明构造方法是在实例化对象时被自动调用的,也就是说在类中的所有方法中,只有构造方法是被优先调用的,所以使用this调用构造方法必须也只能放在构造方法的第一行。

 class Person{
private String name;
private int age; public Person()
{
this.("xh",20);
System.out.println("一个新的Person对象被实例化。 ");
} public Person(String name,int age)
{
//this();
this.name=name;
this.age=age;
this();
} public String getInfo(){
return "姓名: "+name+"年龄: "+age;
}
} public class ThisDemo{
public static void main(String[] args)
{
Person per1=new Person("张三",33);
System.out.println(per1.getInfo());
}
}

说明this调用构造方法时一定要留一个构造方法作为出口,即程序中至少存在一个构造方法不使用this调用其他构造方法。

3、this表示当前对象

 class Person{
public String getInfo(){
System.out.println("Person类: "+this);
return null;
}
} public class ThisDemo{
public static void main(String[] args)
{
Person per1=new Person();
Person per2=new Person();
System.out.println("main: "+per1);
per1.getInfo(); System.out.println("main: "+per2);
per2.getInfo();
}
}

随机推荐

  1. C和指针 3.9作用域、存储类型示例

    ; extern int b; static int c; int d( int e ) { ; register int b; ; extern int a; ... { int e; int a; ...

  2. win7系统电脑连接小米蓝牙音箱

    一.买好蓝牙适配器,插到电脑上. 二.右下角工具栏找到蓝牙图标 三.右键这个图标,选择'显示Bluetooth设备' 四.找到小米蓝牙音箱 'NDZ-030-AA' 五.双击打开它,然后选择'服务'选 ...

  3. ueditor集成自己的ImageServer时出现错误的原因分析

    1.场景:应用是一个独立的站点,ImageServer是一个独立的站点,因此存在跨域的问题. 2.遇到的详细错误“网络链接错误,请检查配置后重试!” 我使用uploadify测试是没问题的.使用ued ...

  4. oracle.jbo.JboException: JBO-29000: JBO-29000: Bad version number in .class file

    我在本地run Page的时候报以下错误. oracle.jbo.JboException: JBO-29000: JBO-29000: Bad version number in .class fi ...

  5. ZooKeeper学习第八期——ZooKeeper伸缩性

    一.ZooKeeper中Observer 1.1 ZooKeeper角色 经过前面的介绍,我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower.Leader可以接受 ...

  6. Random()方法的使用

    import java.util.*;public class RandomTest { public static void main(String[] args) {  double i = Ma ...

  7. 20135223/20135234/20135229小组——亚博 Arduino智能小车实践报告

    实验名称:Arduino智能小车组装和综合测试 实验小组成员:20135223何伟钦 20135234马启扬 20135229吕松鸿 实验日期:2015.10.27—2015.11.3 实验时长:24 ...

  8. Convert和Parse对null值处理的区别

    类型的转换在日常的变成中是经常被用到的,我们最常用的类型转换的方法就是Convert和Parse, 下面来说一下这两者null值处理的区别. int i1 = Convert.ToInt32(null ...

  9. 微软office web apps 服务器搭建之在线文档预览(一)

    office web apps安装 系统要求为Windows Server 2012, 注意:转换文档需要两台服务器,一台为转换server,另外一台为域控server.(至于为什么要两台,这个请自行 ...

  10. IIS7 IIS7.5 配置备份

    IIS 7 提供了一个新的命令行工具 Appcmd.exe,可以使用该工具来配置和查询 Web 服务器上的对象,并以文本或 XML 格式返回输出. IIS 备份还原命令如下: 开始-运行-CMD 进入 ...