探索Java变量的奥秘

发表时间: 2023-12-05 10:51

编者按

计算机能够直接识别的是二进制流,原始的程序设计都是基于二进制方式设计的。随着计算机语言的发展,计算机编程越来越偏离二进制方式;为什么会这样呢?理由很简单,程序是人来编写、阅读和维护的!变量是编程语言中最为基础的,也是后续编程的基石!

点关注不迷路

内容提要

为什么会有变量?正如每个人都有名字一样!变量是一门语言最基础的、最核心的东西,本讲将重点介绍Java语言的变量。本讲主要内容包括了:

  • 变量声明与定义
  • 变量类型

变量声明与定义

变量声明与定义的语法格式:

type variable = value , [variable = value] , [variable = value];

Java变量声明与定义中的具体如表1所示:

表1 Java变量声明与定义字段表

字段

含义

type

数据类型

variable

变量名

value

变量值

其中,需要注意以下两条:

  • 中括号中的内容可选
  • 连续定义多个变量时,以逗号隔开

我们来看一段具体代码示例:

public class Variables {	public static void main(String[] args) {		// 单个Java变量的声名与定义		short x = 100;		System.out.println("单个Java变量的声明与定义 x=" + x);				// 多个Java变量单行定义与声明		double y = 1.0d, z = 2.0d, m = 3.0d, n = 4.0d;		System.out.println("多个Java变量的定义与声明,其中,y=" + y);		System.out.println("多个Java变量的定义与声明,其中,z=" + z);		System.out.println("多个Java变量的定义与声明,其中,m=" + m);		System.out.println("多个Java变量的定义与声明,其中,n=" + n);	}}

相同数据类型的变量可以定义在同一行,例如,上述代码中的y,z,m,n四个变量;它们都是double类型,定义在同一行。从企业实践,工程化代码来看,建议是一个变量定义在一行。我们改造一下上述代码,使其满足代码规范:

public class Variables {	public static void main(String[] args) {		// 单个Java变量的声名与定义		short x = 100;		System.out.println("单个Java变量的声明与定义 x=" + x);				// 多个Java变量多行定义与声明		double y = 1.0d;    double z = 2.0d;    double m = 3.0d;    double n = 4.0d;		System.out.println("多个Java变量的定义与声明,其中,y=" + y);		System.out.println("多个Java变量的定义与声明,其中,z=" + z);		System.out.println("多个Java变量的定义与声明,其中,m=" + m);		System.out.println("多个Java变量的定义与声明,其中,n=" + n);	}}

变量类型

Java中有四种变量:

  • 局部变量:定义在方法、构造方法或语句块中的变量,作用域只限于当前方法、构造方法或语句块中。局部变量必须在使用前声明,并且不能被访问修饰符修饰。
  • 成员变量:定义在类中、方法之外的变量,作用域为整个类,可以被类中的任何方法、构造方法和语句块访问。成员变量可以被访问修饰符修饰。
  • 静态变量:定义在类中、方法之外的变量,并且使用 static 关键字修饰,作用域为整个类,可以被类中的任何方法、构造方法和语句块访问,静态变量的值在程序运行期间只有一个副本。静态变量可以被访问修饰符修饰。
  • 参数变量:方法定义时声明的变量,作为调用该方法时传递给方法的值。参数变量的作用域只限于方法内部。

1、局部变量

局部变量在使用前,必须要进行定义与声明,语法格式:

// 形式一:定义与声明type varialbe = value;// 形式二:先定义,再声明type variable;variable = value;

我们一起看一段具体代码示例:

public class LocalVariable {	public static void main(String[] args){		// 局部变量的定义与声明		int x = 10;		System.out.println("局部变量的定义与声明 x=" + x);				// 局部变量先定义,再声明		int y;		y = 20;		System.out.println("局部变量先定义,再声明 y=" + y);	}}

2、成员变量

成员变量的语法格式:

public class Instance {// 成员变量的定义与声明	访问修饰符 type variable [= value];  } // 成员变量的使用Instance object;object.variable;

中括号为可选内容,也就是说,成员变量可以先定义,使用前再声明。

我们一起看一段具体代码示例:

public class InstanceVariable{	// InstanceVariable公有成员定义与声明	public int x = 10;		// InstanceVariable私有成员定义	private int y;		public static void main(String[] args){		// 创建InstanceVariable对象		InstanceVariable object = new InstanceVariable();				System.out.println("InstanceVariable公有成员变量 x=" + object.x);				// InstanceVariable私有成员声明		object.y = 20;		System.out.println("InstanceVariable私有成员变量 y" + object.y);	}}

成员变量讲解面向对象时,我们将深入探讨一下。

3、静态变量

静态变量的语法格式:

public class Instance {  // 静态变量的定义与声明  访问修饰符 static type variable [= value];}// 静态成员的使用Instance object;Instance.variable;

我们一起看一段具体代码示例:

public class StaticVariable{	// 静态成员的定义与声明	public static int x = 10;		public static void main(String[] args){		// 创建静态变量对象1		StaticVariable object1 = new StaticVariable();		System.out.println("StaticVariable静态成员 x=" + object1.x);				// 改变静态变量x的值		object1.x = 20;				// 创建静态变量对象2		StaticVariable object2 = new StaticVariable();		System.out.println("StaticVariable静态成员 x=" + object2.x);	}}

成员变量讲解面向对象时,我们将深入探讨一下。

4、参数变量

参数变量的语法格式:

访问修饰符 返回值类型 function(type variable1, type variable2, type variable3, ...)

参数变量又称为方法形式参数变量,声明定义在方法参数列表中,我们将在方法一节中进一步深入探讨。

我们来看一段简单的具体代码示例:

public class ParameterVariable{	public static void main(String[] args){		int a = 10;		int b = 20;				// 变量a和变量b作为函数的参数		int c = sum(a, b);				System.out.printf("参数变量a + 参数变量b的和等于c,c=" + c);	}								public static int sum(int x, int y){		int z = x + y;				return z;	}							}

代码中方法sum中的x和y两个变量就是形式参数,也就是参数变量。

总结

本讲重点介绍了变量和变量声明与定义以及变量类型;讲解面向对象知识之前,我们重点掌握变量声明与定义即可,随着学习Java的深入,我们穿插讲解更多有关变量的知识。

本讲就到这里,我们下期见,小伙伴们!

往期回顾

  • 第1讲 Java前世今生

https://www.toutiao.com/article/7306394115615294006/?log_from=70c615ccdd79d_1701223389682

  • 第2讲 Java开发环境配置

https://www.toutiao.com/article/7306698955294196287/?log_from=73070f7d6bc4e_1701410469896

  • 第3讲 我的第一个Java程序

https://www.toutiao.com/article/7307065130922132004/?log_from=98cb76d53719d_1701744332302

  • 第4讲 Java基本数据类型

https://www.toutiao.com/article/7307468491400233508/?log_from=dc37fba24a013_1701659931185

  • 第5讲 Java运算符

https://www.toutiao.com/article/7308574305062208039/?log_from=73abec38aa424_1701742561122