this关键字---》2

三.this的用法:

1.在构造器中调用另一个构造器
(注意:该语句要在第一条,只能在构造器中使用)
2.调用成员方法: this.方法名(参数列表)
3.不能再类外部使用
4.用于访问类的属性,是有就近原则在的
总之,this可以用来访问属性、成员方法和构造器
5.this用来区分局部变量和属性

自己演示上述用法的代码:


public class ThisDetail01 {
    public static void main(String[] args) {
    T c = new T();
    c.f1();
    }
}


class T{


    //属性
    String name="xiao";
    int age=18;

    //构造器
    public T(){

        this("xx",16);
        System.out.println("1.调用构造器");
        System.out.println("T()构造器被调用");
        System.out.println("===============================");
    }
    public T(String name,int age){

        System.out.println("T(String name,int age)构造器被调用");
        System.out.println("name="+name+" age="+age);


    }



    //成员方法
    public void f1(){
        String name="xiaogou";
        int age=17;
        System.out.println("2.调用方法");

        System.out.println("方法f1()被调用");
        //第一种方法
        f2();
        //第二种方法:
        this.f2();
        System.out.println("===============================");
        System.out.println("3.调用属性");

        System.out.println("name="+this.name+" age="+this.age);
        System.out.println("name="+name+" age="+age);

    }
    public void f2(){
        System.out.println("方法f2()被调用");
    }
}


如图,若不将调用构造器的语句放在方法的第一条,就会报错

关于我上次的疑问:

进一步理解
这个两个name 应该都是形参(局部变量)中的name,根据就近原则,和属性中的name 没有关系

一个对象,对应一个类,this在类中的操作就相当于是在给对象操作,也就是:对象是类的实例

练习:
定义Person5类,用compareTo方法比较两者name和age是否相等,用TestPerson类演示

public class TestPerson {
    public static void main(String[] args) {
        Person5 p1=new Person5("a",10);
        Person5 p2=new Person5("a",10);
        System.out.println("p1和p2比较的结果  "+p1.compareTo(p2));
    }
}



class Person5{
    String name;
    int age;

    public Person5(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public  boolean compareTo(Person5 p){
        return this.name.equals(p.name)&&(this.age==p.age);
    }
}

public boolean compareTo(Person5 p){ return this.name.equals(p.name)&&(this.age==p.age); } }
返回值是boolean类型,可以用return来判断
this指的是p1的,p指的是p2的,调用p1对象的compareTo方法来进行比较

posted @   f-52Hertz  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示