java如何区分变量、成员变量、实例变量、静态变量、静态常量(类变量)、常量、静态常量、字段、属性

一、概念区分

0、变量

通常说的变量,就是将对象的状态存储到字段中

int a = 10;

1、成员变量

成员变量:作用范围是整个类,相当于C语言中的全局变量,定义在方法体和语句块之外,一般定义在类的声明之下;
成员变量包括:实例变量、静态变量(又叫类变量) 和 常量。

2、实例变量

实例变量: 不用 static 修饰的成员变量。
随对象的创建而创建,每个对象都有自己的独有的实例变量,属于对象私有。
调用要实例化对象,用 对象名.实例变量名 才可以调用,如:

Demo demo = new Demo(); 
int youAge = demo.age;

当然,一般都会将成员变量设为 private ,通过属性方法调用。

3、静态变量、类变量

静态变量: 用static 修饰的成员变量,又叫类变量。
一个类里只有一份,属于对象共有,调用是一般用 类名.静态变量名 就可以调用,或者用 对象名.静态变量名 也可以调用,调用的都是同一个变量,如:Student.height

static final 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;
    }
}
发布了297 篇原创文章 · 获赞 263 · 访问量 114万+

猜你喜欢

转载自blog.csdn.net/xiaojin21cen/article/details/104274624
今日推荐