一个 .java 文件中定义多个类的问题?

public class Test
{
    public static void main(String[] args)
    {
        Woman aWoman = new Woman();
        aWoman.growHeight(120);
        System.out.println(aWoman.getHeight());
    }
}

class Woman extends Human
{
    /**
     * new method
     */
    public Human giveBirth()
    {
        System.out.println("Give birth");
        return (new Human());
    }
}


class Human
{
    /**
     * accessor
     */
    public int getHeight()
    {
        return this.height;
    }

    /**
     * mutator
     */
    public void growHeight(int h)
    {
        this.height = this.height + h;
    }

    /**
     * breath
     */
    public void breath()
    {
        System.out.println("hu...hu...");
    }

    private int height;
}

Human定义在Woman后面也能被Woman类查找到。。。和c/c++的先声明再使用完全不一样啊。。。 java新手 java的名字查找是怎么样的? 网上没找到这方面的资料。。。

阅读 6.7k
2 个回答

编译完了之后每个类都是一个 .class 文件,哪来的先后。

Java 控制访问都是通过 publicprotected,默认包权限,private 几个修饰符来限制的。

在一个 Java 文件里定义的顶级类(非内部类)只有一个要求:只能有一个 public 类。

建议看看Java的包机制,然后再了解了解修饰范围的修饰符
——————分割线——————
同一个文件里面的类都是可以互相找到的,没有定义的先后的说法,Java中类的位置是无所谓的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题