什么时候要用static修饰符?

来源:百度知道 编辑:UC知道 时间:2024/07/03 00:07:23
有两段程序:
public class basic{
public static void main(String[] args){
yes_no(2008);
}
public ###### void yes_no(int year){
if(year%4==0&&year%100!=0||year%400==0)
System.out.print(year+"年是闰年。");
else
System.out.print(year+"年不是闰年。");
}
}
-----------------------------------------------------------------
public class basic{
String name;
int age;
public basic(String name,int age){
this.name=name;
this.age=age;
}
public static void printInfo(){
System.out.println(name+"已经有"+age+"岁了.");
}
public ###### void main(String[] args) {
String name="Jim";
int age=19;
basic temp = new basic(name,age);
temp.printInfo();
}
}

两程序的 ###### 处是否要填入static ,为什么? 我一直搞不清。

首先,static的用法是:1.static所修饰的方法和变量是属于类本身,而不是属于对象,无论创建多少个对象实例都是共用一个方法和变量.2.静态的方法不可以调用非静态的方法,非静态的方法可以调用静态的方法.
其次,在你的第一个程序中,main()是静态的方法,它要调用yes_no()方法的话,yes_no方法就必须是静态的,所以第一个要用static.
再次,第二个方法是通过对象调用其内部的方法不算是main()方法直接调用printlnfo().所以不需要用static修饰.
不知道这样回答你是否明白了.

static是静态,不需要实例化。
比如:
class A{
public static x(){
}

}
//无需A a = new A(); a.x();直接用类名调用。
class B{
A.x();
}

第一处不需要,加上static就可以不需要类生成一个对象再调用,而可以用类直接调用。
第二处必须加,这是JAVA固定形式,主方法main必须加

很不小心的告诉你。C#中Main函数必须声明为static类型。
另外。static类型的方法或变量可以由本类和其他类直接调用。也就是所谓的全局变量之流~~~~~~~~~~~~`

修饰符的作用是让被修饰的内容具备特定的功能,在程序中合理使用修饰符可以在语法和功能上实现很多需要的效果。
代码如下:
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Test {
abstract class FieldTest {
private String str;
private static final int CONSTANTS = 1;

public abstract void test();
}
public stati