ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java this 关键字

2022-05-09 03:31:07  阅读:177  来源: 互联网

标签:Java name Person age 关键字 higth byte public


Java this

关键字 this 指对象本身,只能在类中使用。

Python基础的理解为self就行了。

作用

  1. 可以访问本类的属性、方法、构造器
  2. 区分当前类属性和局部变量

访问属性

class ... {
    public static void main (String[] args) {
        Person mike = new Person("Mike", (byte)18, 85.6);
    }
}

class Person {
    this.name;
    this.age;
    this.higth;
    // 构造器
    public Person (String name, byte age, double higth) {
        this.name = name;
        this.age = age;
        this.higth = higth;
    }
}

this指向的就是调用它的对象的内存地址

在构造器中使用this.name = name 你可以理解为mike.name = name

变量名mike也是指向对象的内存地址,而this是哪个对象调用它,它就指向那个对象的内存地址,也可以说this就是对象本身。

查看哈希Code值

每个对象的hashCode值,都是唯一的,如果hashCode值一样,说明是同一个对象

现在利用hashCode值确认this是否是指向当前对象的

class ... {
    public static void main (String[] args) {
        Person mike = new Person("Mike", (byte)18, 85.6);
        System.out.println(mike.name + mike.hashCode());
        Person tony = new Person("Tony", (byte)30, 70.2);
        System.out.println(tony.name + tony.hashCode());
    }
}

class Person {
    this.name;
    this.age;
    this.higth;
    // 构造器
    public Person (String name, byte age, double higth) {
        this.name = name;
        this.age = age;
        this.higth = higth;
        System.out.println(this.name + this.hashCode());
    }
}

访问方法

语法this.方法名 (形参列表);

class ... {
    public static void main (String[] args) {
        Person mike = new Person("Mike", (byte)18, 85.6);
    }
}

class Person {
    this.name;
    this.age;
    this.higth;
    // 构造器
    public Person (String name, byte age, double higth) {
        this.name = name;
        this.age = age;
        this.higth = higth;
    }
    // 走路方法
    public void walk () {
        
    }
    // 爬山方法
    public void climb () {
        // 调用走路方法
        this.walk();
    }
}

访问构造器

语法this(参数列表)

访问构造器的语句只能在构造器中使用,即在一个构造器中访问另外一个构造器,且只能放在这个构造器中的第一条语句

class ... {
    public static void main (String[] args) {
        Person mike = new Person("Mike", (byte)18, 85.6);
    }
}

class Person {
    this.name;
    this.age;
    this.higth;
    // 构造器
    public Person (String name, byte age, double higth) {
        this.name = name;
        this.age = age;
        this.higth = higth;
    }
    // 无参构造器
    public Person () {
        this("张三", (byte)18, 60);
    }
}

标签:Java,name,Person,age,关键字,higth,byte,public
来源: https://www.cnblogs.com/jwyqn/p/16247787.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有