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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余善航 中级黑马   /  2013-1-17 14:19  /  1051 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Outer{
class Inner{
  void show(){
   System.out.println("Inner show");
  }
}
static void method(){
  Inner s=new Inner();   // 这为什么不能创建内部类的对象         
  s.show();
  
}
}
public class aa {
public static void main(String[] args) {
  Outer c=new Outer();
  c.method();
}
}
/*
随着类的加载,method()方法就存在了,在主函数中也创建外部类的对象 ,
外部类调用静态method(),
在method()中 为什么不能创建内部类的对象

访问内部类非静态方法需要创建内部类的对象,
创建内部类的对象前,必须先加载外部类
而在主函数中也创建了外部类的对象,

听完视频没懂
*/

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
静态方法,只能调用静态类
回复 使用道具 举报
王溢君 来自手机 中级黑马 2013-1-17 14:29:16
藤椅
创建内部类对象。Outer.Inner i =new Outer().new Inner();写法为:外部类.内部:。
视频一遍没看懂,建议多看几遍,自己动手运行改进,再调试。把没明白的地方弄明白。

评分

参与人数 1黑马币 +3 收起 理由
冯海霞 + 3

查看全部评分

回复 使用道具 举报
王溢君 来自手机 中级黑马 2013-1-17 14:30:55
板凳
纯手机手写,累啊
回复 使用道具 举报
在内部类中,内部类能调用外部类的所有属性和方法,但是外部类想要调用内部类的属性和方法,就只能通过创建内部类的对象。
静态的方法只能调用静态的属性和方法,当内部类的属性为非静态时,外部类中的静态方法,无法为非静态的内部类创建对象。
下面是我学内部类时,写的一段代码,觉得写的听清楚的
  1. class Outer {
  2.         private int a=10;
  3.        
  4.         public void outer1() {
  5.                 //创建内部类的对象
  6.                 Inner nb = new Inner();
  7.                 //调用没不累的方法
  8.                 nb.inner();
  9.         }
  10.         private static void outer2() {
  11.                 System.out.println("你好");
  12.         }

  13.         private class Inner {
  14.                 public  int b = 14;//无法定义静态的属性和方法
  15.                 public  void inner() {
  16.                         System.out.println(a);//外部类的属性
  17.                         System.out.println(b);
  18.                         outer2();//可以调用外部类的所有方法方法
  19.                 }
  20.         }
  21.        
  22. }

  23. public class Test{

  24.         public static void main(String[] args) {
  25.                 Outer no = new Outer();
  26.                 no.outer1();
  27.         }
  28. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
你的method方法被静态修饰后出现了局限性,值能访问静态的成员。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马