变量类型
Java中对变量的声明格式基本与C语言一致。
int a, b, c; // 声明三个int型整数:a、 b、c int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 byte z = 22; // 声明并初始化 z String s = "runoob"; // 声明并初始化字符串 s double pi = 3.14159; // 声明了双精度浮点型变量 pi char x = 'x'; // 声明变量 x 的值是字符 'x'。
变量类型有以下几种。
1、局部变量(Local Variables): 局部变量是在方法、构造函数或块内部声明的变量,它们在声明的方法、构造函数或块执行结束后被销毁,局部变量在声明时需要初始化,否则使用该变量时会导致编译错误。(局部变量在稍后会细讲)
public class ice { public static void main(String[] args) { int a;//没有进行初始化 System.out.println(a); } }
2、实例变量(Instance Variables): 实例变量是在类中声明,但在方法、构造函数或块之外,它们属于类的实例。如果不明确初始化,实例变量会被赋予默认值(数值类型为0,boolean类型为false,对象引用类型为null)。
public class ice { int a; public static void main(String[] args) { ice b = new ice(); System.out.println(b.a); } }
3、静态变量或类变量(Class Variables): 类变量是在类中用 static 关键字声明的变量,它们属于类而不是实例,所有该类的实例共享同一个类变量的值,类变量在类加载时被初始化,而且只初始化一次。
public class ice { static int a=1; public static void main(String[] args) { ice b = new ice(); System.out.println(b.a); } }
4、参数变量(Parameters): 参数是方法或构造函数声明中的变量,用于接收调用该方法或构造函数时传递的值,参数变量的作用域只限于方法内部。(参数变量在稍后会细讲)
public void ice(int parameter) { // 参数变量 // ... }
5、对成员变量、静态变量、局部变量举个例子:
public class ice { // 成员变量 private int instanceVar; // 静态变量 private static int staticVar; public void Test1(int paramVar) { // 局部变量 int localVar = 10; // 使用变量 instanceVar = localVar; staticVar = paramVar; System.out.println("成员变量: " + instanceVar); System.out.println("静态变量: " + staticVar); System.out.println("参数变量: " + paramVar); System.out.println("局部变量: " + localVar); } public static void main(String[] args) { ice v = new ice(); v.Test1(20); } }
Java 参数变量
Java 中的参数变量是指在方法或构造函数中声明的变量,用于接收传递给方法或构造函数的值。参数变量与局部变量类似,但它们只在方法或构造函数被调用时存在,并且只能在方法或构造函数内部使用。
这句话可以近似用C语言中的函数理解,在带参函数运行时,该参数只能在函数内部使用。
在调用方法时,我们必须为参数变量传递值,这些值可以是常量、变量或表达式。
方法参数变量的值传递方式有两种:值传递和引用传递。
值传递: 在方法调用时,传递的是实际参数的值的副本。当参数变量被赋予新的值时,只会修改副本的值,不会影响原始值。Java 中的基本数据类型都采用值传递方式传递参数变量的值。
public class ice { public static void main(String[] args) { int a = 10, b = 20; swap(a, b); // 调用swap方法 System.out.println("a = " + a + ", b = " + b); // 输出a和b的值 } public static void swap(int x, int y) { int temp = x; x = y; y = temp; } }
引用传递: 在方法调用时,传递的是实际参数的引用(即内存地址)。当参数变量被赋予新的值时,会修改原始值的内容。Java 中的对象类型采用引用传递方式传递参数变量的值。
Java 局部变量
局部变量规则:
局部变量声明在方法、构造方法或者语句块中。
局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。
局部变量必须在使用前声明,并且不能被访问修饰符修饰,因为它们的作用域已经被限制在了声明它们的方法、代码块或构造函数中。
局部变量只在声明它的方法、构造方法或者语句块中可见,不能被其他方法或代码块访问。
局部变量是在栈上分配的。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。初始化可以在声明时或后面的代码中进行。
局部变量的声明语法为:
type variableName;
type – 表示变量的类型。
variableName – 表示变量的名称。
如果在使用之前不声明局部变量,编译器会报错:
局部变量必须在使用之前进行初始化,否则编译器会报错: