A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 嘿马 于 2013-11-14 07:43 编辑

             刚报名java基础班,打算学好再去黑马学习高深技术,今早编程出了个问题,希望有大大能够帮忙指点一下!
             运行时显示错误: 在类 Person 中找不到主方法, 请将主方法定义为: public static void main(String[] args)
class Person
{
   int high;
   String name;
   void play()
  {
    System.out.println("name:"+name+","+"high="+high+"cm");
  }
}
class Mingdan
{
public static void main(String[] args)
{
  Person c=new Person();
  c.high=175;
  c.name="小强";
  c.play();
}
}

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1

查看全部评分

12 个回复

倒序浏览
运行错了吗?name:小强,high=175cm,这是你想要的结果吗?如果是请在Mingdan类前面加public关键字
回复 使用道具 举报
你在Mingdan类的前面加一个public 关键字就可以了,一个类的类文件名必须跟类名相同,并且需要只能也必须有一个public类的
回复 使用道具 举报
加一个public,不过要是在eclipse中不加好像也能运行正确
回复 使用道具 举报
Person类中是没有主函数的所以运行时会出错,你的主函数在Mingdan类中,编译通过后的运行命令应该是:java Mingdan
回复 使用道具 举报
谢谢狼王!没有加public的情况下,发现自己的问题,说出来给以后遇到此问题的同学参考一下!写好上面代码后,编译后显示没有错误,运行时一定要用 java mingdan  这个类名,如果用java Person这个类名的话就会出现上面我遇到的问题,原因在于类名person里面是在定义属性和行为,而mingdan这个类名里面是主函数!(刚学java,上面仅是个人理解,可能有错误!)
回复 使用道具 举报
嘿马 中级黑马 2013-11-14 08:23:19
7#
狼王 发表于 2013-11-14 07:52
运行错了吗?name:小强,high=175cm,这是你想要的结果吗?如果是请在Mingdan类前面加public关键字 ...

谢谢狼王!没有加public的情况下,发现自己的问题,说出来给以后遇到此问题的同学参考一下!写好上面代码后,编译后显示没有错误,运行时一定要用 java mingdan  这个类名,如果用java Person这个类名的话就会出现上面我遇到的问题,原因在于类名person里面是在定义属性和行为,而mingdan这个类名里面是主函数!(刚学java,上面仅是个人理解,可能有错误!)
回复 使用道具 举报
嘿马 中级黑马 2013-11-14 08:26:03
8#
lichao 发表于 2013-11-14 08:18
Person类中是没有主函数的所以运行时会出错,你的主函数在Mingdan类中,编译通过后的运行命令应该是:java ...

谢谢了,后来发现就是你说的这样,谢谢了!
回复 使用道具 举报
没有错吧!
回复 使用道具 举报
与public无关。编译,运行 Mingdan类即可。
回复 使用道具 举报
这个问题希望引起初学者的注意:
你应该是文件的名字是Person.java把?

是这样的,程序会现加载有main()方法的类,如果你执行java Person,此类没有main()方法,当然报错!但是编译确实通过的,即javac Person是不会报错的。
注意:一般情况下,一个文件中最好只有一个类,一般main方法存在public 类中(同一个文件中只能有一个public 类)

你这个提的解决办法是;1:运行Mingdan这个类,2:把文件名改为Mingdan.java

class Person
{
   int high;
   String name;
   void play()
  {
    System.out.println("name:"+name+","+"high="+high+"cm");
  }
}
class Mingdan
{
        public static void main(String[] args){

          Person c=new Person();
          c.high=175;
          c.name="小强";
          c.play();
        }
}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
类运行错了,运行MingDan类就可以了
回复 使用道具 举报
突然明白类的 内容了,一直写主函数时用的就是类   虽说问题不同但很 收益
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马