为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Java_Hello_World 2016-03-10 16:56:45
在这个程序中,倒数第四行,我直接的访问静态方法,没有通过类名访问,也没有通过对象名访问,可还是得到了一个正确的结果,这是为什么呢?是碰巧吗?有什么弊端吗?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); } }
查看完整描述

4 回答

已采纳
?
星际怪物

TA贡献31条经验 获得超10个赞

没有通过类名访问    //main放在同一个类中了,类名就免了

也没有通过对象名访问   //静态了,何须对象名

查看完整回答
反对 回复 2016-03-11
  • Java_Hello_World
    Java_Hello_World
    谢谢。 那个时候刚看完“Java中的static使用之静态变量”,课程中写着:可通过“类名.静态变量”或者“对象名.静态变量”访问静态变量。之后看1-9“Java中的static使用之静态方法”,就没明白。 经过这两天的学习,总算是明白了,同一个类中,静态方法可以直接访问静态变量,也可以直接调用静态方法。
?
贰先生

TA贡献3条经验 获得超0个赞

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

查看完整回答
反对 回复 2016-03-11
  • Java_Hello_World
    Java_Hello_World
    谢谢。 那个时候刚看完“Java中的static使用之静态变量”,课程中写着:可通过“类名.静态变量”或者“对象名.静态变量”访问静态变量。之后看1-9“Java中的static使用之静态方法”,就没明白。 经过这两天的学习,总算是明白了,同一个类中,静态方法可以直接访问静态变量,也可以直接调用静态方法。
?
一条小咸鱼

TA贡献457条经验 获得超255个赞

int allScore = sum();  //等同于 int allScore = this.sum();

弊端就是你单独把main方法放到一个测试类就不能通过了,因为这时

int allScore = sum();  //然而,该测试类并没有该方法

查看完整回答
反对 回复 2016-03-10
  • 一条小咸鱼
    一条小咸鱼
    好吧,不能在sum方法前添加this,那你理解成 当前类.sum();
  • Java_Hello_World
    Java_Hello_World
    谢谢。 那个时候刚看完“Java中的static使用之静态变量”,课程中写着:可通过“类名.静态变量”或者“对象名.静态变量”访问静态变量。之后看1-9“Java中的static使用之静态方法”,就没明白。 经过这两天的学习,总算是明白了,同一个类中,静态方法可以直接访问静态变量,也可以直接调用静态方法。
?
Caballarii

TA贡献1123条经验 获得超629个赞

不指定就在当前作用域找啊,写全了比较清楚,复制到其他地方也不需要修改

查看完整回答
反对 回复 2016-03-10
  • Java_Hello_World
    Java_Hello_World
    谢谢。 那个时候刚看完“Java中的static使用之静态变量”,课程中写着:可通过“类名.静态变量”或者“对象名.静态变量”访问静态变量。之后看1-9“Java中的static使用之静态方法”,就没明白。 经过这两天的学习,总算是明白了,同一个类中,静态方法可以直接访问静态变量,也可以直接调用静态方法。
  • 4 回答
  • 0 关注
  • 1618 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信