看到成员变量和局部变量同名这个知识点的时候一开始有点懵逼,想了一下其实特别简单。

先来看一个简单的代码。

首先我定义了一个Person类。

public classPerson {private int age=1000;//定义成员变量,年龄为1000

public void setAge(intage) {

age=age;

System.out.println("方法内的年龄"+age);

}public voidsayHello() {

System.out.println("我的年龄是"+age+".");

}

}

然后在主函数里面创建对象并输出。

Person p=newPerson();

p.setAge(20);

p.sayHello();

输出结果是什么?并不是我们想象的我的年龄是20,而是下面这样:

//方法内的年龄20//我的年龄是1000.

想一下其实就很容易理解。

一句话,如果不同名,那么方法内的变量名代表成员变量;如果同名,那么方法内的变量名就只表示局部变量了,和成员变量一毛钱关系都没有了。

所以,首先当我们创建了一个Person对象p,在创建对象的时候就已经完成了成员变量的初始化了。成员变量age的初始值是1000。

当我们p.setAge(20)的时候,其实这个20只在setAge这个方法内起作用,所以输出了方法内年龄20,执行完这句话后,20就被销毁了。

然后执行sayHello,它里面的age代表的是成员变量的值,所以依旧是1000。

到这里如果还是不能理解,可以自己写代码看输出结果体会下。

那么,当同名的时候,我们就是要让这个变量名表示成员变量,有没有办法呢?

那就要说到this关键字了。我们把Person类改成这样:

public classPerson {private int age=1000;public void setAge(intage) {this.age=age;

System.out.println("方法内的年龄"+age);

}public voidsayHello() {

System.out.println("我的年龄是"+age+".");

}

}

再运行代码,发现代码运行结果变成了下面这样:

//方法内的年龄20//我的年龄是20.

this表示的是当前对象。

this.age在这里具体表示p对象的age(即p对象的成员变量age)的值是20。

不能理解的话就多写写代码就能理解了。

java变量同名_Java成员变量与局部变量同名相关推荐

  1. java子类和父类有相同成员_Java -- 父类和子类拥有同名的成员变量的情况

    Java – 父类和子类拥有同名的成员变量取值情况 参考文章 结论: 当子类的成员变量与父类同名时,若对该成员变量进行操作的方法继承于父类,则改变和获取的是父类的成员变量.若对该成员变量进行操作的方法 ...

  2. 【Java】5.3 成员变量和局部变量

    目录 成员变量 局部变量 static的标志 变量: 成员变量和局部变量 成员变量: 有static修饰:类变量,属于类本身 无static修饰:实例变量,属于实例 局部变量: 方法块里的局部变量.仅 ...

  3. 使用了未初始化的局部变量_Java 成员变量和局部变量

    通过一个简单的 demo 我们学习下 java 中成员变量和局部变量的相关知识点. Demo 说说下面代码执行打印的结果是什么? public class MainClass {public stat ...

  4. 如何理解Java的类变量、成员变量、常量、类属性、实例属性、字段(field)、成员方法、类方法

    文章目录 变量相关概念 变量/常量 类变量/静态变量 成员变量/实例变量 类属性/实例属性/对象属性 什么是 field 成员变量和类变量的区别 两个变量的生命周期不同 访问方式不同 数据存储位置不同 ...

  5. Java反射机制——获取成员变量构造函数

    2019独角兽企业重金招聘Python工程师标准>>> Java反射机制--获取成员变量&构造函数 一.成员变量是java.lang.reflect.Field的对象 1.F ...

  6. java 给static变量赋值_java static变量可以赋值吗?

    java static变量可以赋值吗? 可以赋值的.static的主要作用是静态成员,指该变量的实例在内存中之存放一次.赋值是可以随便改的. java中static关键字 static是java中非常 ...

  7. PHP 类的静态成员变量和普通成员变量对比

    有很多人可能弄不清楚,在PHP中类的静态成员变量和普通成员变量有什么区别? 1.类的静态方法只能访问静态成员变量,而不能访问非静态成员变量 2.静态成员变量不需要实例化就能访问,且访问速度快一些 3. ...

  8. python静态变量和静态方法_python的静态成员变量、实例成员变量、静态方法、类方法、实例方法...

    标签: 静态成员变量(类变量)和普通成员变量(实例变量) 静态成员变量只能通过类名.变量名获得,实例成员变量,通过该实例引用.变量名获得. 在实例对静态成员变量赋值时,实例 python是动态类型的语 ...

  9. Java:全局变量(成员变量)与局部变量

    分类细则: 变量按作用范围划分分为全局变量(成员变量)和局部变量 成员变量按调用方式划分分为实例属性与类属性 (有关实例属性与类属性的介绍见另一博文https://blog.csdn.net/Drag ...

  10. 第14天学习Java的笔记(成员变量和局部变量)

    一个对象的内存图 package Demo1302;/** 定义一个类,用来模拟"手机"事物.** 属性:品牌.价格.颜色* 行为:打电话.发短信** 对应到类中:* 成员变量(属 ...

最新文章

  1. RESTful Web 服务 - 寻址
  2. python里面的pip是什么意思_Python-pip和conda有什么区别?
  3. iptables 生效_Linux防火墙Firewall和Iptables的使用
  4. 二叉树的前序、中序、后序遍历与创建
  5. 剑指offer之判断二叉树是不是平衡二叉树
  6. OJ7627-鸡蛋的硬度【各种dp之4】
  7. android 百度地图3.0定位,Android 百度地圖 SDK v3.0.0 (二) 定位與結合方向傳感器...
  8. Linux打印介绍【转贴】
  9. 反编译Silverlight项目
  10. python界面-Python GUI 编程(Tkinter)
  11. Better-scroll的安装及使用
  12. vb.net中的换行
  13. 【逆向】Android逆向破解某APP
  14. PB12下geturl获取汉字乱码的解决
  15. js原生 在线客服功能
  16. 【c++11并不遥远】使xcode工程支持c++11特性
  17. Python网络爬虫:下载漫画的正确姿势
  18. 用Python爬取QQ音乐评论并制成词云图
  19. Jmeter把响应数据结果保存到本地文件
  20. 听音室-HIFI入门之400多张发烧碟中选出的精品

热门文章

  1. 一文详解传统金融与数字资产衍生品的区别
  2. 一文带你了解推荐系统常用模型及框架
  3. OpenCV中的图片截取和颜色通道提取
  4. HTML中长度和颜色的单位分别有哪些?
  5. 长期不使用计算机会损坏吗,电脑长时间存放不用会不会影响硬件寿命
  6. 数据结构 —— 队列
  7. 知识点:vs2017 git 操作重置、还原、挑拣对比
  8. 推荐两款外文检查语法错误和润色的软件
  9. Java Cryptography
  10. 【Python计量】statsmodels对虚拟变量进行回归