首先看个例子:

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个常量。

Java中字段、属性、成员变量、局部变量、实例变量、静态变量、类变量、常量的更多相关文章

  1. Java中的属性与字段的区别

    Java中属性和字段的区别  Java中的属性,通常可以理解为其属名性时根据get和set方法名得出的. 其规则是:去掉get或set后其剩余的字符串,如果第二个字母是小写的,则把第一个字母也变成小写 ...

  2. 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

    方法一:使用Arrays.asList()方法   1 2 String[] asset = {"equity", "stocks", "gold&q ...

  3. 局部变量存储区域静态变量存储区域static变量存储区域

    局部变量存储区域静态变量存储区域static变量存储区域 常见的存储区域可分为: 1.栈 由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数等. 2.堆 ...

  4. Java中实例方法,实例变量,静态方法,静态变量,final方法重写的问题,覆盖

    Java中只有非私有的实例方法能被重写,即实现多态,子类可以覆盖父类的方法,但是实例变量不能覆盖,若子类和父类均定义了同样名称的变量,则对于子类来说这是两个不同的变量,要想调用父类的变量必须显示去调用 ...

  5. java中static修改成员变量和函数和其他使用

    一.通过static修饰的成员变量初始化只会初始化一次 //静态变量初始化只会初始化一次 public class zuishuai { public static void main(String[ ...

  6. Java中的异常处理从概念到实例

    1.概念 采用新的异常处理机制 在以往的程序开发过程中,经常采用返回值进行处理.例如,在编写一个方法,可以返回一个状态代码,调用者根据状态代码判定出错与否.若状态代码表示一个错误,则调用这进行相应的处 ...

  7. JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?

    本文主要记录:在JAVA中,(局部)内部类访问某个局部变量,为什么这个局部变量一定需要用final 关键字修饰? 首先,什么是局部变量?这里的局部是:在方法里面定义的变量. 因此,内部类能够访问某局部 ...

  8. Java中字段赋值顺序的问题

    static字段 public class Client { public static int i = 2; static { i = 100; } public static void main( ...

  9. Java中的mutable和immutable对象实例讲解

    1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改. 不可变数据类型:其内部的操作不会改变内部的值,一旦试图 ...

随机推荐

  1. 打开本页N秒后跳转页面

    在head标签里面 <meta http-equiv="refresh" content="4;url=" />

  2. python if __name__=='__main__'的理解

    定义一个模块叫module.py: def main(): print "we are in %s" %__name__ if __name__=='__main__': main ...

  3. SQL-41 构造触发器

    题目描述 构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中.CREATE TABLE employees_test(ID IN ...

  4. Java 作业6

    我总算,又双叒叕拾起了Java,啊! 1.编写一个JApplet程序,包含一个JLabel对象,并显示用户的姓名. package experiment; import java.awt.Border ...

  5. L328 What Is Millennial Burnout?

    What Is Millennial Burnout?Do you often feel stressed? Does the pace of life make you feel like you' ...

  6. gzip 所使用压缩算法的基本原理(选摘)

    摘自:http://blog.csdn.net/ghevinn/article/details/45747465  gzip 所使用压缩算法的基本原理 gzip 对于要压缩的文件,首先使用LZ77算法 ...

  7. Windows10 VS2017 C++使用crypto++库加密解密(AES)

    参考文章: https://blog.csdn.net/tangcaijun/article/details/42110319 首先下载库: https://www.cryptopp.com/#dow ...

  8. HttpURLConnection与HttpClient浅析

    转自:https://blog.csdn.net/u012838207/article/details/82867701 HttpURLConnection与HttpClient浅析 1. GET请求 ...

  9. 自动化测试-12.selenium的弹出框处理

    前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt ...

  10. 使用ssh免密登录

    在开发中经常会遇到远程登录服务器,要经常输入密码.有时密码太复杂记不住,还需要保存到本地文件中. 可以使用ssh命令,配置密钥登录,这样就不需要输入密码,一劳永逸,何乐而不为 ^--^ 配置密钥只需要 ...