一:实例变量和类变量

类体中的成员变量可细分为实例变量和类变量。用关键字static修饰的称作类变量,否则称为实例变量。例如:

class Dog{

float x;    //实例变量

static int  y;    //类变量

}

实例变量与类变量的区别: ①不同对象的实例变量互不相同,也就是说分配给不同对象的实例变量占有不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的实例变量。②所有对象共享类变量,即分配给这些对象的这个类变量占有相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量。③类变量是属于该类的,在类被加载到内存时就为类变量分配了相应的内存空间,故,可通过类名直接访问类变量。

class Factory {

int value = 0;

int limit = 0;

static int step = 2;    //step为类变量

void increat(){

value++;

if(value == limit){

value = 0;

}

}

int getValue(){

int i;

return value;

}

}

public class Lei {

public static void main(String[] args) {

//声明两个对象d1,d2

Factory d1 = new Factory();

Factory d2 = new Factory();

System.out.println(d1.getValue());//输出结果为0

System.out.println(d2.getValue());//输出结果为0

System.out.println(d1.step);//输出结果为2

System.out.println(d2.step);//输出结果为2

d1.increat();//对d1进行了++

d1.step = 3;//对d1的step进行了赋值

System.out.println(d1.getValue());//d1的值变成了1

System.out.println(d2.getValue());//d2的值没有变,依然为0

System.out.println(d1.step);//d1.step的值变成了3

System.out.println(d2.step);//d2.step的值也变成了3!

//这也就说明了,一个对象里的类变量改变,其他对象里的对应的类变量也会改变

//对于类变量,可以直接用类名来访问而不用创建对象

Factory.step = 5;

System.out.println(Factory.step);

}

}

二:实例方法和类方法

方法类型前不加关键字static修饰的为实例方法,加static关键字修饰的是类方法。

区别:①要用对象调用实例方法。②可以用对象调用类方法,也可以用类名调用类方法,也就是说不必创建对象就可以直接调用类方法(创建对象会导致类中的实例变量被分配内存空间)。

java实例成员和类成员变量的区别_Java之实例成员与类成员相关推荐

  1. java中为什么需要常量和变量的区别_Java中的变量和常量

    1.变量(variable) 变量,顾名思义,就是变化的量. 我们可以通过变量来操作存储空间中的数据,变量就是指代这个存储空间,一旦你定义了一个一个变量,那么空间的位置就确定了,虽然空间位置是确定的, ...

  2. java中为什么需要常量和变量的区别_Java中常量和最终变量之间的区别?

    Java中的常量 常量变量是其值固定的变量,程序中仅存在一个副本.声明常量变量并为其分配值后,就无法在整个程序中再次更改其值. 与C语言不同,Java(直接)不支持常量.但是,您仍然可以通过声明变量s ...

  3. 分析Java中的三种不同变量的区别

    1.首先分析Java中的三种不同变量的区别,如下表所示   概念 默认值 其他 类变量 也叫静态变量,是类中独立于方法之外的变量 用static 修饰 有默认初始值,系统自动初始化. 如boolean ...

  4. python 私有和保护成员变量如何实现?—— 单下划线 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量; 双下划线 开始的是私有成员,意思是只有类对象自己能访问...

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  5. java反射成员变量的值_Java反射如何修改private final成员变量值

    大家都知道使用java反射可以在运行时动态改变对象的行为,甚至是private final的成员变量,但并不是所有情况下,都可以修改成员变量.今天就举几个小例子说明. 基本数据类型 /** * @au ...

  6. java中常量和变量的区别_Java语言基础 变量和常量

    变量和常量 1.变量的有效范围(作用域) (1)在类体中定义的变量被称为成员变量,成员变量在整个类中都有效.类的成员变量分为静态变量和实例变量,静态变量通过修饰符static确定,并且可以通过&quo ...

  7. java常量和变量的区别_java常量与变量的区别

    java常量与变量的区别 一.常量 用final修饰(也称最终变量) 常量在声明时必须赋初值,赋值后不能再修改值 常量名通常用全大写字母表示 声明时需要添加final或static final类型修饰 ...

  8. java静态变量和实例变量的区别_Java 中静态变量和实例变量区别

    静态变量属于类,该类不生产对象,通过类名就可以调用静态变量. 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量. 在程序运行时的区别: 实例变量属于某个对象的属性,必须创建了实例对象,其中的 ...

  9. java实例和对象对象的区别_java中实例与对象的区别和联系

    对象是抽象的说法,你可以把它看作一个符合它自身定义的所有实例的代表,而实例则是对象的现实体现. 你可以说一个实例是一个对象,但你不能说一个对象是一个实例.因为定义对象时只是把自身的规则和逻辑定义好,实 ...

最新文章

  1. leetcode算法题--有效的括号
  2. android高仿微信UI点击头像显示大图片效果
  3. 90后80后70后60后和50后的无奈
  4. Python装饰器执行顺序详解
  5. 局域网延时大怎么办?
  6. 响应式系统reactive system初探
  7. PyQt5 快速开发 与 实战
  8. Bengio:我留在学术圈为全人类作贡献,而不是为某一个公司赚钱
  9. PCB BOM也能如此好看?图形化交互式BOM工具Interactive Html Bom使用分享
  10. Ubuntu18.04设置简单密码
  11. Windows 10 下使用 telnet 客户端/服务端工具进行连接
  12. Win10 重置IE上网
  13. python日历教程_基于python实现简单日历
  14. Win10系统电脑开机后显示无法登录到你的账户解决办法(亲测)
  15. 传16寸MacBook Pro九月发布 分辨率3072x1920
  16. 1. 线性回归/非线性回归代码
  17. k8s kubeadm 安装
  18. CTF 逆向之MD5短爆破
  19. 关于Altium Designer如何在PCB中精准绘制板框以及精准定位问题
  20. 使用TextToSpeech语音读取

热门文章

  1. 程序员的进阶课-架构师之路(12)-2-3-4树
  2. 记录一次java.lang.ClassCastException的java类型转换异常解决方案-附最终解决方案
  3. PowerDesigner(一)-PowerDesigner概述(系统分析与建模)
  4. Linux CentOS 7 安装 字体库文件(simsun.ttf、simheittf.ttf)
  5. TransH:将知识嵌入到超平面(知识图谱嵌入)2014 AAAI
  6. labview周立功can通讯程序.rar_使用Labview进行CAN 通讯之dbc解析
  7. [-1]是也乎,( ̄▽ ̄)
  8. android 事件反拦截
  9. 廖雪峰JS教程学习记录----Map和Set
  10. struct和typedef struct用法