首先看个例子:
package zm.demo;
public class Demo {
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;
}
}
1.成员变量:作用范围是整个类,相当于C语言中的全局变量,定义在方法体和语句块之外,一般定义在类的声明之下;成员变量包括:实例变量、类变量(又叫静态变量)和常量。
2.局部变量:作用范围在它定义的方法体或者语句块内部,出了这个范围就无效了。
3.实例变量:不用static修饰的成员变量,随对象的创建而创建,每个对象都有自己的独有的实例变量,属于对象私有;调用要实例化对象,用对象名.实例变量名才可以调用,如:Demo demo = new Demo(); int YouAge = demo.age;(当然,一般都会将成员变量设为private,通过属性方法调用)。
4.静态变量:用static修饰的成员变量,又叫类变量,一个类里只有一份,属于对象共有,调用是一般用类名.静态变量名就可以调用,或者用对象名.静态变量名也可以调用,调用的都是同一个变量,如:Demo.height。
5.类变量:和静态变量是同一个概念。
6.常量:用static final修饰的成员变量叫常量,在类中也是只有一份,同时不可以修改它的值。
7.字段:通常是在类中定义的成员变量,所以也和成员变量的概念差不多是一个意思。
8.属性:属性是只局限于类中方法的声明,不与其他的类成员相关。只与类中的get()/set()方法有关。
如果类中有这样的getX()/setX()方法,我们就可以说类中有可以读写的x属性(如果getXY()/setXY()方法后面的Y是小写,就叫xy属性,如果Y是大写,就叫XY属性),如:
public int getId() {//id的可读属性
return Id;
}
public void setId(int id) {//id的可写属性
Id = id;
}
我们就说Demo类有可读写的id属性,只有getId(),没有setId(),我们就说有可读的id属性,只有setId(),没有getId(),我们就说有可写的id属性。
总结:
该Demo类中有:5个字段、3个可读写属性、5个成员变量、1个局部变量、3个实例变量、1个静态变量(类变量)和1个常量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)