java入门疑问?public?static?

Posted 若你遇见她

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java入门疑问?public?static?相关的知识,希望对你有一定的参考价值。

        刚刚接触java的时候,就反复出现的“public”,“static”。一直是我的心病。早就想搞清楚了。在网上看过许多大佬的帖子后终于有了自己的理解了。下面我将把我的看法和理解展示出来。供给入坑java的学弟学妹们。若其他大佬发现我的理解存在问题,也欢迎交流探讨和指正。

一、怎么理解关键词

        无论是public还是static。都是java语言的关键词。怎么理解关键词呢?简单来说“吧关键词看做标签”。举个例子。比如看见 int j = 0;你就轻易明白这句语言是“定义了一个名称为j的整形变量,赋值为0”。这句话中j是主体,所以就可以把 int 看做贴在j这个主体上的一个标签。而且这个int标签代表着“整形”。同样的,public和static都是标签。用来修饰后面的主体。

这里是我的小tip。看完tip,带着这个ip的思路去理解二者就好理解了。

二、public

public翻译就是“公共的”。即被贴上public的主体就是公共的。这个共有的代表他可以被其他主体访问。就像公共物品一样。有他相对的是“private”这个标签。他代表私有的。就像私人物品,只能自己访问。(这里就可以参考类及其子类。在父类中声明public的变量,那么子类就可以对其进行访问。但是如果是private。那就不能给他子类)

三、static

static的翻译为“静态的”。这个被贴上这个标签的主体就是代表着静态。与他相对的是非静态。

静态变量:他可以被所有类的实力对象共享,他在内存中只有一份,在类初始化的时候就会加载是在类第一次访问是就会给静态变量赋值。(包中所有类都可以访问,这里有点c全局变量的味道。比如我在一个类中声明了static变量 x。我可以在另一个类中对她进行输出)。

非静态变量:实例变量是实例对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个实例对象拥有的副本互不影响(哪个类实例化了我,就只能这个类使用。比如你在一个类中“int j = 0”.其他类中输出j.就会报错。因为这个j不能被没有实例化他的类访问)

这里都只是对概念方面的理解,后续本人深入学习后后继续更新的。

以上是关于java入门疑问?public?static?的主要内容,如果未能解决你的问题,请参考以下文章

java课堂疑问解答与思考2

Java从入门到放弃——05.修饰符static,final,权限修饰符

[转] Java中public,private,final,static等概念的解读

Java静态内部类

一些课上小疑问

Java入门系列-12-成员方法