七步天下
2017-09-11 00:40
采纳率: 100%
浏览 1.6k
已采纳

JAVA 子类无法在主函数new

各位大虾 代码如下
package example1;
class Person
{
private String name;
private int age;
public void setName(String name)
{
this.name=name;
}
public void setAge(int age)
{
this.age=age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;

}

class Student extends Person
{
private String school;
public String getSchool()
{
return school;
}
public void setSchool(String school)
{
this.school=school;
}

}

}
public class Test {

public static void main(String[] args) {


    // TODO Auto-generated method stub

}

}
为什么我在主函数中new student 会报错,说找不到student这个类呢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

16条回答 默认 最新

  • 姜姜好呢 2017-09-11 01:25
    已采纳

    把Student提出来 你写在Person类的大括号里面了

    点赞 评论
  • cloudyzhao 2017-09-11 00:45

    因为你的student 是个内部类

    点赞 评论
  • Nbsaw 2017-09-11 00:45

    加个static

     static class Student extends Person{
      // ....
    }
    
    点赞 评论
  • 蚂蚁冲锋队 2017-09-11 00:46

    请以此确认一下几点:
    1、你的Test类是否与Student类在一个包下,不在一个包需要import
    2、你的Student类名是否正确 Student student=new Student();
    3、你的Person和Student前面应该用public修饰,表示让别的类可见
    4、如果依然不行,需要clean一下你的工程

    点赞 评论
  • 披风斗士 2017-09-11 01:06

    肯定找不到student这个类啊,Java是大小写敏感的语言,你定义的是Student

    点赞 评论
  • tzgdd8912442 2017-09-11 01:09

    类上加student 类加 public 修饰 试试

    点赞 评论
  • cloudyzhao 2017-09-11 01:18

    package service.com;

    class Person {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    
    public int getAge() {
        return age;
    
    }
    

    }

    class Student extends Person {
    private String school;

    public String getSchool() {
        return school;
    }
    
    public void setSchool(String school) {
        this.school = school;
    }
    

    }

    public class Test1 {
    public static void main(String[] args) {

        new Student();
    
    }
    

    }

    点赞 评论
  • qq_31680021 2017-09-11 01:24

    类用public修饰,然后大小写不对

    点赞 评论
  • vvvvip用户 2017-09-11 01:24

    这样子就可以了 Student s=new Person().new Student();

    点赞 评论
  • 砸死接触 2017-09-11 01:24

    这是访问修饰符的原因,楼主可以在Student类前加public,也可在Person前加public (这时用new Person.Student()创建示例【好像是这样+_+】)。

    点赞 评论
  • brucebat 2017-09-11 01:33

    public static void main(String[] args) {
    //第一种方式:
    Outter outter = new Outter();
    Outter.Inner inner = outter.new Inner(); //必须通过Outter对象来创建

        //第二种方式:
        Outter.Inner inner1 = outter.getInnerInstance();
    }
    
    点赞 评论
  • brucebat 2017-09-11 01:35

    public static void main(String[] args) {
    //第一种方式:
    Outter outter = new Outter();
    Outter.Inner inner = outter.new Inner(); //必须通过Outter对象来创建

        //第二种方式:
        Outter.Inner inner1 = outter.getInnerInstance();
    }
    
    点赞 评论
  • YQS_Love 2017-09-11 01:39

    这位同学,你能出现这样的问题,说明你有对Java的这两点基础知识掌握还不够扎实。
    一是Java的访问权限控制;二是Java的类的概念。认真仔细的看完这两个知识点,
    你就明白你错在什么地方,比你去问任何人都要有效。

    点赞 评论
  • gaochao99 2017-09-11 02:03

    你可以百度体下,看内部类怎么创建,你那个是个内部类

    点赞 评论
  • Ply to windward 2017-09-11 02:05
    点赞 评论
  • innerpeacez 2017-09-11 03:08

    建议你写代码的时候不要这样写,除非你要写内部类,不然一个JavaBean创建一个.java文件,有的方法使用必须要public修饰,你这样写可能会遇到一些莫名其妙的bug,还不容易发现

    点赞 评论

相关推荐 更多相似问题