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();
}
}