0.写在开头

最近在回顾Java类和对象相关的知识,发现在类变量的定义这里有的地方说法不一样,在此写一些自己的思考,如有不对欢迎指正。
在15版本的机器工业出版社Java语言程序设计这本书中提到,一个类的实例变量和静态变量称为类变量(class's variables)或数据域(data field)
另外一种说法是类变量特指静态变量,是一种用static关键字修饰的实例变量
最近的资源关于类变量的定义普遍以后者为多(可能之前的书都是老古董了?)

1. 类变量

类变量,也叫静态变量,是指在类中以static 关键字定义的变量。与实例变量不同,类变量属于类本身,而不是类的每个实例。换句话说,类变量在整个程序执行过程中只有一份拷贝,而且可以被该类的所有实例共享。

类变量的定义方式为:

public class MyClass {public static int count; // 类变量// ...
}

在上面的代码中,我们定义了一个名为 count 的类变量,它属于 MyClass 类本身,而不是 MyClass 的实例。因此,我们可以在不创建 MyClass 的实例的情况下访问 count 变量。

类变量可以通过类名直接访问,也可以通过实例名访问。以下是示例代码:

public class Main {public static void main(String[] args) {MyClass.count = 10; // 通过类名访问类变量MyClass obj = new MyClass();obj.count = 20; // 通过实例名访问类变量System.out.println(MyClass.count); // 输出 20System.out.println(obj.count); // 输出 20}
}

在上面的示例代码中,我们通过类名和实例名分别访问了类变量 count,并将其值设置为 10 和 20。最后,我们输出了count的值,得到的结果都是 20,这是因为类变量被所有实例共享。

2. 实例变量

实例变量是指定义在类中,但不以static 关键字定义的变量。每个类实例都有自己独立的一份实例变量,它们的值也是相互独立的。

实例变量的定义方式如下:

public class MyClass {public int count; // 实例变量// ...
}

在上面的代码中,我们定义了一个名为 count 的实例变量,它属于 MyClass 的每个实例而不是 MyClass 类本身。

与类变量不同,实例变量必须通过实例名来访问,而不能通过类名来访问。以下是示例代码:

public class Main {public static void main(String[] args) {MyClass obj1 = new MyClass();MyClass obj2 = new MyClass();obj1.count = 10; // 设置 obj1 的实例变量 count 的值为 10obj2.count = 20; // 设置 obj2 的实例变量 count 的值为 20System.out.println(obj1.count); // 输出 10System.out.println(obj2.count); // 输出 20}
}

在上面的示例代码中,我们分别创建了两个MyClass类的实例 obj1obj2,并将它们的实例变量count的值分别设置为1020。最后,我们通过实例名访问了count变量,并输出了它们的值。

需要注意的是,实例变量的作用域是整个类,但它们的生命周期是随着对象的创建和销毁而动态改变的。因此,在不同的实例中,同名的实例变量可以具有不同的值。

Java类变量和实例变量相关推荐

  1. Java——类变量和实例变量的区别

    成员变量:把类内.方法体外定义的变量称为成员变量. Java中的成员变量分为两种: 一是没有static修饰的,这些成员变量是对象中的成员,称为实例变量. 二是有static修饰的,称为类变量(静态变 ...

  2. Java千百问局部变量、类变量、实例变量有什么区别

    Java千百问局部变量.类变量.实例变量有什么区别 局部变量.类变量.实例变量有什么区别 在聊局部变量.类变量.实例变量有什么区别之前,我们需要了解一下Java变量. 1.Java变量是什么 在数学世 ...

  3. Java基础---类变量和实例变量

    类变量和实例变量 成员变量:把类内.方法体外的变量称为成员变量. package com.chen.offer.BiliBili;/*** @author chenshimiao* @Email 16 ...

  4. java instance变量_java 类方法和实例方法 以及 类变量和实例变量

    类体中的方法分为实例方法和类方法两种,用static修饰的是类方法 类方法: 对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址.从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通 ...

  5. java 简述类变量和实例变量的区别

    类变量也叫静态变量,也就是在变量前加了static 的变量: 实例变量也叫对象变量,即没加static 的变量: 类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到 ...

  6. Java中的类变量和实例变量的区别

    类变量也叫静态变量,也就是在变量前加了static 的变量: 实例变量也叫对象变量,即没加static 的变量: 区别在于: 类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变, ...

  7. java局部变量全局变量,实例变量的理解

    java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...

  8. 【面向对象-05】什么是类变量、实例变量、以及区别

    目录 一.类变量和实例变量的定义 二.类变量和实例变量的区别 三.代码体现 四.类变量在实际项目中的使用 一.类变量和实例变量的定义 |-成员变量:把类内.方法体外定义的变量称为成员变量.       ...

  9. Python类定义字类变量与实例变量

    学过JAVA或C++等语言的程序员再去学Python类设计时感觉非常不适应,因为Python是在太自由了,让人无所适从,来python定义类时的变量来说,其定义方式.作用域.操作方法都与上述两种语言有 ...

最新文章

  1. Android内存泄漏简介
  2. Java最新版本中另外发现五项漏洞
  3. @Cacheable原理
  4. ssh_exchange_identification: Connection closed by remote host解决方法
  5. 我的个人中心前端开发源代码_个人博客
  6. 将10个成绩排序java程序_快速排序——成绩排序
  7. 2021年奎屯七中高考成绩查询,奎屯高考成绩查询
  8. React Native之七牛
  9. 2022-02-27周报
  10. csdn笔记怎么用看这里
  11. uniapp 获取时间戳
  12. Leetcode 274 H指数
  13. 11.03 CSS的基本使用
  14. SQL入门之第十七讲——子查询
  15. Apriori算法是什么?适用于什么情境?
  16. coures包下载和安装 可解决报错ImportError: No module named '_curses'
  17. 没有权限访问储存此文件的计算机,win10你没有权限在此位置中保存文件的解决方法...
  18. Java 如何模拟真正的并发请求?
  19. HDF文件转Tif 温室气体 python代码
  20. vue 微信分享带图片,带title,带简介

热门文章

  1. 用 Python 验证股神巴菲特的投资经验
  2. 中国代工企业进入汽车行业是为了摆脱苹果?恐怕是更好为苹果服务
  3. 201671010426 孙锦喆 实验三作业互评与改进报告
  4. 了解测序深度用什么软件
  5. 今日科技联播:外星语言专家,已经开始讨论与外星人交流会面临的挑战?!...
  6. 12个月的英语名称来历
  7. 学习韩顺平-Linux:
  8. 是个有趣的实验(10 interesting experiments)
  9. [C/C++]员工考勤记录 - 2019校招编程刷题
  10. 一群爱做“傻事”的技术宅