变量,常量,作用域。
变量
- 变量是什么:就是可以变化的量!
- Java是一种强类型语言,每个变量都必须要申明其类型。
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}];
//数据类型 变量名=值;可以使用逗号隔开并来并声明多个同类型变量;
//例如下面的代码
public class Demon04 {
public static void main(String[] args){
int a=10;
int b=2;
int c=3;
String name="王哲文";
char x='x';
double pi=3.14;
}
}
我们可以通过变量来操控内存中的数据
假设在内存上有一块空间,变量指的是这个空间,但是在空间中存什么东西是不确定的。
空间是本身就存在的但是需要添加变量,需要添加数据类型例如整型的A,B,C,为了区分A,B,C我们就需要变量名。
注意事项:
-
每个变量都有类型,类型可以是基本类型也可以是引用类型。
-
变量名必须是合法的标识符。
-
变量声明是一条完整的语句,因此每一个声明必须以分号结束。
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Variable{
static int allClicks=0;//类变量
String str="hello world";//实例变量。
public void method(){
int i=0;//局部变量
}
}
类变量
需要加一个关键词:static:静态的。
public class Demo05 {
//**************************
static double salary=2005;
//*****************************
//写了之后直接用,不需要初始化
//*****************************
String name;
int age;
//但是要用到这两个的话就不简单了
//*****************************
public static void main(String[] args) {
int i = 10;
System.out.println(i);
//局部变量:方法,语句块在{}内
//使用之前必须申明且必须初始化值
//*******************************
//变量类型 变量名字=new Demo05();//相当于把自己给拿到了,这个变量就是他自己
Demo05 demo05 =new Demo05();
System.out.println(demo05.age);
System.out.println(demo05.name);
System.out.println(salary);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIk0QYmp-1631008911362)(D:\JAVA学习图片\java变量常量作用域\03.png)]
类变量之后还会讲到他是从属于类的,会随着类的出现而出现,随着类的消失而消失。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o1erA2jk-1631008911366)(C:\Users\86188\AppData\Roaming\Typora\typora-user-images\image-20210904085647790.png)]
删去static后变量会报错。
在没有学后续课程时不要用new定义变量统统用static.
实例变量
和类变量差不多但是没有关键词static。
由上可知实例变量在方法的外面,类的里面。
从属于对象,即从属于类。
写了之后直接用,不需要初始化,但是这个类型的默认值
数值类型一般是0;0.0;
布尔值的默认值是false;
除了基本类型其余都是null.
public class Demo05 {
//写了之后直接用,不需要初始化,但是这个类型的默认值
//*****************************
String name;
int age;
//但是要用到这两个的话就不简单了
//*****************************
public static void main(String[] args) {
int i = 10;
System.out.println(i);
//局部变量:方法,语句块在{}内
//使用之前必须申明且必须初始化值
//*******************************
//变量类型 变量名字=new Demo05();//相当于把自己给拿到了,这个变量就是他自己
Demo05 demo05 =new Demo05();
System.out.println(demo05.age);
System.out.println(demo05.name);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V5D5jyMl-1631008911368)(D:\JAVA学习图片\java变量常量作用域\02.png)]
局部变量
在方法里面。
//属性简单理解为变量
//main方法
public class Demo05 {
public static void main(String[] args) {
int i = 10;
System.out.println(i);
//局部变量:方法,语句块,只在在{}内有效
//使用之前必须申明且必须初始化值
}
//其他方法
public void add(){
System.out.println(i);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wZ8Z7iLG-1631008911370)(D:\JAVA学习图片\java变量常量作用域\01.png)]
在其他方法中找不到i。
常量
-
常量:初始化之后不能再改变值!不会变动的值。
-
常量可以理解为特殊的变量,值被设定后,在程序运行过程中不允许被改变。
-
格式: final 常量名=值
例如:final double PI=3.14.
常量名一般使用大写字符
public class Demo06 {
static final double PI=3.1415926;
public static void main(String[] args){
System.out.println(PI);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c1NX4PdZ-1631008911372)(D:\JAVA学习图片\java变量常量作用域\05.png)]
public class Demo06 {
final static double PI=3.1415926;
public static void main(String[] args){
System.out.println(PI);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gbslPtHe-1631008911374)(D:\JAVA学习图片\java变量常量作用域\06.png)]
发现调换final顺序均能运行。
原因是final是修饰符,不存在先后顺序 。
double PI=3.1415926之前的都是修饰符
变量命名规范
- 所有变量·,方法,类名:见名知意!
- 类成员变量:首字母小写和驼峰原则(除了第一个单词以外,后面单词首字母大写如lastName)
- 局部变量:首字母小写和驼峰原则。
- 常量:大写字母,如果字母很多加下滑线。
- 类名:首字母大写,和驼峰原则。
- 方法名:首字母小写和驼峰原则:run(),runRun(.)