• 类和对象系列教材 (五)- Java 中的this 是什么意思?


    this这个关键字,相当于普通话里的“” 

    小明说 “我吃了” 这个时候,“” 代表小明 
    小红说 “我吃了” 这个时候,“” 代表小红 
    ""代表当前人物 

    this这个关键字,相当于普通话里的“” 
    this即代表当前对象

    步骤1:this代表当前对象
    步骤2:通过this访问属性
    步骤3:通过this调用其他的构造方法
    步骤4:练习-构造方法(this)
    步骤5:答案-构造方法(this)

    步骤 1 : this代表当前对象

    this代表当前对象

    public class Hero {

         

        String name; //姓名

         

        float hp; //血量

         

        float armor; //护甲

         

        int moveSpeed; //移动速度

        //打印内存中的虚拟地址

        public void showAddressInMemory(){

            System.out.println("打印this看到的虚拟地址:"+this);

        }

         

        public static void main(String[] args) {

            Hero garen =  new Hero();

            garen.name = "盖伦";

            //直接打印对象,会显示该对象在内存中的虚拟地址

            //格式:Hero@c17164 c17164即虚拟地址,每次执行,得到的地址不一定一样

            System.out.println("打印对象看到的虚拟地址:"+garen);

            //调用showAddressInMemory,打印该对象的this,显示相同的虚拟地址

            garen.showAddressInMemory();

             

            Hero teemo =  new Hero();

            teemo.name = "提莫";

            System.out.println("打印对象看到的虚拟地址:"+teemo);

            teemo.showAddressInMemory();

        }   

         

    }

    步骤 2 : 通过this访问属性

    通过this关键字访问对象的属性

    public class Hero {

         

        String name; //姓名

         

        float hp; //血量

         

        float armor; //护甲

         

        int moveSpeed; //移动速度

        //参数名和属性名一样

        //在方法体中,只能访问到参数name

        public void setName1(String name){

            name = name;

        }

         

        //为了避免setName1中的问题,参数名不得不使用其他变量名

        public void setName2(String heroName){

            name = heroName;

        }

         

        //通过this访问属性

        public void setName3(String name){

            //name代表的是参数name

            //this.name代表的是属性name

            this.name = name;

        }

         

        public static void main(String[] args) {

            Hero  h =new Hero();

             

            h.setName1("teemo");

            System.out.println(h.name);

             

            h.setName2("garen");

            System.out.println(h.name);     

             

            h.setName3("死歌");

            System.out.println(h.name);     

        }

         

    }

    步骤 3 : 通过this调用其他的构造方法

    如果要在一个构造方法中,调用另一个构造方法,可以使用this()

    public class Hero {

            

        String name; //姓名

            

        float hp; //血量

            

        float armor; //护甲

            

        int moveSpeed; //移动速度

            

        //带一个参数的构造方法

        public Hero(String name){

            System.out.println("一个参数的构造方法");

            this.name = name;

        }

          

        //带两个参数的构造方法

        public Hero(String name,float hp){

            this(name); 

            System.out.println("两个参数的构造方法");

            this.hp = hp;

        }

        public static void main(String[] args) {

            Hero teemo =  new Hero("提莫",383);

             

            System.out.println(teemo.name);

             

        }

          

    }


    更多内容,点击了解: https://how2j.cn/k/class-object/class-object-this/294.html

  • 相关阅读:
    项目的搭建步骤:
    MySQL复习笔记记录
    记录搭建SSM框架中常用到的功能:(监听器)、过滤器和拦截器 以及相关的拓展内容的学习记录
    为什么要配置spring**.xml或者applicationContext.xml --学习笔记
    java8 Lambda表达式学习笔记
    java多线程高并发学习从零开始——初识volatile关键字
    java多线程高并发学习从零开始——新建线程
    JVM工作机制以及异常处理之内存溢出OOM(OutOfMemoryError)/SOF(StackOverflowError)--Java学习记录2——更新中
    记录使用idea构建出现错误:failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar——Java学习记录3
    Oracle创建用户和表空间的步骤 和 导入dmp文件的方法 —— 数据库学习
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615574.html
Copyright © 2020-2023  润新知