package Zuoye; /** * this:表示当前对象的指针 * 指向当前对象,表示对当前对象的调用 * 用途: * 1、构造方法,当构造方法的名称跟类的成员变量的名称一样的时候,可以使用this代表当前对象 * 注意:当构造方法中需要其他构造方法时,可以使用this(参数列表)调用其他构造方法,但是需要位于方法体的第一行 * 2.普通方法中: * 当多个普通方法需要互相调用时,可以使用this.方法来进行调用,指的是当前对象的其他方法 * 3、调用成员变量的时候如何使用: * 当方法名的参数名称跟成员变量保持一致时,使用this.变量名称 表示的是对象的值,而使用变量名称则是参数的值 * */ public class ThisDemo { //成员变量 String name; int age; public ThisDemo(){ } //定义构造方法 public ThisDemo(String b){ System.out.println("正在实现无参调用..."); } public ThisDemo(String name,int age){ this("楠");//调用有参的构造方法,并且需要在第一行 // this("z");出错 this.name = name; this.age = age;//对应第一条 } //定义方法(对应第二条) public void eat(){ System.out.println("正在吃狗粮---"); // this.sleep(); } public void sleep(){ System.out.println("正在和想的人睡觉---"); this.eat(); } public void Student(String name){ System.out.println(this.name);//代表的对象的值 System.out.println(name);//代表参数的name } public static void main(String[] args) { ThisDemo t = new ThisDemo(); //t.eat(); t.sleep(); t.name = "顺"; t.Student("韩信"); } }
package com.rgs; public class Student extends Person{ int score; int age = 20; public Student(){ //super(); } public Student(String s){ System.out.println("正在进行参数调用..."); } public Student(String name,int age){ super(name, age);//必须放在首行 // this("s");必须放在首行,所以一个构造器中只能有他俩其中之一 this.name = name; } public void study(){ System.out.println("在学习中、、、"); } public void a(){ System.out.println(age);//20 System.out.println(super.age);//10 super.eat(); eat(); } public void eat(){ System.out.println("正在吃狗粮!"); } }
package com.rgs; public class Test { public static void main(String[] args) { Student s = new Student(); s.a(); } }