猿问

Java入门第二季1-9的程序问题?

在这个程序中,倒数第四行,我直接的访问静态方法,没有通过类名访问,也没有通过对象名访问,可还是得到了一个正确的结果,这是为什么呢?是碰巧吗?有什么弊端吗?
public class HelloWorld {
    
    // 定义静态变量score1
    static int score1 = 86;
    // 定义静态变量score2
	static int score2 = 92; 

    // 定义静态方法sum,计算成绩总分,并返回总分
	public static    int sum() { 
      int sum=score1+score2;
      return sum;
      
	}

	public static void main(String[] args) {
        
        // 调用静态方法sum并接收返回值
		int allScore = sum();    //就是这里!!!!
        
		System.out.println("总分:" + allScore);
	}
}


Java_Hello_World
浏览 1619回答 4
4回答

星际怪物

没有通过类名访问    //main放在同一个类中了,类名就免了也没有通过对象名访问   //静态了,何须对象名

贰先生

请回顾下作用域这个章节,封装你从头看看。就你的问题么,是在当前类里面也就是在同一个作用域,所以能直接访问。

一条小咸鱼

int allScore = sum();  //等同于 int allScore = this.sum();弊端就是你单独把main方法放到一个测试类就不能通过了,因为这时int allScore = sum();  //然而,该测试类并没有该方法

Caballarii

不指定就在当前作用域找啊,写全了比较清楚,复制到其他地方也不需要修改
随时随地看视频慕课网APP

相关分类

Java
我要回答