我想知道什么时候使用静态方法?假设我有一个类,有几个getter和setter,一个或两个方法,我希望这些方法只能在类的实例对象上调用。这是否意味着我应该使用静态方法?

例子:

Obj x = new Obj();
x.someMethod();

或:

Obj.someMethod(); // Is this the static way?

我很困惑!


当前回答

如果将静态关键字应用于任何方法,则称为静态方法。

静态方法属于类,而不是类的对象。 不需要创建类实例而调用的静态方法。 方法可以访问静态数据成员,并可以更改它的值。 静态方法可以通过类名。静态名来访问。示例:Student9.change(); 如果要使用类的非静态字段,则必须使用非静态方法。

//改变所有对象的公共属性的程序(静态字段)。

class Student9{  
 int rollno;  
 String name;  
 static String college = "ITS";  

 static void change(){  
 college = "BBDIT";  
 }  

 Student9(int r, String n){  
 rollno = r;  
 name = n;  
 }  

 void display (){System.out.println(rollno+" "+name+" "+college);}  

public static void main(String args[]){  
Student9.change();  

Student9 s1 = new Student9 (111,"Indian");  
Student9 s2 = new Student9 (222,"American");  
Student9 s3 = new Student9 (333,"China");  

s1.display();  
s2.display();  
s3.display();  
}  }

O/P: 111印度BBDIT 222美国BBDIT 333中国BBDIT

其他回答

当您希望能够在没有类实例的情况下访问方法时,请使用静态方法。

静态的: Obj.someMethod

当你想要提供对方法的类级访问时,使用static,即在没有类实例的情况下,方法应该是可调用的。

静态方法不需要在对象上调用,这就是你使用它的时候。例如:你的Main()是一个静态的,你没有创建一个对象来调用它。

静态方法有两个主要目的:

用于不需要任何对象状态的实用程序或辅助方法。 由于不需要访问实例变量,具有静态 方法消除了调用方实例化对象的需要 只需要调用这个方法。 为了所有人共享的状态 类的实例,比如计数器。所有实例必须共享 相同的状态。仅仅使用该状态的方法应该是静态的 好。

静态方法是一种不需要初始化任何对象就可以调用的方法。你注意到静态是用在Java的main函数中吗?程序从那里开始执行,不需要创建对象。

考虑下面的例子:

 class Languages 
 {
     public static void main(String[] args) 
     {
         display();
     }

     static void display() 
     {
         System.out.println("Java is my favorite programming language.");
     }
  }