zoukankan      html  css  js  c++  java
  • 类和对象系列教材 (五)- 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

  • 相关阅读:
    Linux下判断字符串长度
    Linux下使用xargs得到字符串作为参数进行输出、awk得到字符串作为参数进行输出
    Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开
    Linux下使用split按行数进行切割
    Maven设置snapshot无法在远程仓库下载的问题解决
    Intellij IDEA自动生成serialVersionUID
    Spring中@Value用法收集
    Http报头Accept与Content-Type的区别(转)
    Linux下Shell的for循环语句
    Shell脚本中的分号使用
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615573.html
Copyright © 2011-2022 走看看