一、认识this
package com.pyk; //this //定义一个”人“类 public class Person { String name;//属性 //空构造器 public Person() { } //重载构造器 public Person(String s) { name=s; } //定义一个“睡觉”的方法 public void sleep() { //对象调用此方法,this便指当前对象 System.out.println(this.name+"在睡觉"); } public static void main(String[] args) { Person zs=new Person("张三"); Person ls=new Person("李四"); zs.sleep(); ls.sleep(); } }
二、this避免就近原则
package com.pyk; //this //定义一个”人“类 public class Person { //属性 int num; //空构造器 public Person() { } //有参构造器 public Person(int a) { num=a; } //方法 public void eat() { int num=1000;//方法内部中的定义的局部变量不小心与属性重名 System.out.println("我喜欢的水果有"+num+"种");//则发生就近原则,此处age指的是离它最近的age(局部变量的age) System.out.println("我喜欢的水果有"+this.num+"种");//避免就近原则,加上过关键字this } public static void main(String[] args) { Person p =new Person(5); p.eat(); } }
三、this修饰属性
package com.pyk; //this //定义一个”人“类 public class Person { //属性 int age; String name; double heigth; //空构造器 public Person() { } //有参构造器 public Person(String name,int age,double heigth) { //this修饰属性 this.age=age; name=name;//没有用this修饰,此处name无法进行赋值,因此最后为系统默认值null this.heigth=heigth; } //方法 public void grxx() { System.out.println("我叫"+name+",今年"+age+"岁"+",身高为"+heigth+"cm"); } public static void main(String[] args) { Person p =new Person("张三",18,180.7); p.grxx(); } }
四、this修饰方法
package com.pyk; //this //定义一个”人“类 public class Person { //this修饰方法 public void play() { //play方法中有部分与plays方法重复,则可以this.plays()来进行引用 this.plays();//new的一个p对象调用play方法的时候,此处this指的就是当前的p对象,因此先在play方法里面调用plays方法,再执行play方法后面的(this可省略不写) System.out.println("我喜欢跑步"); System.out.println("我喜欢打乒乓球"); } public void plays() { System.out.println("我喜欢打篮球"); System.out.println("我喜欢打羽毛球"); } public static void main(String[] args) { Person p =new Person(); p.play(); } }
五、this修饰构造器
package com.pyk; //this //定义一个”人“类 public class Person { //属性 String name; int age; //this修饰构造器 //同一个类中的构造器可以互相用this调用,注意:this修饰构造器必须放在第一行 //空构造器 public Person() { } //有参构造器 public Person(String name,int age) { this(name);//调用一个参数的构造器 this.age=age; } public Person(String name) { this.name=name; } public void zwjs() { System.out.println("我叫"+name+"今年"+age+"岁"); } public static void main(String[] args) { Person p =new Person("张三",18); p.zwjs(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)