JAVA! static什么作用?

静态只能调用静态变量.. 这个我知道... 我想知道static有什么作用?
老师讲的太术语话... 听不太懂... 通俗点说... 谢谢
那这个static有使用限制么?
比如包里好使.. 或类里才好使之类的...

第1个回答  2008-10-10
static类型的变量是属于类的.
当这个类一个对象改变static类型变量的值,其他对象的这个值也会跟着一起改变.例如
class A{
public static int cunt = 0;
}
public class Test{
public static void main(String[] args){
A a1 = new A();
A a2 = new A();
a1.cunt = 100;//a1对象把cunt改变成100
System.out.println(a2.cunt);// 输出对象a2的cunt值也为100
}
}
第2个回答  2021-02-22
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。
第3个回答  2008-10-10
问题:雇员类有个雇员基本工资,对于员工A员工B都是一样的,但是管理员又有可能需要对这个工资做调整,也就是不能定义成常量.像这样的变量你要怎么处理呢?怎么保证这样的一致性?
于是static成员变量和成员方法就产生咯:
static int salary;
public static void setSalary(int salary){this.salary = salary;}
public static int getSalary(){return salary;}
这样的话我就直接用员工类.方法得到统一的基本工资值啦:
Employee.setSalary(800);
Employee.getSalary();
至于每个员工嘛,也可以调用这个方法查看自己的基本工资
Employee A = new Employee();
A.getSalary();
PS:这里还涉及到对员工实体屏蔽setSalary()方法的问题,我也懒得想啦.....

其实楼上的各位说得已经很清楚了,我只是更形象得告诉你,好理解一点.
第4个回答  2008-10-10
用它来修饰成员变量或方法的时候,就可直接用“类名.方法”来调用类里面的方法或成员变量,而不要再去new一个对象出来
第5个回答  2008-10-10
没有限制

举个例子就明白了

public class testStatic {

public static void A() {

System.out.println("Hello World!");
}

public static void main(String[] args) {
testStatic.A();//类名+.直接调用 不用new了

}

}

输出 Hello World
相似回答