变量
- 变量就是可以变化的量
- Java是一种强类型语言,每个变量都必须声明其类型
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量其实就是计算机内存里的一块空间,这个空间的位置是固定的,但是里面存的东西是不确定的。
就好比一个衣柜,第一层放耐克,第二层放阿迪,第三层放李宁,这个柜子本身就存在,就像内存一样,只是我们给他加上了标签,第一层放耐克,第二层放阿迪…,内存也是一样,我们需要给它指定一个空间,然后往里面放东西,这就要看它的数据类型了,比如int,说明里面只能放整数,比如放了a,b,c,d四个整数,那怎么去区分他们呢,这就要给它们取名字了,也就是变量名,就跟上面一样,无论是放阿迪还是耐克都无所谓。
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量
- 它可以在一行里定义多个变量,但是不建议这样做。
应一行定义一个变量,保证代码可读性。
public static void main(String[] args) {
//int a,b,c;
//int a=1,b=2,c=3;//程序可读性
int a = 1;
int b = 2;
int c = 3;
String name ="yongjian";
double pai=3.14;
}
变量作用域
- 类变量
- 实例变量
- 局部变量
public class Variavle{
static int allClicks=0; //类变量
String str=“hello world”; //实例变量
public void method(){
int i = 0;//局部变量
}
}
简述:类变量要加关键词static;
实例变量与类变量差不多,但是不加关键词static;
局部变量是定义在方法里的。
- 局部变量
方法或语句块(之后学)内定义的变量就是局部变量
它们的生命周期就是从方法开始大括号开始到最后大括号结束,而且必须声明和初始化值。
这里的i只在方法的大括号里有效,因此能输出,但是在外面就无效了,因此输出不了
public class Demo08 {
//属性:变量
//main方法(主程序方法)
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i); //输出的了
}
//其他方法
public void add(){
System.out.println(i); //输出不了
}
}
2.实例变量
这里new了一个Demo08,相当于把类拿到了那里,这里的demo08就是对象
这里的变量类型就是Demo08(自定义类型,也是引用类型的一种)
所有数值类型默认值都是0——0(整数)、0.0(小数)、u0000(字符型)
实例变量从属于对象,这里先把类(Demo08)理解为对象就行。
这里注意一下布尔值默认值是false
public class Demo08 {
//属性:变量
//实例变量:从属于对象;如果不自行初始化,会变成这个类型的默认值 0 0.0 u0000
//布尔值:默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法(主程序方法)
public static void main(String[] args) {
//变量类型 变量名字 = new Demo08;
Demo08 demo08 = new Demo08();
System.out.println(demo08.age);//输出为0
System.out.println(demo08.name);//输出为null
}
}
}
3.类变量
类变量从属于类,随着变量一起出现,一起消失。
类变量在前加一个static
public class Demo08 {
//类变量 static
static double salary = 2500;//默认是int,自动转换
//main方法(主程序方法)
public static void main(String[] args) {
System.out.println(salary);
}
常量
-
常量:初始化后不能再改变值,不会变动的值
-
常量其实就是一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名=值;
final double PI=3.14;
- 常量名一般使用大写字符。
public class Demo09 {
//修饰符,不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
数据类型前都是修饰符,不存在先后顺序
可以是static fianl
也可以是final static
常量的意义:比如做一个游戏,长宽高是定死的,就可以设置常量;这里设置PI为常量,值为3.14,以后就不用反复写,直接调用就行了,避免以后可能写成3.4之类的。