变量、常量和final

前言

这篇主要说一下变量、常量和final。
对于成员变量和静态变量,大家只需要了解基本分类概念即可。大家之后学习了方法、对象、类以后再深入学习。

变量(variable)

变量本质(固定空间)= 停车位
变量名(通过名字操作空间) = 车位编号
数据(变化的量) = 车
在这里插入图片描述

本质

  1. 变量的本质上就是代表一个”可操作的存储空间“,空间位置是确定的,但是里面放置什么值不确定。
  2. 可通过变量名来访问”对应的存储空间“,从而操纵这个”存储空间“存储的值。
  3. Java是一种强类型语言,每个变量都必须声名其数据类型。变量的数据类型决定了变量占据存储空间的大小。比如,int a = 3; 表示a变量的空间大小为4个字节。

声明

不同数据类型的常量会在内存中分配不同的空间。
double  salary;    8个字节
long earthPopulation;    8个字节
int age;   4个字节

在这里插入图片描述

示例

//声明变量和初始化,一行可以声明多个变量
int age = 18;
double e = 2.722334343;
int i,j; //两个变量的数据类型都是int
public class TestVariable{
	public static void main (String [] args){
		int age =18;
		int b;  //只是声明了变量b,没有初始化;
		int x = 0,y = 0,z=1;
		System.out.println(age);
		b=0;   //变量使用之前,必须初始化!
		System.out.println(b);
		System.out.println(z);
	}
}

变量的分类和作用域

变量有三种类型:局部变量,成员变量(实例变量)和静态变量(类变量)。
核心区别:

类型声明变量从属于生命周期(作用域)
局部变量方法或语句块内部方法/语句块从声明位置开始,直到方法或语句快执行完毕,局部变量消失
成员变量方法外部,类内部对象对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失。
静态变量类内部,static修饰类被加载,静态变量就有效;类被卸载,静态变量消失。
public class TestVariable{
	int a = 3; //成员变量
	static int b = 4;  //静态变量
	public static void main (String [] args){
		//局部变量
		int age =18;
		int b;  //只是声明了变量b,没有初始化;
		int x = 0,y = 0,z=1;
		System.out.println(age);
		b=0;   //变量使用之前,必须初始化!
		System.out.println(b);
		System.out.println(z);
	}
}

局部变量(local variable)

方法或语句块内部定义的变量。生命周期是从声明位置开始到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。

示例:局部变量的声明

public void test(){
	int i;
	int j = i + 5;  //编译出错,变量i还未被初始化 
}
public void test(){
	int i;
	i = 10;
	int j = i + 5;  //编译正确
}

成员变量(实例变量)

方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型的默认初始值。

数据类型实始值
int0
double0.0
char‘\u0000’
booleanfalse

示例:实例变量的声明

public class Test{
	int i ;
}

静态变量(类变量)

使用static定义。从属于类,生命周期伴随类始终,从类加载到卸载。如果不自动初始化,与成员变量相同会自动初始化成该类型的默认初始值。

常量(Constant)

恒定的、不变的。一生只赋一次值。
在Java语言中,用final来定义一个常量,常量一旦被初始化后不能再更改。

声明格式:
	final type varName = value;

在这里插入图片描述
示例:

public class TestConstant{
	public static void main(String [] args){
		final double PI = 3.14;
		//PI = 3.1415;  //编译错误,无法为常量再次分配值
		double r = 4;
		double area = PI * r * r;
		double circle = 2 * PI * r;
		System.out.println("area = " + area);
		System.out.println("circle = " + circle);
		final int MAX_SPEED = 120; //常量的命名:全用大写字母,单词之间下划线隔开
	}
}

在这里插入图片描述

为了更好的区分和表达,一般将1、2、3、‘a’、‘b’ 、true 、false、”helloWorld“等称为字符常量,而使用final修饰的PI等称为符号常量

总结

变量和常量命名规范

  • 所有变量、方法、类名:见名知义。
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值