我是一个java新手,尽管到处搜索,我找不到静态实际做什么的基本定义。有人可以告诉我这是什么意思吗?另外,请说出你的答案,好像我甚至不知道java是什么,没有编程语言的例子吗? 非常感谢。 编辑:所以我的理解是,当你在构造函数中有一个静态变量时,
i.e. you have
class test{
static int a = 5;
public test(){
}
}
然后
test test1 = new test();
test test2 = new test():
,test1.a
等于5,test2.a
也等于5.如果您更改了test1.a = 6
,test2.a
也会等于6?
答案 0 :(得分:5)
既然你说过,你甚至不懂Java,这是我能开始做的最好的事情:
Java中有一个创建类的概念。
大多数课程就像一个模板:例如:人类。
要使用此类,我们实例化它,或者说,我们创建它的对象:例如:Andy,Tina。
===============
我们通常通过引用实例(对象)来访问变量或函数。
Andy.getName(); // Andy is an instance of Human Class. Normally created as -> Human Andy = new Human();
如果这些成员或函数被标记为静态,则可以直接访问这些成员或函数。
Human.getName(); //Human is a class
但是,我建议你从Kathy Sierra的“Head First Java”这样的书开始。非常适合您的体验。
答案 1 :(得分:5)
静态意味着您不需要对象实例来访问变量。 例如:
class Smth{
public static int a;
public int b;
}
在这种情况下,你可以这样做: Smth.a = 6; 但你做不到: Smth.b = 3; 如果要访问b,必须首先创建一个对象实例,如下所示: Smth instance = new Smth(); instance.b = 3;
并且记录:incance.a是与Smth.a相同的变量。 因此,如果您设置instance.a = 2以及之后您想要阅读Smth.a,您将阅读2。 你不能尝试运行一个简单的代码,并测试它,你得到了什么。
通常,静态变量对于所有类实例都是相同的,如果在一个实例中进行更改,则在所有实例中都会更改它。非静态变量每个类的实例都有自己的变量,因此如果在一个实例中更改值,则其他实例中的另一个值不会更改。
答案 2 :(得分:3)
静态成员存储在类级别而不是对象级别。您可以直接使用类名访问静态成员。无需创建对象。
答案 3 :(得分:3)
静态意味着属于一个类,而不是属于一个对象(一个类的实例)
答案 4 :(得分:1)
假设你有一个整数x,你在你的代码的不同层次上使用x表示约5次。现在如果x在程序的任何部分发生变化,那么它会影响到每个地方。
如果您将方法设为静态,则不需要调用其对象,然后调用方法。 实施例
class abcd
{
public static void check()
{
System.out.println("static");
}
public void check1()
{
System.out.println("not static");
}
public static void main(String args[])
{
abcd a=new abcd();
a.check1();
abcd.check();
}
}