精华内容
下载资源
问答
  • 2022-03-26 15:34:47

    当局部变量和全局变量重名的时候,局部变量在其定义域的优先级更高,全局变量会自动被忽视,如果我们想要用到全局变量,我们可以在全局变量前加上::作用域运算符,因为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();
    	}
    }
    结果:
    水果是红色的
    水果已经收获
    水果是绿色的
    
    展开全文
  • 成员变量和局部变量 注:所有的变量没有赋值是不能使用的!!! 两者的区别: 定义的位置不同: 成员变量:定义在类中成员位置的变量,称为实例变量 / 类变量,在类中方法外 局部变量:定义在类中方法中 ...

    成员变量和局部变量

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

    关于重名问题:

    1. 局部变量与局部变量之间,在重合作用于方位内不能重名;
    2. 成员变量与成员变量之间不能重名;
    3. 成员变量与局部变量之间可以重名,但是调用时优先使用局部变量,
       实例使用中,可以用this关键字来区分成员变量和局部变量。   		    
    
    展开全文
  • 局部变量who package cn.itcast.day0601.demo03; public class Demo01Person { String name;//我自己的名字 public void sayHello(String who){ System.out.println(who+"你好,我是"+name); } } 创建对象...

    当两个变量不同名时,就非常好办啦,如下面打招呼的例子
    成员变量name。局部变量who

    package cn.itcast.day0601.demo03;
    
    public class Demo01Person {
        String name;//我自己的名字
        public void sayHello(String who){
            System.out.println(who+"你好,我是"+name);
        }
    }
    
    

    创建对象调用它:

    package cn.itcast.day0601.demo03;
    
    public class Demo01UsePerson {
        public static void main(String[] args) {
            Demo01Person person = new Demo01Person();
            person.name = "小明";
            person.sayHello("小丽");
        }
    }
    

    调用结果:
    在这里插入图片描述
    当他们同名时,如果你没有用this,则会采用就近原则。会优先使用局部变量。
    我来把上面例子改同名:

    package cn.itcast.day0601.demo03;
    
    public class Demo01Person {
        String name;//我自己的名字
        public void sayHello(String name){
            System.out.println(name+"你好,我是"+name);
        }
    }
    
    

    此时调用:

    package cn.itcast.day0601.demo03;
    
    public class Demo01UsePerson {
        public static void main(String[] args) {
            Demo01Person person = new Demo01Person();
            person.name = "小明";
            person.sayHello("小丽");
        }
    }
    

    在这里插入图片描述
    是不是很尴尬。因此当我们不小心同名时,为了避免尴尬。我们既要用访问本类中的成员变量,又要访问方法中的局部变量。那我们访问成员变量时,就要使用格式:this.成员变量名。

    package cn.itcast.day0601.demo03;
    
    public class Demo01Person {
        String name;//我自己的名字
        public void sayHello(String name){
            System.out.println(name+"你好,我是"+this.name);
        }
    }
    

    调用:

    package cn.itcast.day0601.demo03;
    
    public class Demo01UsePerson {
        public static void main(String[] args) {
            Demo01Person person = new Demo01Person();
            person.name = "小明";
            person.sayHello("小丽");
        }
    }
    

    结果如下:
    在这里插入图片描述

    好啦,知道怎么用后,我们来说说这个this到底指的是啥呢?

    简单来记:通过谁调用的方法,谁就是this。如上面例子:
    person.sayHello();person对象调用的,因此this指的就是person。
    下面来验证,就是看他们地址是否一样:

    package cn.itcast.day0601.demo03;
    
    public class Demo01Person {
        String name;//我自己的名字
        public void sayHello(String name){
            System.out.println(name+"你好,我是"+this.name);
            System.out.println(this);
        }
    }
    
    package cn.itcast.day0601.demo03;
    
    public class Demo01UsePerson {
        public static void main(String[] args) {
            Demo01Person person = new Demo01Person();
            person.name = "小明";
            person.sayHello("小丽");
            System.out.println(person);
        }
    }
    

    看下图,地址一样ba~
    在这里插入图片描述

    学习使我快乐~
    午饭午饭我来了
    谢谢你们的支持

    展开全文
  • 局部变量能否和成员变量重名

    千次阅读 2019-06-13 15:03:00
    局部变量可以和成员变量重名,不加“this”修饰,优先使用最近的变量。 public class Mainceshi { private String a = "成员变量"; public void GetA() { String a = "局部变量"; System.out.println(this....
  • 成员变量和局部变量同名问题

    千次阅读 2020-01-26 20:05:48
    在方法中出现了局部变量和成员变量同名的时候,那么在方法中怎么区别局部变量成员变量呢?可以在成员变量名前面加上this.来区别成员变量和局部变量 class Person { private int age; private String na...
  • 局部变量能否全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同...
  • 3.局部变量能否和成员变量重名

    千次阅读 2019-05-13 21:22:43
    3.局部变量能否和成员变量重名? A.可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量 B.可以,这时可用“local”关键字来指向局部变量 C.不能,局部变量不能与成员变量重名 D.不能,在一个类...
  • 1、局部变量能否全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ; 局部变量可以与全局变量同名, 在函数内引用这个变量,会用到同名的局部变量,而不会用到全局变量。对于有些编译器 而言...
  • 成员变量和局部变量 根据定义变量位置的不同,可以将变量分为成员变量和局部变量 成员变量是在类范围内定义的变量 局部变量是在一个方法内定义的变量 成员变量可以分为: 实例属性 (不用static修饰) ...
  • 全局变量 定义在类中的变量叫做全局变量 ...JAVA中的全局变量和局部变量是允许重名的,但是如果在方法体内使用该重名变量局部变量会覆盖全局变量,出了方法,局部变量被销毁,只剩下全局变量。 ...
  • 局部变量:直接写成员变量名 用本类的成员变量:this.成员变量名 用父类的成员变量:super.成员变量名 例子:↓ Father:父类中定义了 int num=10; Child extends Father:子类继承父类,并且自有成员变量 ...
  • 局部变量能否全局变量重名

    千次阅读 2019-09-16 09:53:33
    1、局部变量能否全局变量重名?  答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: " (域解析符)  局部变量可以与全局变量同名,在函数内引用这个变量,会用到同名的局部变量,而不会用到全局变量。...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼深度解析:C语言中有“作用域”的概念。譬如全局变量作用域为整个文件(准确的说是定义该全局变量的文件中该变量定义/声明之后的部分。...也就是说局部变量的作用域其...
  • 函数内部定义的局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量。也就是只有局部变量会起效果。在此定义域中赋值等操作都不会使用到全局变量。 在main函数或其他函数里定义了局部变量...
  • C/C++全局变量和局部变量重名问题

    千次阅读 2018-04-12 14:30:03
    局部变量内可以利用作用与符::来访问全局变量;如下代码:#include&lt;iostream&gt; using namespace std; int a = 1; int func() { int a = 0; cout &lt;&lt; a &lt;&lt; endl; ...
  • 全局变量与局部变量重名的情况

    千次阅读 2020-03-04 23:15:12
    全局变量和局部变量出现重名时, 在局部变量作用域内,全局变量失效
  • 变量的作用域?...原因是所有定义的变量都是先在内存中开辟该变量的存储位置,即变量存储在栈中,代码解释到该语句才会将值存在栈中,即值先不做处理,所以调用一个变量时计算机是先去栈中查找有没有该...
  • 属性成员变量必须私有化区别一:定义的位置不同 定义在类中的变量是成员变量 定义在方法中或者{}语句里面的变量是局部变量区别二:在内存中的位置不同 成员变量存储在对内存的对象中 局部变量存储在栈内存的方法...
  • Java成员变量与局部变量同名

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

    千次阅读 2019-03-09 19:46:56
    局部变量可以与全局变量同名,在函数内引用这个变量,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,...
  • 某老Ⅱ型肿、局变局部局变局部局变人以呼衰年病肺气院收入,不正确的护理措施是(,天晚第一入院上,痰多吸困、呼难因咳嗽、。下列中情形,律制根据个人规定度的所得税法,为一个月得的得税的有人所内取纳个次计以1...
  • 局部du变量可以与全局变zhi量同名,在函数内dao引用这个变量,会用到同名的局部变量,而不会用到全局变量。对于有些 编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的...
  • 在父子类的继承关系中,如果成员变量重名,则创建子类对象,访问有两种方式: 直接通过子类对象访问成员变量 规则:等号左边谁,就优先用谁,没有则向上找 间接通过成员方法访问成员变量 规则:该方
  • fengfeng@fengfeng-Lenovo-XiaoXin-700-15ISK:~$ cat -n test1.py1 a = 12 def do_something():3 print a45 do_something()fengfeng@fengfeng-Lenovo-XiaoXin-700-15ISK:~$ python test1.py1fengfeng@fengfeng-Lenov...
  • this的用途之一:在方法参数和成员变量同名用this进行区分,表示想用类的成员变量,而非方法参数。 创建一个打电话的类: public class Callone { String name; // name是我的名字,who是对方名字 public void ...
  • 局部变量和成员变量

    千次阅读 2020-12-16 22:39:21
    局部变量和成员变量的区别: 定义的位置不一样【重点】 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中 作用范围不一样【重点】 局部变量:只有在方法当中才可以使用,出了方法就不能再用了 成员...
  • 文章目录前言1.JAVA成员变量和局部变量1.1 成员变量1.2 局部变量2.JAVA成员变量和局部变量的内存运行机制 前言 李刚老师《JAVA疯狂讲义》第5版,第5章学习笔记。 1.JAVA成员变量和局部变量 在JAVA中,根据变量定义的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,057
精华内容 12,822
关键字:

当成员变量和局部变量重名时