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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 shw16888 于 2015-4-9 18:50 编辑
  1. class Person {
  2.     private int age;

  3. Person(int age) {
  4.             this.age = age;
  5.     }

  6.     // 给人定义一个用于比较年龄是否相同的功能,也就是是否是同龄人
  7.     public boolean compare(Person p) {
  8.             return this.age == p.age;

  9.     }

  10. }
  11. class personDemo{
  12.             public static void main(String[] args) {
  13.                     Person p1 = new Person(14);
  14.                     Person p2 = new Person(18);
  15.                     boolean b = p1.compare(p2);
  16.                     System.out.println(b);
  17.             }
  18.    
  19. }
复制代码

评分

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

查看全部评分

13 个回复

正序浏览
看解释,,所获良多
回复 使用道具 举报
来看大神的解答~~。。。【数字君】
回复 使用道具 举报
应该是你一个文件里面两个类,然后有一个是public,所以文件名必须和public类名一样吧
回复 使用道具 举报
tubao1991 发表于 2015-4-5 12:18
敢问楼主 public static class personDemo 这个定义规则是什么意思?

内部类!!!
回复 使用道具 举报
Nick_KJ 发表于 2015-4-5 13:58
首先,你这是内部类,明确一点,除了“局部内部类”不可以被static修饰,正常的内部类是可以被static修饰的 ...

:handshake太详细了,已明白,非常感谢。
回复 使用道具 举报
首先,你这是内部类,明确一点,除了“局部内部类”不可以被static修饰,正常的内部类是可以被static修饰的,这样这个内部类就拥有了static的各项属性,可以访问外部类的static。public也可以修饰类,所以楼上的朋友不用疑惑这一点。
修饰类的修饰符:
public(一个java文件中不可以出现2个以上用public修饰的类或者接口,而且public公有类要和文件名同名)、default(默认,即什么也不写)、
abstract(抽象类)、
final(此类不可以被继承)
protected(修饰成员内部类、在包之间访问时,如果另外一个类继承了含有protected内部类的这个类,则可以使用这个内部类,否则不可以使用。同一个包中的protected修饰的类,子类的童明磊覆盖权限必须但与等于protected才可以。)
private(可以修饰内部类)、
static(可以修饰内部类)。
再看你的程序:如果你在dos下作的,首先可以运行,没有问题。
但是注意编译结束后生成的".class"文件名!!因为你是内部类!!!这个符号别忘了:$    如图:


评分

参与人数 1黑马币 +4 收起 理由
shw16888 + 4

查看全部评分

回复 使用道具 举报
楼上的已经说清楚了。
回复 使用道具 举报
楼上的已经说清楚了。
回复 使用道具 举报
这是内部类?
回复 使用道具 举报
敢问楼主 public static class personDemo 这个定义规则是什么意思?
回复 使用道具 举报
  1. class Person {
  2.         private int age;

  3.     Person(int age) {
  4.                 this.age = age;
  5.         }

  6.         // 给人定义一个用于比较年龄是否相同的功能,也就是是否是同龄人
  7.         public boolean compare(Person p) {
  8.                 return this.age == p.age;

  9.         }

  10.         public static class personDemo {
  11.                 public static void main(String[] args) {
  12.                         Person p1 = new Person(14);
  13.                         Person p2 = new Person(18);
  14.                         boolean b = p1.compare(p2);
  15.                         System.out.println(b);
  16.                 }
  17.         }
  18. }
复制代码


没有问题啊,我执行成功了。。。
回复 使用道具 举报
你得把static修饰符去掉,class类名不用静态修饰符
回复 使用道具 举报
public static class personDemo
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马