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

在main函数里面用类名调用为什么在这里不行

package com.imooc.Java;

public class Imooc_1_10 {
    String name; // 声明变量name
    String sex; // 声明变量sex
    static int age;// 声明静态变量age
    
    // 构造方法
    public  Imooc_1_10() { 
        System.out.println("通过构造方法初始化name");
        name = "tom";
    }
    
    // 初始化块
    { 
        System.out.println("通过初始化块初始化sex");
        sex = "男";
    }
    
    // 静态初始化块
        static{ 
        System.out.println("通过静态初始化块初始化age");
        age = 20;
    }
    
    public void show() {
        System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age);
    }
    
    public static void main(String[] args) {
        
        // 创建对象
        Imooc_1_10 hello = new Imooc_1_10();
        // 调用对象的show方法
        Imooc_1_10.show();//这里是用对象名来调用,用HelloWorld.show(); 类名调用HelloWorld.show();为什么不行
    }
}


正在回答

4 回答

用类调用非静态方法是不可以的

2 回复 有任何疑惑可以回复我~

   public void show()改为 public static void show()就可以调用了,把非静态方法改为静态方法就OK

0 回复 有任何疑惑可以回复我~
#1

Saber专属 提问者

确实,不过其他两个变量要改。
2016-11-14 回复 有任何疑惑可以回复我~

非静态方法不能使用类名调用。

0 回复 有任何疑惑可以回复我~

show方法为非静态方法,不能直接在静态主方法内使用,但可以通过创建对象来调用。这里你的对象不是hello吗?应该是hello.show();才对啊

1 回复 有任何疑惑可以回复我~
#1

Saber专属 提问者

恩恩,是的,没编辑好\(^o^)/~
2016-11-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在main函数里面用类名调用为什么在这里不行

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信