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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

等下我会上传有关的图片

11 个回复

正序浏览
可无奈 发表于 2014-8-21 22:43
类里面不能写类,如果有办法能写的话可以回复让我受教下

内部类算 类中写类么?
回复 使用道具 举报
提示已经很清楚了额  无法从静态上下文中引用非静态 主函数是静态 你person 是非静态
回复 使用道具 举报
楼主你写的是内部类
要创建内部类对象应该这样Person p = new Test8().new Person();

楼主代码中Person p = new Person(); //此处省略了一个this.即Test8.

而想要用类名直接调用的话,内部类要是静态的

楼主可以把内部类Person用静态修饰,估计就可以了


回复 使用道具 举报
可无奈 发表于 2014-8-21 22:43
类里面不能写类,如果有办法能写的话可以回复让我受教下

内部类就是在类内部的类,楼主这是定义错了
回复 使用道具 举报
ximi 中级黑马 2014-8-21 22:57:02
8#
可无奈 发表于 2014-8-21 22:43
类里面不能写类,如果有办法能写的话可以回复让我受教下

public class Test8 {

        public static void main(String[] args) {
                /*//1. 初始化原始数组
                Integer[] originalArray = {4,2,4,6,1,2,4,7,8};
               
                //2. 初始化HashSet集合,因为HashSet集合使用了Map集合的key部分,所以可以自动的去除重复的key
                Set<Integer> setArray = new HashSet<Integer>(originalArray.length);
               
                //3. 将原始数组添加到HashSet集合中,这个过程就去除了重复的值了
                setArray.addAll(Arrays.asList(originalArray));
               
                //4. 打印输出结果
                System.out.println(Arrays.toString(setArray.toArray(new Integer[setArray.size()])));*/
                //显示的最大数+1
                /*int total = 10;
                for (int i = 1; i <= total; i++) {
                        //1. 打印空格
                        for (int x = 1; x <= i; x++) {
                                System.out.print(" ");
                        }
                        //2. 打印左边
                        for (int k = total - i; k >= 1; k--) {
                                System.out.print(k);
                        }
                        //3. 打印右边,从2开始
                        for (int j = 2; j <= total - i; j++) {
                                System.out.print(j);
                        }
                        //4. 打印换行
                        System.out.println();
                }*/
                //实例化一个内部类
                Person p = new Test8().new Person();
                p.setAge(20);
                p.speak();
        }
        //内部类
        class Person{
                private int age;

                public int getAge() {
                        return age;
                }

                public void setAge(int age) {
                        this.age = age;
                }
               
                void speak(){
                        System.out.println(age);
                }
        }
       
}
回复 使用道具 举报
ximi 中级黑马 2014-8-21 22:55:30
7#
  1. public class Test8 {

  2.         public static void main(String[] args) {
  3.                
  4.                 //实例化一个内部类
  5.                 Person p = new Test8().new Person();
  6.                 p.setAge(20);
  7.                 p.speak();
  8.         }
  9.         //内部类
  10.         class Person{
  11.                 private int age;

  12.                 public int getAge() {
  13.                         return age;
  14.                 }

  15.                 public void setAge(int age) {
  16.                         this.age = age;
  17.                 }
  18.                
  19.                 void speak(){
  20.                         System.out.println(age);
  21.                 }
  22.         }
  23.        
  24. }
复制代码
回复 使用道具 举报
类里面不能写类,如果有办法能写的话可以回复让我受教下
回复 使用道具 举报
楼上已经解答了。。。自己调试下撒
回复 使用道具 举报
把person类放在外边,不要嵌套在里边
回复 使用道具 举报
别截图啊

把person类放到外边去。。
回复 使用道具 举报
帮我看下哪里错了 谢谢

5C6U()VEV3W$0FA[L_OZYPW.jpg (74.98 KB, 下载次数: 17)

5C6U()VEV3W$0FA[L_OZYPW.jpg

Z[@LNQ[JQZ]YDHLYG@65`LF.jpg (86.63 KB, 下载次数: 12)

Z[@LNQ[JQZ]YDHLYG@65`LF.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马