为啥可以不用obj.method()方式调用,直接用method()方式调用

为啥可以不用obj.method()方式调用,直接用method()方式调用

/**
 * 5、修改指定位置处成绩
 * @param f 存储数学成绩的数组
 */
public void update(float[] f, Scanner sc) {
    if(!checkScores(f)) {
        return;
    }
    System.out.println("修改前:");
    displayAllScore(f);
    System.out.println("请输入要修改数据的位置(从0开始):");
    //修改位置
    int index = getInt(sc, f.length, true);
    System.out.println("请输入新数据:");
    //新成绩
    float newScore = getFloat(sc);
    f[index] = newScore;

    System.out.println("修改后:");
    displayAllScore(f);
}

/**
 * 6、打印输出所有成绩
 * @param f 存储数学成绩的数组
 */
public void displayAllScore(float[] f) {
    if(!checkScores(f)) {
        return;
    }
    System.out.println("成绩为:");
    for (float score: f) {
        System.out.print(score + "  ");
    }
    System.out.println();
}

在update()方法内部我调用了一次displayAllScore()方法,此时我并没有使用 对象.方法() 的方式调用.而是使用 方法() 调用.displayAllScore()方法也不是静态方法.为什么我可以直接调用

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好,这里是因为main方法是静态方法,在静态方法中调用普通方法,需要实例对象后,再调用

http://img1.sycdn.imooc.com//climg/5efdb9e509cf869e05360133.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小脸 2020-07-02 17:31:33

同学你好,这里displayAllScore方法与update方法都定义在同一个类中,同一类中普通方法是可以进行相互调用的。所以直接写方法名是可以的

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕粉w0w #1
    一个类同时有main方法,main里面却不能直接调用,需要创建对象使用。这是什么原因?
    2020-07-02 17:51:01
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师