zoukankan      html  css  js  c++  java
  • 面向对象this关键字和概述和应用

    面向对象this关键字和概述和应用

     1 package thisdemo;
     2 
     3 /**
     4  * 面向对象this关键字和概述和应用
     5  *
     6  */
     7 
     8 //定义老师类
     9 class Teacher {
    10     private String name;
    11     private int age;
    12 
    13     //设置姓名值
    14     public void setName(String n){
    15         name = n;
    16     }
    17 
    18     //获取姓名值
    19     public String getName(){
    20         return name;
    21     }
    22 
    23     public void setAge(int a){
    24         age = a;
    25     }
    26 
    27     public int getAge(){
    28         return age;
    29     }
    30 
    31 }
    32 
    33 class Test{
    34     public static void main(String[] args){
    35         Teacher t = new Teacher();
    36         //给成员变量赋值
    37         t.setName("张三");
    38         t.setAge(23);
    39         //获取成员变量的值
    40         System.out.println(t.getName() + "---" + t.getAge());
    41     }
    42 }

    输出结果:

    张三---23

    修改以上案例,我们知道,给变量取名字讲究见名知意,但是对于public void setName(String n)和public void setAge(int a)中的参数a和n就没有做到见名知意,所以修改代码如下:

    1 public void setName(String name){
    2         name = name;
    3 }
    4 
    5 public void setAge(int age){
    6     age = age;
    7 }     

    输出:

     1 null---0 

    分析案例2的结果:

    因为变量的使用遵循就近原则,所以name = name; 左边对应的是形式参数的name,右边对应的也是形式参数的name,这里的意思是将自己赋值给了自己,无意义。而此时,成员变量name和age中存储的还是默认值null和0

    我们想使用的是:Student类.name = name;Java就为我们提供了一个关键字this,this代表当前类的对象引用,也就是代表当前类的一个对象

    案例三:

    1 public void setName(String name){
    2         this.name = name; 
    3     }
    4     public void setAge(int age){
    5         this.age = age; 
    6     }

    输出:

     1 张三---23 

    需要注意的是:

    1. 方法被哪个对象调用,this就代表哪个对象

    2. 什么时候使用this呢?

      解决局部变量隐藏成员变量的问题

    
    
  • 相关阅读:
    如果一切需要重学,2014年应该学哪些技术?
    LINUX 更新
    LINUX学习
    判断设备是笔记本,还是台式机
    DUILIB 实现微信气泡聊天效果
    OC学习1
    DUILIB 背景贴图
    DUILIB CDialogBuilder 使用问题
    my english dream
    oracle 函数
  • 原文地址:https://www.cnblogs.com/happy520/p/6696930.html
Copyright © 2011-2022 走看看