zoukankan      html  css  js  c++  java
  • this keyword details

    学生类:
    package com.itheima_07;
    /*
     * 学生类
     * 
     * 起名字我们要求做到见名知意。
     * 而我们现在的代码中的n和a就没有做到见名知意,所以我要改进。
     * 
     * 如果有局部变量名和成员变量名相同,在局部使用的时候,采用的是就近的原则。
     * 
     * 我们有没有办法把局部变量的name赋值给成员变量的name呢?
     * 有。
     * 
     * 什么办法呢?
     *         用this关键字就可以解决这个问题
     * 
     * this:代表所在类的对象引用
     *         方法被哪个对象调用,this就代表那个对象
     * 
     * 使用场景:
     *         局部变量隐藏成员变量
     */
    public class Student {
        private String name;
        private int age;
        
        public void setName(String name) { //"林青霞"
            //name = name;
            this.name = name;
        }
        
        public String getName() {
            return name;
        }
        
        public void setAge(int age) {
            //age = age;
            this.age = age;
        }
        
        public int getAge() {
            return age;
        }
    }
    package com.itheima_07;
    /*
     * 学生类的测试类
     */
    public class StudentDemo {
        public static void main(String[] args) {
            //创建对象
            Student s = new Student();
            System.out.println(s.getName()+"---"+s.getAge());
            
            s.setName("林青霞");
            s.setAge(28);
            System.out.println(s.getName()+"---"+s.getAge());
        }
    }

    首先setXxx和getXxx方法是为了数据的安全性,其次为了让名字做到见名知意,将a改成了age,n改成了name。输出结果相当于没有对name或者age赋值,这是因为在setName()和setAge()中的name和age都是局部变量,而不是让局部变量的值赋值给了这个类的成员变量,所以为了解决这个问题这里引入了this关键字就彻底解决了这个问题。this..name = name;因为this代表所在类的对象引用,所以this.name就是成员变量的name,而后面的name采用就近原则指的是局部变量的name。s来调用setName()方法,this就代表这个s。使用场景就是局部变量隐藏了成员变量。

  • 相关阅读:
    oracle的根容器下新建pdb容器及本地用户
    oracle监听配置与防火墙问题
    oracle问题:ORA-09817及解决办法
    Oracle:Ora-01652无法通过128(在temp表空间中)扩展temp段的过程-解决步骤
    oracle:ORA-14765建索引阻塞创建分区及处理步骤
    oracle-组合索引字段位置与查询效率之间的关系
    hbase的split策略和预分区
    启动hbase后hmaster自动关闭
    hive一级分区、二级分区、动态分区
    hive beeline连接和交互shell连接
  • 原文地址:https://www.cnblogs.com/lzp123456-/p/9739674.html
Copyright © 2011-2022 走看看