首页 > 其他分享 >20241213-局部变量和全局变量的思考

20241213-局部变量和全局变量的思考

时间:2024-12-17 17:27:08浏览次数:6  
标签:int void 局部变量 System 20241213 static 全局变量 public out

for循环或while循环、方法或方法参数列表里定义的局部变量,在其内的代码块执行完毕后就被销毁了,不能再用了。

1. A方法的局部变量a作为B方法的传入参数,在B方法内对该传入参数的运算不会对A方法的局部变量a产生影响。见下代码:

public class ArrayReference
{
	public static void  changeReferValue(int in)
	{
		in+=1;
		System.out.println("\n"+in);
	}

	public static void printarr(int in)
	{
		System.out.println(in);
	}

	public static void main(String[]args)
	{
		int in=10;
		changeReferValue(in);
        printarr(in);
	}
}
//第一个打印值是11,第二个打印值还是10

2. 方法内调用方法出现变量重名的情形,分清谁是成员变量谁是局部变量。

setCat方法的传入参数weight是该方法的局部变量,而其内部调用的getCat方法,其中的weight是成员变量。

public class TestCat
{
	public static void main(String[]args)
	{
		Cat.setCat(2.3f);
	}
}

class Cat
{
	private static float weight;
	private static void getCat()
	{
		System.out.println("猫的体重是"+weight);
	}
	public static void setCat(float weight)
	{
		if(weight>0)
		{
			Cat.weight=weight;
			getCat();
		}
		else
		{
			Cat.weight=10.0f;
			System.out.println("输入值不合法,设为默认值");
			getCat();
		}
	}
}

3. 成员变量、局部变量重名的情形下,在方法内对该重名变量的运算是默认针对局部变量的,而不是成员变量,除非特别指明是针对成员变量进行的。

public class ArrayReference
{
    int int=3;
	public static void  changeReferValue(int in)
	{
		in+=1;
		System.out.println("\n"+in);
	}

	public static void printarr(int in)
	{
		System.out.println(in);
	}

	public static void main(String[]args)
	{
		int in=10;
		changeReferValue(in);
        printarr(in)
	}
}
//第一个打印值是11,第二个打印值还是10

4. 接上面第3条,特别指明是针对成员变量进行的运算。见下码

public class draft
{
    static int in=3;
	public static void  changeReferValue(int in)
	{
		in+=1;
		System.out.println("\n"+in);
        draft.in+=1;
        System.out.println("\n"+in);
        System.out.println(draft.in);
	}

	public static void printarr(int in)
	{
		System.out.println(in);
	}

	public static void main(String[]args)
	{
		int in=10;
		changeReferValue(in);
        printarr(in)
	}
}
//第一个打印值是11,第二个打印值还是11,第三个打印值是4,第四个打印值是10

5. 接上面第1条的内容:在B方法内对a的运算会影响到A中a的情形,则是使用return,将运算后的值返回到A方法内,见下代码:

public class ArrayReference
{
	public static int changeReferValue(int in)
	{
		in+=1;
		System.out.println("\n"+in);
        return in;
	}

	public static void printarr(int in)
	{
		System.out.println(in);
	}

	public static void main(String[]args)
	{
		int in=10;
		in=changeReferValue(in);
        printarr(in);
	}
}
//第一个打印值是11,第二个打印值则也是11

标签:int,void,局部变量,System,20241213,static,全局变量,public,out
From: https://blog.csdn.net/abgdc/article/details/144460562

相关文章

  • [20241213]18c sqlplus rowlimit设置.txt
    [20241213]18csqlplusrowlimit设置.txt--//18c开始sqlplus支持rowlimit,看信息就知道限制结果集的输出行数,这样明显看执行计划统计信息自然不准。--//不过我发现oracle在处理上非常特别,做一个记录以及简单分析。1.环境:SCOTT@book01p>@ver2==============================PORT_S......
  • QT 定义全局变量、通过函数初始化变量
    1.头文件中定义全局变量#ifndefZ3_GVARS_H#defineZ3_GVARS_H#include<QString> classZ3_GVARS{ public: staticQStringJSON_FILE_NAME; staticQStringSERVER_IP; staticintSERVER_PORT; staticvoidinitConfig();};#endif//!Z3_GVARS_H 2.在cpp......
  • 20241213
    Linux是一个强大的操作系统,它提供了许多常用的命令行工具,可以帮助我们用于管理文件、目录、进程、网络和系统配置等。以下是一些常用的Linux命令:ls:列出当前目录中的文件和子目录2.pwd:显示当前工作目录的路径 3.cd:切换工作目录(从头到尾写全才可)cd/path/to/directory 4.......
  • 【每日一题】20241213
    【每日一题】伽利略曾设计如图\(1\)所示的一个实验,将摆球拉至\(M\)点放开,摆球会达到同一水平高度上的\(N\)点.如果在\(E\)或\(F\)处钉子,摆球将沿不同的圆弧达到同一高度的对应点;反过来,如果计摆球从这些点下落,它同样会达到原水平高度上的\(M\)点.这个实验可以说明,物体......
  • IDApython使用全局变量
    在使用IDApython时,经常会苦恼IDApython中的条件断点运行一次过后变量就会重置,描述的不严谨,具体情形如下:foriinrange(10,20): print(i)假如我在print(i)中下断点:我想要当i增加三次后就停下,我可以这样写ea=get_reg_value("eax")ifea==13: print("stophere!")但是......
  • vue3 使用 inject provide 提供全局变量 报错 [Vue warn]: inject() can only be used
    报错:vue3使用injectprovide提供全局变量报错[Vuewarn]:inject()canonlybeusedinsidesetup()orfunctionalfunctionalcomponents.场景main.js//main.js使用provide提供全局变量,做图片的urlapp.provide('imgurl','http://api.baidu.com/')pro.js......
  • 不要用指针指向局部变量
    #include<stdio.h>intmain(){int*p=NULL;inti=1;switch(1){case1:{p=&i;printf("Insideswitch-Addressofi:%p,Valueofp:%p\n",(void*)&i,(void*)p);......
  • # 24_ Python基础到实战一飞冲天(二)-python基础(二十四)--局部全局变量
    24_Python基础到实战一飞冲天(二)-python基础(二十四)–局部全局变量一、可变类型和不可变类型-03-字典的key不能是可变类型1、字典的key只能使用不可变类型(数字、字符串、元组)的数据,而不能使用可变类型(列表、字典)。2、在ipython3中演示字典的key示例代码In[1]:d......
  • JavaScript第二章,局部变量和全局变量,作用域,闭包1.1
    1.局部变量和全局变量全局变量:在函数外部声明的变量或在任何地方未使用var、let或const关键字声明的变量(这会导致隐式全局变量)都是全局变量。全局变量在整个脚本中都是可访问的。局部变量:在函数内部使用var、let或const关键字声明的变量是局部变量。它们只能在声明它们的函......
  • 【C语言基础】全局变量与局部变量的深入解析
    目录一、全局变量1.1.定义与声明1.2.特性1.2.1.生命周期1.2.2.作用域1.2.3.跨文件访问1.2.4.限制访问范围1.3. 示例1.4.注意事项1.4.1.过度使用全局变量导致代码难以理解和维护1.4.2.限制全局变量的使用范围1.4.3.清晰的命名和文档1.4.4.考虑替代方案......