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);
             
        }
          
    }
  • 相关阅读:
    Oracle数据库的一些常用命令
    计算机网络:计算路由表下一跳
    怎样快速对二进制和十进制进行互转化——IP地址规划与设计总结
    计算机网络-以太网,局域网,城域网,广域网,互联网,因特网,万维网的区分
    Apache与Tomcat有什么关系和区别
    Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
    使用Oracle的PROFILE对用户资源限制和密码限制
    通过修改profile 来修改账号的过期时间
    解决oracle用户过期问题
    【项目】项目36
  • 原文地址:https://www.cnblogs.com/Lanht/p/12441258.html
Copyright © 2011-2022 走看看