qq_29901455 2019-01-22 17:25 采纳率: 60%
浏览 527
已采纳

Java中为什么不能把Person类放到Demo8类里面

class Demo8{

    class Person{

        int id; //编号

        String name; //姓名

        int age;  //年龄

        //构造函数
        public Person(int id,String name ,int age){
            this.id  = id;
            this.name = name;
            this.age = age;
        }

        //比较年龄的方法
        public void compareAge(Person p2){
            if(this.age>p2.age){
                System.out.println(this.name+"大!");
            }else if(this.age<p2.age){
                System.out.println(p2.name+"大!");
            }else{
                System.out.println("同龄");
            }
        }
    }

    public static void main(String[] args) 
    {
        Person p1 = new Person(110,"狗娃",17);
        Person p2 = new Person(119,"铁蛋",9);
        p1.compareAge(p2);

    }
}


  • 写回答

5条回答 默认 最新

  • baidu_41211758 2019-01-23 10:29
    关注

    其实是java虚拟机运行时对class的解析与实例化的时机(顺序)问题。对于程序入口函数main来说,在它被调用时还“看”不到内部类Person呢。
    解决方法有两个,一是将Person声明为static,二是将Person声明为外部类。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用