java 新手 为什么 java类中 要有 static静态方法???

2025-03-05 04:18:02
推荐回答(4个)
回答(1):

1。静态方法的特点: 直接调用类名+方法名,不需要实例化类对象。
如: Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如: Hello hello=new Hello(参数1~n); hello.P();

2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。

3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。 一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。

回答(2):

/**
 *静态与对象无关 , 先于对象而存在
 *类方法:  静态方法  不用创建对象就可以调用的方法 , 不能访问对象的信息
 *常见错误:无法从静态上下文中引用非晶态 , 表示没有对象 , 访问对象的信息
 */
  
 public class StaticExer01 {
    public static void main(String[] args) {
        Fruit.print(); //静态方法 直接调用
        //Fruit f = new Fruit();
        new Fruit().test();
    }
 }
  
 class Fruit {
    //静态属性
    static String no = "我是静态属性 no ";
     
    //成员属性  实例属性
    String name = "我不是静态属性 name ";
     
    //静态方法
    //凡是静态的只能访问静态的 方法|属性
    public static void print () {
        //此时不能输出 name 因为 name不是静态方法 它属于对象,而此时并未创建对象
        //但可以直接输出 no 因为 no 是静态属性
        System.out.println(no);
        Fruit f = new Fruit();
        System.out.println(f.name+"   我在静态方法中");
        System.out.println("==============================");
    }
     
    //成员方法
    public void test () {
        Fruit.print(); //成员方法可以访问一切(包括静态和非静态)
        System.out.println(this.name+"   我在成员方法中");
    }
  
 }

回答(3):

比如你在A类里写了一个静态方法sub(int a,int b),是计算两个数的和,那么你只需要A.sub(数据1,数据2)就行了,如果sub()方法不是静态的,那么需要实例化类A,A MYA=new A();如果你要多次计算两个数的和,那么就要不断创建对象然后撤销对象。但静态就直接调用了sub()方法,而且静态方法只加载一次而已

回答(4):

main函数就是一个最好的例子
main函数必须是静态的,不需要创建main函数所在类的对象就可以执行改函数。