1、成员变量
定义在类中的变量,常常也被称作字段、属性等,主要被用来描述类。
定义方法
一般定义在类的最前方,定义格式采用
权限关键字(public/protected/private/default) + 数据类型关键字(byte/char/short/int/long/float/double/boolean) + 成员变量名
clss 类名{
权限关键字 数据类型关键字 变量名;(标点符号用英文的)
}
注意没有权限关键字时默认关键字为default
不知道什么叫数据类型关键字的看下面
不知道什么叫权限关键字的看下面
2、局部变量(全局变量)
定义在main中被{}囊括的变量,这种变量的生命周期(可使用范围)就在{}中。
3、类变量
类变量其实就是在类中由static修饰的特殊成员变量,每个成员变量只对应一个对象,而static修饰的是对应一个类,即一个类即使实例化多个对象也只会有一个类变量
public class Computer {
private String cpu; // cpu
private String memory; // 内存
public String screen; // 屏幕
String brand; // 品牌---->default属性
public static String system;// 类变量
public Computer(String brand, String cpu, String memory, String screen) {// 带四个参数的构造方法
this.brand = brand;
this.cpu = cpu;
this.memory = memory;
this.screen = screen;
}
}
class TestComputer {
public static void main(String[] args) {
Computer p = new Computer("HW", "i7", "8G", "13*14");// 对象p实例化
Computer h = new Computer("HW", "i4", "4G", "13*14");// 对象h实例化
System.out.println(p.brand); // 可以看到这里是用的对象.变量名 进行输出
System.out.println(p.screen); // 可以看到这里是用的对象.变量名 进行输出
Computer.system = "windows11";// 这里被static修饰的类变量使用类名.变量名
System.out.println(p.system);// 可以看到这里能正确使用,但不符合规范不建议这样写
// 那么如果我们通过对象名对他进行更改是否会令其原本的类变量更改呢?
p.system = "kalilinux";
System.out.println(Computer.system);// 拭目以待
}
}
好的那么我们可以看到通过对象修改的类变量影响了类变量的值,证明类变量是依托于类的而不是实例化的对象。