努力提高认知层次

时临孤岛图,拭目望蓬莱。 空山无人处,水流花自开。
正在加载My blog page站点
皓天舒白日,灵景耀神州。 列宅紫宫里,飞宇若云浮。 峨峨高门内,蔼蔼皆王侯。 自非攀龙客,何为歘来游。 被褐出阊阖,高步追许由。 振衣千仞冈,濯足万里流。

this关键字的作用

 

1.表示类中的属性

2.可以使用this调用本类的构造方法

3.this表示当前对象

 

1.1 this 调用本类中的属性

class Person {

private String name; // 姓名

private int age; // 年龄

public Person(String name,int age){ // 通过构造赋值

this.name = name ; // 明确表示为类中的name属性赋值

this.age = age ; // 明确表示为类中的age属性赋值

}

public String getInfo() { // 取得信息

return "姓名:" + name + ",年龄:" + age;

}

}

public class ThisDemo02 {

public static void main(String[] args) {

Person per1 = new Person("张三",33) ; // 调用构造实例化对象

System.out.println(per1.getInfo()) ; // 取得信息

}

}

 

2.1 使用this调用构造方法

避免代码重复,让构造方法之间互相调用,使用this(若干参数)的形式完成.

如果一个类中有多个构造方法的话,也可以利用this关键字互相调用。

假设现在要求不管类中有多少个构造方法,只要对象一被实例化,就必须打印一行新对象实例化的信息出来,很明显,此时如果在各个构造方法中编写此输出语句肯定不合适,所以此时就可以利用this的概念完成。

package demo0309;

public class Test1 {

public static void main(String[] args) {

Person p=new Person("呵呵呵",12); //调用有参构造

System.out.println(p.getInfo()); //输出信息

 

}

}

class Person{

private String name; //私有化姓名

private int age; //私有化年龄

public Person() { //无参构造

System.out.println("一个新的Person对象被实例化! ");

}

public Person(String name,int age) {

this(); //此处调用Person类中的无参构造方法

this.name=name;

this.age=age;

}

public String getInfo() { //取得信息

return "姓名:  "+name+" 年龄 :"+age;

}

}

使用this调用构造方法必须也只能放在构造方法的第一行。

 

 

3.1this表示当前对象java中当前对象就是指当前正在调用类中方法的对象。

class Person {

public String getInfo() {

System.out.println("Person--> " + this); // 直接打印this

return null ; // 此处返回null,为的是让语法不出错

}

}

public class ThisDemo06 {

public static void main(String[] args) {

Person per1 = new Person() ;

Person per2 = new Person() ;

System.out.println("MAIN方法 --> " + per1); // 直接打印对象

per1.getInfo() ;

System.out.println("--------------------------") ;

System.out.println("MAIN方法 --> " + per2); // 直接打印对象

per2.getInfo() ;

}

}

静态方法中不能使用this关键字

 

 

 

 

 

 

posted on 2023-01-29 19:13  远枝  阅读(84)  评论(0编辑  收藏  举报