zoukankan      html  css  js  c++  java
  • Java面向对象中this关键字详解 意义+实例讲解【hot】

    this关键字

    >>>便于理解简单的定义

    this关键字可以简单的理解为,谁调用this所在的方法,this就是谁。

    类的构造函数与getter、setter方法常用到this关键字(JavaBean)
    JavaBean是一种可重用的Java组件,它可以被Applet、Servlet、SP等Java应用程序调用.也可以可视化地被Java开发工具使用。它包含属性(Properties)、方法(Methods)、事件(Events)等特性。

    public class Person {
        //==========静态属性===========
        private String name; //姓名
        private int age;     //年龄
        private String gender;  //性别
    
        //==========动态行为===========
        public void readBook(String book) {
            System.out.println("reading " + book);
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;//this.name就是上面的private String name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getGender() {
            return gender;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    }
    

    >>>官方定义(查自菜鸟教程)

    this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
    this 的用法在 Java 中大体可以分为3种:
    1.普通的直接引用
    这种就不用讲了,this 相当于是指向当前对象本身。
    2.形参与成员名字重名,用 this 来区分:

    class Person {
        private int age = 10;
        public Person(){
        System.out.println("初始化年龄:"+age);
    }
        public int GetAge(int age){
            this.age = age;
            return this.age;
        }
    }
     
    public class test1 {
        public static void main(String[] args) {
            Person Harry = new Person();
            System.out.println("Harry's age is "+Harry.GetAge(12));
        }
    }
    

    运行结果

    初始化年龄:10
    Harry's age is 12
    

    可以看到,这里 age 是 GetAge 成员方法的形参,this.age 是 Person 类的成员变量。

  • 相关阅读:
    ACM-ICPC 2018 南京赛区网络预赛
    我们
    2018 Multi-University Training Contest 7
    ACM International Collegiate Programming Contest, JUST Collegiate Programming Contest (2018)
    BZOJ1834 [ZJOI2010] network 网络扩容
    BZOJ4415 [SHOI2013] 发牌
    BZOJ1257 [CQOI2007] 余数之和sum
    BZOJ3110 [ZJOI2013] K大数查询(加强数据)
    BZOJ1406 [AHOI2007] 密码箱
    BZOJ3110 [ZJOI2013] K大数查询
  • 原文地址:https://www.cnblogs.com/BIG-BOSS-ZC/p/11807352.html
Copyright © 2011-2022 走看看