我需要对静态意味着什么有一个非常基本的了解

qui*_*ykd -8 java static

我是一个java新手,尽管到处搜索,我找不到静态实际做什么的基本定义.有人可以告诉我这是什么意思吗?另外,请说出你的答案,好像我甚至不知道java是什么,没有编程语言的例子吗?非常感谢.编辑:所以我的理解是,当你在构造函数中有一个静态变量时,

i.e. you have 
class test{
   static int a = 5;
   public test(){
}

}
Run Code Online (Sandbox Code Playgroud)

然后

test test1 = new test();
test test2 = new test():
Run Code Online (Sandbox Code Playgroud)

,test1.a等于5,test2.a也等于5.如果你改变了test1.a = 6,test2.a也会等于6?

lin*_*asy 5

既然你说过,你甚至不懂Java,这是我能开始做的最好的:

Java中有一个创建类的概念.

大多数课程就像一个模板:例如:人类.

要使用这个类,我们实例化它,或者说,我们创建它的对象:例如:Andy,Tina.

===============

我们通常通过引用实例(对象)来访问变量或函数.

Andy.getName(); // Andy is an instance of Human Class. Normally created as -> Human Andy = new Human();
Run Code Online (Sandbox Code Playgroud)

如果这些成员或函数标记为静态,则可以直接访问类本身.

Human.getName();  //Human is a class
Run Code Online (Sandbox Code Playgroud)

但是,我建议你从Kathy Sierra的"Head First Java"开始.非常适合您的体验.


use*_*821 5

静态意味着您不需要对象实例来访问变量.例:

class Smth{
public static int a;
public int b;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以这样做:Smth.a = 6; 但你做不到:Smth.b = 3; 如果要访问b,必须首先创建一个对象实例,如下所示:Smth instance = new Smth(); instance.b = 3;

而对于记录:incance.a是与Smth.a相同的变量.因此,如果您设置instance.a = 2以及稍后您想要阅读Smth.a,您将阅读2.您无法尝试运行一个简单的代码,并测试它,你得到什么.

通常,静态变量对于所有类实例都是相同的,如果在一个实例中进行更改,则在所有实例中都会更改它.非静态变量每个类的实例都有自己的变量,因此如果在一个实例中更改值,则其他实例中的另一个值不会更改.