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();为什么不行 } }
用类调用非静态方法是不可以的
public void show()改为 public static void show()就可以调用了,把非静态方法改为静态方法就OK
非静态方法不能使用类名调用。
show方法为非静态方法,不能直接在静态主方法内使用,但可以通过创建对象来调用。这里你的对象不是hello吗?应该是hello.show();才对啊