精华内容
下载资源
问答
  • 在成员变量与局部变量重名时
    千次阅读
    2019-06-13 15:03:00

     局部变量可以和成员变量重名,不加“this”修饰时,优先使用最近的变量。

    public class Mainceshi {
        private String a = "成员变量";
    
        public void GetA() {
            String a = "局部变量";
            System.out.println(this.a);
            System.out.println(a);
        }
    
        public static void main(String[] args) {
            Mainceshi mainceshi = new Mainceshi();
            mainceshi.GetA();
        }
    }

    打印出来

    成员变量
    局部变量

     

    JAVA访问变量采用就近原则,局部变量与成员变量重名时,局部变量比较近,使用局部变量

    java采用局部优先的思想。局部变量可以和成员变量相同,使用标识符调用时,优先使用局部变量。在实例方法中出现变量名相同时,可以使用this关键字来调用。


    成员变量:就是声明为类的属性的变量。 静态变量(也叫做类变量):就是声明为静态属性的变量。 局部变量:就是方法里面声明的变量。 volatile变量:和多线程相关,用于简化同步的变量 transient变量:用于使该变量不会被持久化 final变量:基本上就是常量

     

     

    更多相关内容
  • 成员变量和局部变量 注:所有的变量没有赋值是不能使用的!!! 两者的区别: 定义的位置不同: 成员变量:定义类中成员位置的变量,称为实例变量 / 类变量,类中方法外 局部变量:定义类中方法中 ...

    成员变量和局部变量

    注:所有的变量没有赋值是不能使用的!!!
    两者的区别:
       定义的位置不同:
       		成员变量:定义在类中成员位置的变量,称为实例变量 / 类变量,在类中方法外
       		局部变量:定义在类中方法中
       	作用范围不同:
       		成员变量:本类中都可以用
       		局部变量:从定义行开始到所在的最近的代码块结束(作用域)
       	内存位置不同:
       		成员变量:位于栈内存的方法中
       		局部变量:位于堆内存的对象中
       	生命周期不同:
       		成员变量:随着对象的创建而诞生,随着对象的消失而消失
       		局部变量:随着方法进栈而诞生,随着方法出栈而消失
       	默认值不同:
       		成员变量:有默认值,和数组元素的默认值一样
       		        引用数据类型:  null
       		        基本数据类型: 
       		              整数类型: 0
       		              小数类型: 0.0
       		              字符类型:空字符 即 '\u0000'
       		              布尔类型:false
       		 局部变量:没有默认值,不进行手动赋值就没法使用
    

    关于重名问题:

    1. 局部变量与局部变量之间,在重合作用于方位内不能重名;
    2. 成员变量与成员变量之间不能重名;
    3. 成员变量与局部变量之间可以重名,但是调用时优先使用局部变量,
       实例使用中,可以用this关键字来区分成员变量和局部变量。   		    
    
    展开全文
  • 全局变量和局部变量重名

    千次阅读 2022-03-26 15:34:47
    局部变量和全局变量重名的时候,局部变量在其定义域的优先级更高,全局变量会自动被忽视,如果我们想要用到全局变量,我们可以全局变量前加上::作用域运算符,因为C++里定义当缺省左侧对象默认为全局变量 ...

    当局部变量和全局变量重名的时候,局部变量在其定义域的优先级更高,全局变量会自动被忽视,如果我们想要用到全局变量,我们可以在全局变量前加上::作用域运算符,因为C++里定义当缺省左侧对象时默认为全局变量

    代码:

    #include<iostream>

    using namespace std;

    int x=100;

    int main(){

    int x=10;

    cout<<x<<endl;//输出为10

    cout<<::x;//输出为100

    }

    展开全文
  • //this 关键字:当局部变量和成员变量重名时,成员变量就会被隐藏,这是如果想在成员方法中使用成员变量,必须使用this 关键字 public class Fruit { public String color = "绿色"; public void harveat() { ...
    package Myfirst_package;
    //this 关键字:当局部变量和成员变量重名时,成员变量就会被隐藏,这是如果想在成员方法中使用成员变量,必须使用this 关键字
    public class Fruit {
    	public String color = "绿色";
    	public void harveat() {
    		String color = "红色";
    		System.out.println("水果是"+color+"的");
    		System.out.println("水果已经收获");
    		System.out.println("水果是"+this.color+"的");   //使用成员变量,使用this关键字
    	}
    	public static void main(String[] args) {
    		Fruit obj = new Fruit();  //创建Fruit的对象obj
    		obj.harveat();
    	}
    }
    结果:
    水果是红色的
    水果已经收获
    水果是绿色的
    
    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼深度解析:C语言中有“作用域”的概念。譬如全局变量作用域为整个文件(准确的说是定义该全局变量的文件中该变量定义/声明之后的部分。...也就是说局部变量的作用域其...
  • 全局变量 定义类中的变量叫做全局变量 ...JAVA中的全局变量和局部变量是允许重名的,但是如果方法体内使用该重名变量局部变量会覆盖全局变量,出了方法,局部变量被销毁,只剩下全局变量。 ...
  • 3.局部变量能否和成员变量重名

    千次阅读 2019-05-13 21:22:43
    可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量 B.可以,这时可用“local”关键字来指向局部变量 C.不能,局部变量不能与成员变量重名 D.不能,一个类中不能有重名变量,不管是成员变量...
  • 局部变量可以全局变量同名,函数内引用这个变量,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,同一个函数内可以定义多个同名的局部变量,比如两个循环体内都定义一个同名的局部变量,...
  • 局部变量能否和全局变量重名

    千次阅读 2019-09-16 09:53:33
     局部变量可以全局变量同名,函数内引用这个变量,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,同一个函数内可以定义多个同名的局部变量,比如两个循环体内都定义一个同名的局部变量...
  • 参考文章:全局变量与局部变量优先级调用的问题—C/C++程序基础(二)
  • 代码中的实例变量、类变量、常量都属于成员变量
  • 问题:异常崩溃没有任何征兆。方法:局部变量换为成员变量。
  • c学习--局部变量和全局变量重名52

    千次阅读 2021-09-02 16:42:12
    函数内部定义的局部变量与全局变量重名时,函数使用该变量的时候会以局部变量覆盖全局变量。也就是只有局部变量会起效果。此定义域中赋值等操作都不会使用到全局变量。 main函数或其他函数里定义了局部变量...
  • C++中局部变量可否全局变量重名

    千次阅读 2019-01-19 14:11:31
    此问题研究的是变量的作用域的问题。一个声明将一个名字引进一个作用域;局部变量(通常函数中定义)的作用域是...全局变量重名局部变量可以屏蔽全局变量,如果想块内使用全局变量需要通过作用域解析运算符...
  • 父子类的继承关系中,如果成员变量重名,则创建子类对象,访问有两种方式: 直接通过子类对象访问成员变量 规则:等号左边谁,就优先用谁,没有则向上找 间接通过成员方法访问成员变量 规则:该方
  • 局部变量能否和全局变量重名

    千次阅读 2019-03-09 19:46:56
    局部变量可以全局变量同名,函数内引用这个变量,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,同一个函数内可以定义多个同名的局部变量,比如两个循环体内都定义一个同名的局部变量,...
  • Java成员变量与局部变量同名

    千次阅读 2021-02-12 15:30:30
    看到成员变量和局部变量同名这个知识点的时候一开始有点懵逼,想了一下其实特别简单。先来看一个简单的代码。首先我定义了一个Person类。public classPerson {private int age=1000;//定义成员变量,年龄为1000...
  • 全局变量与局部变量重名的情况

    千次阅读 2020-03-04 23:15:12
    当全局变量和局部变量出现重名时, 在局部变量作用域内,全局变量失效
  • 变量的作用域?...原因是所有定义的变量都是先内存中开辟该变量的存储位置,即变量存储栈中,当代码解释到该语句才会将值存在栈中,即值先不做处理,所以调用一个变量时计算机是先去栈中查找有没有该...
  • 局部变量:直接写成员变量名 用本类的成员变量:this.成员变量名 用父类的成员变量:super.成员变量名 例子:↓ Father:父类中定义了 int num=10; Child extends Father:子类继承父类,并且自有成员变量 ...
  • 成员变量和局部变量 根据定义变量位置的不同,可以将变量分为成员变量和局部变量 成员变量是类范围内定义的变量 局部变量一个方法内定义的变量 成员变量可以分为: 实例属性 (不用static修饰) ...
  • /**********************************************...*函数内部定义的局部变量与全局变量重名时,函数使用该变量的时候会以局部变量覆盖全局变量,也就是只有局部变量会起效果。 ********************************...
  • 5.1.1 解题关键:同名的局部变量能屏蔽全局变量  因此,main中新定义局部变量i后,相当于外部变量i已不存在,此时的i仅仅是一个已定义但未赋值的变量。因此用未赋值的变量给本身赋值当让是错误的。 另附:变量...
  • 局部变量成员变量

    千次阅读 多人点赞 2020-12-16 22:39:21
    局部变量成员变量的区别: 定义的位置不一样【重点】 局部变量方法的内部 成员变量:方法的外部,直接写类当中 作用范围不一样【重点】 局部变量:只有方法当中才可以使用,出了方法就不能再用了 成员...
  • 成员变量和局部变量

    2021-04-10 17:41:17
    成员变量和局部变量 成员变量定义
  • 要想区分这哥俩,首先,我们得知道它们...用类class来描述事物也是如此:属性:对应类中的成员变量行为:对应类中的成员函数定义类其实就是定义类中的成员(成员变量成员函数)拓展:类是一个抽象的概念,而对象就...
  • 成员变量与局部变量

    2020-03-07 23:07:20
    成员变量与局部变量 package demo; public class Test { static int s; int i; int j; { int i = 1; i++; j++; s++; } public void test(int j) { j++; i++; s++; } public static void main...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,141
精华内容 13,256
热门标签
关键字:

在成员变量与局部变量重名时