黑马程序员技术交流社区

标题: 两个类为什么不能写在一起呢? [打印本页]

作者: 李大伟    时间: 2011-11-17 00:10
标题: 两个类为什么不能写在一起呢?
两个类 teacher3
public class teacher3{
        public String name;
        public int age;
        public String getName(){
                return name;
        }
        public void setName(String name){
                this.name=name;
        }
        public int getAge(){
                return age;
        }
        public void setAge(int age){
                if(age<22){
                        System.out.println("错误!最小年龄为22岁!");
                        this.age=22;
                }else {
                        this.age=age;
                }
        }
        public String introduction(){
                return "大家好!我是"+name+",我今年"+age+"岁";
        }
}


teacher3Test
public class teacher3Test{
        public static void main(String[] args){
                teacher3 teacher=new teacher3();
                teacher.setName("李芳");
                teacher.setAge(10);
                System.out.println(teacher.introduction());
        }
}


这二个类 就是要测试的呀, 为什么 在 eclipse中不能写到一起,如果能写到一起 怎么改,求解答……

作者: 常文艺    时间: 2011-11-17 01:31
两个类的权限都是PUBLIC,淡然不行了,你说生成CLASS文件要用哪个类名呢?去掉一个public就行了 或都不加
作者: 梦女孩    时间: 2011-11-17 01:46
本帖最后由 梦女孩 于 2011-11-17 01:47 编辑

多个类可以写在一起,但是只能有一个是public,并且public的类名必须与文件名相一致
作者: wangqing    时间: 2011-11-17 07:17
首先多个类只可以写在一起的,但是如果要用public修饰的话,只能有一个类被public修饰,同时public的类名必须与文件名相一致
如果不一致会出现错误提示。
作者: 王新春    时间: 2011-11-17 08:28
在java中,同一个java文件中,可以定义一个和多个类在一个java原文件中,但是有一个前提条件:
1.就是在这些类中,只能有一个类的的权限是public的。也就是说只有一个类是被public所修饰的。
2.文件名必须与public所修饰的那个类名一致。
3.拥有主函数的那个类是public的,因为主函数是程序的入口,在运行程序时,是先从主函数开始运行的。保证类程序的独立运行。
正确的是:
class Teacher3{
        public String name;
        public int age;
        public String getName(){
                return name;
        }
        public void setName(String name){
                this.name=name;
        }
        public int getAge(){
                return age;
        }
        public void setAge(int age){
                if(age<22){
                        System.out.println("错误!最小年龄为22岁!");
                        this.age=22;
                }else {
                        this.age=age;
                }
        }
        public String introduction(){
                return "大家好!我是"+name+",我今年"+age+"岁";
        }
}


public class Teacher3Test{
        public static void main(String[] args){
                teacher3 teacher=new teacher3();
                teacher.setName("李芳");
                teacher.setAge(10);
                System.out.println(teacher.introduction());
        }
}
在java中是严格区分大小写的,所以在类名的定义时,第一个字母大写,要是有多个单词组成,每个单词的首字母大写,当然类名首字母不大写也可以运行成功,但是不符合java的命名规范。

作者: 小王同志    时间: 2011-11-17 08:37
虽然,前面的童鞋都已经说了,但是我还是说一遍,去点一个public就行。。。
作者: 杨杰    时间: 2011-11-17 11:56
规定一个类中只能有一个PUBLIC 的  而且源文件的名字只能和public 属性的类取一个名字。
作者: xiwangliujiao    时间: 2011-11-17 11:59
如果是用public的话,类名必须和文件名一致,这个问题就好像是一个文件可以有两个不同的名字一样吗?
作者: 咖啡    时间: 2011-11-17 18:44
在多个类中,只能有一个类有public,其它的类不能有public,并且类名必须和文件名一致,其它的类只要不要public就可以了
作者: 李大伟    时间: 2011-11-17 22:55

呵呵 谢谢  大家的帮助,已经搞明白了,一个java文件中 只能有一个 被public 修饰的类


class Teacher3{
        public String name;
        public int age;
        public String getName(){
                return name;
        }
        public void setName(String name){
                this.name=name;
        }
        public int getAge(){
                return age;
        }
        public void setAge(int age){
                if(age<22){
                        System.out.println("错误!最小年龄为22岁!");
                        this.age=22;
                }else {
                        this.age=age;
                }
        }
        public String introduction(){
                return "大家好!我是"+name+",我今年"+age+"岁";
        }
}


public class Teacher3Test{
        public static void main(String[] args){
                teacher3 teacher=new teacher3();
                teacher.setName("李芳");
                teacher.setAge(10);
                System.out.println(teacher.introduction());
        }
}




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