一.局部变量
(1)局部变量声明在方法、构造方法或者语句块中,并且是在方法、构造方法或语句块执行时被创建,结束时被销毁
(2)局部变量只能在它的方法、构造方法、语句块中可见,public、private等访问修饰符不能修饰局部变量
(3)局部变量是在栈上分配的,局部变量没有初始值,声明后必须初始化才能使用
例:
package com.runoob.test;public class Test{ public void pupAge(){int age = 0; age = age + 7;System.out.println("小狗的年龄是: " + age);}public static void main(String args[]){Test test = new Test();test.pupAge();}
二.实例变量
(1)实例变量声明在类中方法、构造方法或语句块之外,随着类对象的创建而创建,随着类对象的销毁而销毁,当一个对象被实例化的时候,每个实例变量的值就跟着被确定
(2)实例变量至少要被一个方法、构造方法、语句块调用,使得外部能够通过这些方式获取实例变量的信息,访问修饰符可以修饰实例变量,一般情况下把实例变量设为私有并通过访问修饰符修饰使得实例变量对子类可见
(3)实例变量可以声明在使用前或者使用后,实例变量可以直接用变量名访问,但在静态方法和其他类中应使用完全限定
(4)实例变量有默认值,数据型变量的默认值为0,布尔型变量的默认值是false,引用类型变量的默认值是null,变量的名可以在声明时指定,也可以在构造方法中指定
Employee.java 文件代码:
import java.io.*;public class Employee{// 这个实例变量对子类可见public String name;// 私有变量,仅在该类可见private double age;//在构造器中对name赋值public Employee (String empName){name = empName;}//设定age的值public void setAge(int empAge){age = empAge;}// 打印信息public void printEmp(){System.out.println("名字 : " + name );System.out.println("年龄 : " + age);}public static void main(String args[]){Employee empOne = new Employee("MrPENG");empOne.setAge(100);empOne.printEmp();}}
三.类变量(静态变量)
(1)类变量也被称为静态变量,在类中以static关键字声明,但很少单独使用static声明,并且要声明在方法、构造方法、语句块之外,类变量存储在静态存储区。
(2)无论一个类创建了多少个对象,该类拥有类变量的一份拷贝,类变量除了被声明为常量外很少使用,常量是指声明为public/private,final和static类型的变量,常量的值一旦初始化就不可修改。
(3)类变量在程序开始时创建,在程序结束时销毁,类变量和实例变量具有相似的可见性,但为了对类的使用者可见,大多数类变量被声明为public类型
(4)类变量的默认值和实例变量相似,数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
(5)静态变量被声明为public static final类型时,变量名必须大写,如果不是public和final类型,则命名规则同实例变量和局部变量一致。静态变量可以通过:“类名.变量名”的方式访问。
public class Employee {
//age是静态的私有变量
private static int age;
// ROLE是一个常量
public static final String ROLE = "开发人员";
public static void main(String args[]){
age = 100;
System.out.println(ROLE+"年龄:"+age);
}
}