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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小小菜鸟 于 2014-1-7 06:55 编辑
  1. class Person{
  2.         private String name;
  3.         private int age;
  4.         Person(int age){
  5.                 this.age = age;
  6.         }
  7.         Person(int age,String name){
  8.                 this.age = age;
  9.                 this.name = name;
  10.         }
  11.         public void speak(){
  12.                 System.out.println("cry....");
  13.         }
  14.         public boolean  compare(Person p){
  15.                 return(this.age==p.age);
  16.         }
  17. }
  18. public class PersonDemo2{
  19.         public static void main(String[] args) {
  20.                 Person p1 = new Person(20);
  21.                 Person p2 = new Person(25);
  22.                 boolean b = p1.compare(p2);
  23.                 System.out.println(b);
  24.                
  25.                
  26.         }
  27. }
复制代码

在eclipse中显示的是第一行有错。。。但我感觉没错呀。。不能运行。怎么回事??

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

4 个回复

正序浏览
这是一个权限的问题,你在主函数中有public,而person类中的方法没有定义为public,所以运行时会提示错误:
“PersonDemo2.java:1: 错误: 类Person是公共的, 应在名为 Person.java 的文件中声明
public class Person{
       ^
1 个错误”
实际上是下面主函数调用时的权限不够,将person类中的每个构造方法前面都加上public就O了

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
eclipse 下不能写两个类,我也不知道怎么回事,写两个类就报错,为了避免这个问题 我只好在一个包下写两个类 一个有主函数一个没有主函数。。。也是能完成你上面的测试的

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
看着没什么错,是不是文件名必须和public的class一致的问题
回复 使用道具 举报
第一行是包名,一开始最好不要用eclipse。
还有跟老师敲得一样是错的,我相信老师写了注释,所以你写的和老师不一样。
因为后期注释也有实际作用。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马