静态变量和实例变量的区别(配图解释专业术语,通俗易懂)

1:首先在语法定义上区别:静态变量前面要加static,实例变量不用

2:在程序运行时:实例变量输入对象的属性,必须创建了实例对象(如 new)才会被分配空间,才可以使用实例变量,

                              静态变量不属于某个实例对象,而是属于类,也叫类变量,只要程序加载了类的字节码,不用创建任何实例对象就会被分配空间,就可以被使用

3:总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

 1 public class BainLiang {
 2 
 3 public static void main(String[] args) {
 4 // TODO Auto-generated method stub
 5 //直接调用测试:
 6 System.out.println(QuBie.staticInt);
 7 // System.out.println(QuBie.shiInt);//报错
 8 QuBie qb1=new QuBie();
 9 QuBie qb2=new QuBie();
10 qb1.shiInt=8;
11 qb1.staticInt=8;//这里改变以后,再创建的对象也是会用改过的数值
12 QuBie qb3=new QuBie();
13 }
14 }
15 class QuBie{
16 publicstatic int staticInt=0;
17 publicint shiInt=0;
18 public QuBie(){
19 staticInt++;
20 shiInt++;
21 System.out.println("静态变量"+staticInt+"   实例变量"+shiInt);
22 }
23 }

静态变量   这种写法在生活中非常使用,如买火车票,一共100张,有4个窗口在卖,也就是说一定要公用一个资源,也就是要定义成static。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏海天一树

小朋友学经典算法(12):分割字符串

在分割字符串之前,先来了解一些跟字符串相关的变量或函数: (1)size_type:size_type由string类类型和vector类类型定义的类型,用以保...

1232
来自专栏北京马哥教育

python模块之re正则表达式详解

正则表达式是一种小型的、高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分。在python中,主要通过re模块来实现。这篇文...

4129
来自专栏C/C++基础

C/C++结构体初始化与赋值

结构体是常用的自定义构造类型,是一种很常见的数据打包方法。结构体对象的初始化有多种方式,分为指定初始化、顺序初始化、构造函数初始化。假如有如下结构体。

2172
来自专栏企鹅号快讯

宝宝都能学会的python编程教程5:循环-2

“死循环”是必须要避免的,当然“活循环”也未必都要执行完。 break 语句 比如我们要从一个列表中找到某个特定元素,那么只要找到了这次循环就可以停止了,没有必...

2117
来自专栏闻道于事

JavaScript深入浅出补充——(二)语句和严格模式,对象

三、语句和严格模式 JavaScript程序由语句组成,语句遵守语法规则。 例如:if语句,while语句,with语句等等…… ? block块语句 常用于组...

3024
来自专栏用户画像

String s=new String("abc")创建了几个对象?

String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?

1231
来自专栏企鹅号快讯

Python数据结构

所属系列:【Python工程师系列】 所属主题:【Python零基础】 1 ? 编码格式建议 不用Tab缩进,用4倍空格缩进 必要时换行(避免单行超出79个字符...

2180
来自专栏liulun

Nim教程【八】

有序类型 值连续的枚举类型、整型、字符类型、布尔类型(还有这些类型的变种), 都可以称之为有序类型,Nim为有序类型提供了一系列特殊的方法 方法签名 方法...

2156
来自专栏专注数据中心高性能网络技术研发

[C++]C++面试知识总结

1.程序运行知识 1.1 内存布局和分配方式 C程序的内存布局如下: ? 静态存储区:存储全局变量和static变量,通常在程序编译期间已经分配好了。 BSS...

3324
来自专栏Python攻城狮

python高级编程1.==,is的使用 2.深拷贝、浅拷贝 3.属性property

@property成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用

992

扫码关注云+社区

领取腾讯云代金券