文章目录
一、概念区分0、变量1、成员变量2、实例变量3、静态变量、类变量4、常量5、静态常量6、字段7、 属性8、局部变量 二、代码示例一、概念区分
0、变量
通常说的变量,就是将对象的状态存储到字段中
int a = 10;
1、成员变量
成员变量:作用范围是整个类,相当于C语言中的全局变量,定义在方法体和语句块之外,一般定义在类的声明之下;
成员变量包括:实例变量、静态变量(又叫类变量) 和 常量。
2、实例变量
实例变量: 不用static
修饰的成员变量。
随对象的创建而创建,每个对象都有自己的独有的实例变量,属于对象私有。
调用要实例化对象,用对象名.实例变量名
才可以调用,如:
Demo demo = new Demo(); int youAge = demo.age;
实例变量和实例方法是 对象的属性。
当然,一般都会将成员变量设为private
,通过属性方法调用。
3、静态变量、类变量
静态变量: 用static
修饰的成员变量,又叫类变量。
一个类里只有一份,属于对象共有,调用是一般用类名.静态变量名
就可以调用,或者用对象名.静态变量名
也可以调用,调用的都是同一个变量,如:Student.height
。
static int height = 10;
4、常量
用final
修饰的成员变量叫常量,一旦赋值则不可修改值。
final int TIMES= 10;
5、静态常量
用static final
修饰的成员变量叫常量,一旦赋值则不可修改值。
静态常量
的 作用域是全局的,属于类级别的,不需要创建对象就可以访问。
static final int TIMES = 10;
6、字段
通常是在类中定义的成员变量,所以也和成员变量的概念差不多是一个意思。
7、 属性
属性是只局限于类中方法的声明,不与其他的类成员相关。只与类中的get()/set()
方法有关。
如果类中有这样的getX()/setX()
方法,我们就可以说类中有可以读写的x属性。
如:
private String name;public int getName() {//name 的可读属性return this.name;}public void setName(String name) {//name 的可写属性this.name= name;}
8、局部变量
作用范围在它定义的方法体或者语句块内部,出了这个范围就无效了。
public void get(){int a = 10;}
二、代码示例
public class Student{private int id;//成员变量(字段)、实例变量 (表示该id变量既属于成员变量又属于实例变量)private String name; //成员变量(字段)、实例变量public int age;//成员变量(字段)、实例变量(这里用来举例子,在实际中一般都会设置为private)public static final String mood = "开心"; //成员变量(公共字段)、静态常量private static String height = "都很高"; //成员变量(字段)、 静态变量(类变量)public void study() {//普通方法String study = "learning"; //局部变量}public int getId() {//id的可读属性return Id;}public void setId(int id) {//id的可写属性Id = id;}public String getName() {//name的可读属性return name;}public void setName(String name) {//name的可写属性this.name = name;}public int getAge() {//age的可读属性return age;}public void setAge(int age) {//age的可写属性this.age = age;}}
java如何区分变量 成员变量 实例变量 静态变量 静态常量(类变量) 常量 静态常量 字段 属性