黑马程序员技术交流社区

标题: [求助]和视频上一模一样的 运行出来怎么就 少main了 已解决 [打印本页]

作者: 包晗    时间: 2012-5-17 13:13
标题: [求助]和视频上一模一样的 运行出来怎么就 少main了 已解决
本帖最后由 包晗 于 2012-5-17 16:17 编辑

class Person
{

        int age;
        void speak()
        {
                System.out.println("age="+age);
        }
        
}

class PersonDemo
{
        public static void main(String[] args)
         {
                Person p=new Person();

                p.age=20;
                p.speak();
        }


}
视频第5天07...和例子一模一样...编译也成功了...运行就缺少main   请各位帮忙看看

还请问下类是什么.我看了视频还是感觉概念有点模糊.谢谢
作者: 冯越    时间: 2012-5-17 13:15
本帖最后由 冯越 于 2012-5-17 13:19 编辑

你的类 PersonDemo 前面少了 public 。把他改成 public class PersonDemo就对了。在一个类中一定要有一个带public的类 这个类的名字要和你创建这个类的文件名相同 就是 PerdonDemo.java的名字相同。而main方法就在这个带public的类里面。
作者: 包晗    时间: 2012-5-17 13:19
冯越 发表于 2012-5-17 13:15
你的类 PersonDemo 前面少了 public 。把他改成 public class PersonDemo就对了。在一个类中一定要有一个带 ...

加了 还是说找不到主函数
作者: 田林    时间: 2012-5-17 13:22
楼主是不是把Person类作为编译和运行类了???主方法在PersonDemo类中,
编译:javac  PersonDemo.java
运行:java  PersonDemo
在我这里运行没事!
作者: 冯越    时间: 2012-5-17 13:22
包晗 发表于 2012-5-17 13:19
加了 还是说找不到主函数

你确定? 为什么我把你的代码copy在我的编译器里就能正常运行呢?
作者: 袁錦泰    时间: 2012-5-17 13:22
我运行之后并没有出现异常,你运行其他程序时是否出现这种情况了???
作者: 包晗    时间: 2012-5-17 13:26
田林 发表于 2012-5-17 13:22
楼主是不是把Person类作为编译和运行类了???主方法在PersonDemo类中,
编译:javac  PersonDemo.java
运 ...

好象是的。。。。
我运行成功了。。。我想请教下 这个程序的class Person 和class PersonDemo  他们的除了主函数 还有什么区别吗..?
谢谢
作者: 冯越    时间: 2012-5-17 13:30
包晗 发表于 2012-5-17 13:26
好象是的。。。。
我运行成功了。。。我想请教下 这个程序的class Person 和class PersonDemo  他们的除 ...

一个文件可以有多个类,而且既可以是独立类,也可以是内部类(即嵌套类),但是,一个文件只能有一个和文件名(包括大小写)完全相同的公共类(用public修饰的).
java 是面向对象的思想。。public类就是外部文件可以调用的主类。。而主类里的类只能是自身调用。如果一个文件可以有多可public类的话,在编译的时候生成的字节码文件.class文件就乱了。。        在你这里主类就是calss PersonDemo      
作者: 包晗    时间: 2012-5-17 13:38
冯越 发表于 2012-5-17 13:30
一个文件可以有多个类,而且既可以是独立类,也可以是内部类(即嵌套类),但是,一个文件只能有一个和文件名( ...

就是说 我无论写多少个class  编译的话 只会有一个main的类 以有main的这个类为文件名 是吧
作者: 袁錦泰    时间: 2012-5-17 13:50
包晗 发表于 2012-5-17 13:38
就是说 我无论写多少个class  编译的话 只会有一个main的类 以有main的这个类为文件名 是吧 ...

你所指的main是主函数,它是程序的入口,没有它你定义再多的类也无法见到运行结果,对于类的定义个数并没有限制,根据需求而定,但是这个主函数只能有一个。还有就是如果你的类名前被public修饰,那么你的.java文件名必须和类名相同,不要嫌麻烦,以后代码多了,类与类之间的存在关系时这个是必不可少的,对于权限修饰符针对修饰类、函数、成员变量的内容你要好好看一下,并不复杂,只是以前没有接触过,现在刚刚开始有些不习惯,如后见得多了你就驾轻就熟了。
作者: 包晗    时间: 2012-5-17 13:56
谢谢各位了  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2