问答详情
源自:8-9 Java 中的 static 使用之静态方法

请大家帮我看看我的代码的问题是什么,在JAVA环境中没有错误,但是运行不出来结果,谢谢大家咯

public class HelloWorld {

    

    // 定义静态变量score1

    static int score1 = 86;

    // 定义静态变量score2

          int score2 = 92;

        HelloWorld world=new HelloWorld();


    // 定义静态方法sum,计算成绩总分,并返回总分

public     int sum() {  

    return score1+world.score2;  

      

}


public static void main(String[] args) {

        

        HelloWorld hello=new HelloWorld();

int allScore =hello.sum();

        

System.out.println("总分:" + allScore);

}

}


提问者:weixin_慕粉5402365 2019-07-23 13:49

个回答

  • 慕移动2735134
    2019-07-24 16:44:56
    已采纳

    只有在静态(static)方法调用非静态方法或变量才需要实例化类。

    这个练习两个变量全是静态,两个方法也是静态用不到实例化类。

    HelloWorld world=new HelloWorld();去掉

    public class HelloWorld {        
    // 定义静态变量score1    
        static int score1 = 86;    
        // 定义静态变量score2	          
        static int score2 = 92;	        
          
        // 定义静态方法sum,计算成绩总分,并返回总分	
        public static int sum() {  	    
        return score1+score2;        	
        }	
        public static void main(String[] args) {                
        int allScore =sum();        		
        System.out.println("总分:" + allScore);	
        }
    }

    如果你要尝试静态方法调用非静态变量可以这样

    public class Helloworld{
        // 定义静态变量score1
        static int score1 = 86;
        // 非静态变量score2
        int score2 = 92;
        // 非静态方法sum,计算成绩总分,并返回总分
        public int sum() {
        return score1 + score2;
        }
        public static void main(String[] args) {
        Heloworld hello = new Helloworld();
        int allScore = hello.sum();
        System.out.println("总分:" + allScore);
        }
    }

    请采纳?

  • 望天吼ing
    2019-07-23 14:33:01

    public class HelloWorld {

        // 定义静态变量score1

        static int score1 = 86;

        // 定义静态变量score2

        static int score2 = 92; 


        // 定义静态方法sum,计算成绩总分,并返回总分

    public static int sum() {

            int allScore;

                allScore=score1+score2;

                return allScore;

    }


    public static void main(String[] args) {

            // 调用静态方法sum并接收返回值

    int allScore = sum();

    System.out.println("总分:" + allScore);

    }

    }

  • 望天吼ing
    2019-07-23 14:31:12

    第二个变量没定义是静态的

    static int score2 = 92;

  • weixin_慕设计7075395
    2019-07-23 14:18:51

    HelloWorld world=new HelloWorld();去掉,然后world.score2改成this.score2