变量


1、变量(variable)
变量是什么:就是可以变化的量!
我们通过变量来操纵存储空间中的数据,变量就是指代这个存储空间!空间位置是确定的,但是里面放
置什么值不确定! 
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:

1 type varName [=value] [{,varName[=value]}] ;
2 //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量。

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
1 int a, b, c; // 声明三个int型整数:a、 b、c
2 int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
3 byte z = 22; // 声明并初始化 z
4 String s = "runoob"; // 声明并初始化字符串 s
5 double pi = 3.14159; // 声明了双精度浮点型变量 pi
6 char x = 'x'; // 声明变量 x 的值是字符 'x'。

虽然可以在一行声明多个变量,但是不提倡这个风格,逐一声明每一个变量可以提高程序可读性。

2、变量作用域
变量根据作用域可划分为三种:

  • 类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰。
  • 实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量(lacal variable):类的方法中的变量
1 public class Variable{
2 static int allClicks=0; // 类变量
3 String str="hello world"; // 实例变量
4 public void method(){
5 int i =0; // 局部变量
6 }
7 }

局部变量
方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止。
在使用前必须先声明和初始化(赋初值)。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

1 public static void main(String[] args) {
2 int i;
3 int j = i+5 ; // 编译出错,变量i还未被初始化
4 System.out.println(j);
5 }

应改为:

public static void main(String[] args) {
int i=10;
int j = i+5 ;
System.out.println(j);
}

从jdk10开始,对于局部变量,如果可以从变量的初始值推断出它的类型,就可以不声明类型。只需要使用关键字var而无需指定类型。

1 var i=15;
2 var greeting="hello";
3 System.out.println(i);
4 System.out.println(greeting);

实例变量
方法外部、类的内部定义的变量。
从属于对象,生命周期伴随对象始终。
如果不自行初始化,他会自动初始化成该类型的默认初始值
(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

public class Test {
// 这个实例变量对子类可见
public String name;
// 私有变量,仅在该类可见
private double salary;
}

静态变量
使用static定义。
从属于类,生命周期伴随类始终,从类加载到卸载。
如果不自行初始化,他会自动初始化成该类型的默认初始值
(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

public class Employee {
//salary是静态的私有变量
private static double salary;
// DEPARTMENT是一个常量
public static final String DEPARTMENT = "开发人员";
public static void main(String[] args){
salary = 10000;
System.out.println(DEPARTMENT+"平均工资:"+salary);
}
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM