变量声明格式
在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:
type identifier [ = value][, identifier [= value] …] ;
格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。
以下列出了一些变量的声明实例。
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’。
局部变量
局部变量声明在方法、构造方法或者语句块中
局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
访问修饰符不能用于局部变量;
局部变量只在声明它的方法、构造方法或者语句块中使用;
局部变量是在栈内存中分配的。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用
局部变量实例:
实例中age是一个局部变量。定义在pupAge()方法中,它的作用域就在这个方法中。
public class Test{
public void pupAge(){
int age = 5;
System.out.println("小狗的年龄是: " + age);
}
public static void main(String[] args){
Test test = new Test();
test.pupAge();
}
}
实例变量
实例变量声明在一个类中,但在方法、构造方法和语句块之外;
实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
实例变量可以声明在使用前或者使用后;
访问修饰符可以修饰实例变量;
实例变量对于类中的方法、构造方法或者语句块是可见的。
一般情况下应该把实例变量设为私有。
实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。
变量的值可以在声明时指定,也可以在构造方法中指定,也可以通过方法进行初始
实例变量可以直接通过变量名访问。
类变量
类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
静态变量储存在静态存储区。
静态变量在第一次被访问时创建,在程序结束时销毁。
与实例变量具有相似的可见性。
但为了对类的使用者可见,大多数静态变量声明为public类型。
默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。
此外,静态变量还可以在静态语句块中初始化。
静态变量可以通过:ClassName.VariableName的方式访问。
常量
使用final修饰的类变量则可以称之为常量
常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。
如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。
// Java中变量的命名规则:
// 1,只能使用字母,$,_开头
// 2,首字母之后,可以使用字母,$,_,数字的任意组合
// 3,如果变量名称由多个单词组成,那么第一单词的首字母小写,其他单词的首字母大写
// 4,变量名称不可以使用java中的关键字(在IDEA中变橙色的就是关键字)
// 5,变量名称不可以相同
// 6,变量名称的长度,理论上来讲是不限制长度,但是建议命名能达到见明思意的效果
// 7,局部变量只能申明在方法中
// 8,全局变量申明在类里面,方法之外
// 9,访问修饰符不能用于局部变量
// 10,局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用
public class Lesson {
// 声明变量:全局变量包含:实例变量,类变量
// 实例变量
private double pi = 3.1415926;
// 类变量(静态变量)
// 使用static修饰的全局变量称之为类变量
public static float height = 1.8f;
// 申明一个全局变量,不赋值,那么该变量根据变量的类型来确定默认值
public static boolean flag;
// 常量 使用final修饰的全局变量则可以称之为常量
// 常量 就是在申明后,它的值是不可以改变的
// 所以在申明常量的时候必须初始常量的值。
// 建议常量的命名使用全大写字母,如果有多个单词则使用下划线_隔开
final int AGE = 30; // 不规范的常量申明
// 规范的常量申明格式:
public final static int PERSON_AGE = 40;
// 定义了一个demo实例方法
public void demo() {
// 在实例方法中可以直接是实例变量
// 实例变量在实例方法中可以使用(this.实例变量名称) 的形式来进行访问
System.out.println(this.pi * radius);
// 在实例方法中可以直接使用类变量
// 类变量可以直接使用 (类名.类变量名称) 的形式来进行访问
System.out.println(Lesson4.height * Lesson4.width);
}
// 实例变量
private double radius = 10;
// 类变量(静态变量)
// 使用static修饰的全局变量称之为类变量
public static float width = 1.8f;
// 创建main方法的快捷方式:psvm
// 使用了static修饰的方法叫静态方法,也可以叫类方法
// 在静态方法(类方法)中不可以直接使用实例变量
public static void main(String[] args) {
// 声明变量:局部变量
// 1,声明了一个int类型的变量
// 2,定义变量的名称位number
// 3,=为变量赋值
int number = 13;
System.out.println("Java中的局部变量number:" + number);
// 同时申明3个相同类型的变量
int number1, number2, number3;
// 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用
// System.out.println(number1);
// 同时申明3个相同类型的变量并赋值
byte byte1 = 1, byte2 = 2, byte3 = 3;
System.out.println(byte1);
// 在静态方法(类方法)中不可以直接使用实例变量
// 如果要使用那么必须通过创建类对象,然后通过类的对象来访问使用
// System.out.println(pi * radius); 错误,不可以直接访问
Lesson4 lesson4 = new Lesson4();
System.out.println(lesson4.pi * lesson4.radius);
// 在类方法中可以直接使用类变量
System.out.println(height * width);
// 全局变量有默认值的,不赋值可以直接使用
System.out.println(flag);
}
// 定义了一个静态语句块
static {
System.out.println("=========================");
// 在类方法中可以直接使用类变量
System.out.println(height * width);
// 静态块中也不能直接访问实例变量
// System.out.println(pi * radius);
}
}