zoukankan      html  css  js  c++  java
  • [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字

    体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别;在构造函数中调用其它构造函数

    原理:

            代表的是当前对象。

            this就是所在函数的所属对象的引用。

            简单说,哪个对象调用了this关键字所在的函数,this就代表哪个对象。

    1.区别局部变量和成员变量

    内存图解:

    捕获

    说明:

    1. 程序执行到main函数时,main函数进入栈内存中的方法区,执行到Person p = new Person(“旺财”);时,在main方法区中创建一个Person类型的引用变量p
    2. 接着,在堆内存中创建一个Person类的实例,并初始化,然后调用构造函数,在栈内存中创建一个Person(String name)函数的方法区,对象一调用构造函数,构造函数的方法区中就会有一个this引用指向该对象
    3. 执行Person(String name)中的代码,把this所指向的对象进行初始化,执行完成后,Person方法区出栈
    4. 给栈中main方法区中的p赋值,使之指向this所指向的对象
    5. 执行speak方法,speak方法进入方法区,打印的是this所指向对象的name和age

    2.在构造函数中的使用

    详见 另一篇博客[java学习笔记]java语言核心----面向对象之构造函数 中的标题4:构造函数的相互调用

    3.this的应用

    只要在本类中使用本类的对象,一般都使用this关键字

    如:在Person类中增加一个比较年龄的方法

    代码:

    class Person{
        private int age;
        private String name;
        //此处省略get和set方法
        Person(String name, int age){
            this.name = name;
            thia.age = age;
        }
        //判断一个Person对象的年龄是否和调用此方法的对象的年龄相同
        public boolean campare(Person p){
          
            return this.getAge()==p.getAge();
        }
    }

  • 相关阅读:
    css样式的优先顺序
    销售基本礼仪(转)
    推神:如何让你的公众号变得性感起来?(转)
    为什么你有10年经验,但成不了专家?(转)
    一分钟区分一流公司、二流公司、三流公司(转)
    什么是销售(转)
    地暖销售(转)
    销售总监开会(转)
    销售观念+习惯(转)
    一流销售,二流销售,三流销售(转)
  • 原文地址:https://www.cnblogs.com/ma-fei/p/4872793.html
Copyright © 2011-2022 走看看