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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bjfanxc 中级黑马   /  2014-3-26 19:47  /  1509 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 bjfanxc 于 2014-3-27 14:10 编辑
  1. //大家玩内部类时需要注意的几个问题,敲代码验证问题,这样记忆比较深刻。
  2. package com.itheima;

  3. public class InnerclassTest {

  4.         public static void main(String[] args) {
  5.                 //只有当外部类对象存在,内部类才被加载进内存,所以要先创建外部类对象。
  6.                 Outer.Inner1 in = new Outer().new Inner1();
  7.                 in.showInner1();

  8.                 //内部类被static所修饰,就相当于一个外部类(注意:静态内部类只能访问外部类的静态成员)
  9.                Outer.Inner2 in1 = new Outer.Inner2();
  10.                in1.showInner2();
  11.      
  12.                //静态内部类的成员也被static修饰,不需要创建内部类对象,直接(类名.方法名)
  13.                Outer.Inner2.innerStaticMethod();

  14.                //注意:非静态内部类中无法定义静态成员。
  15.         }
  16. }
  17. class Outer{

  18.        private static int num = 5;

  19.        //内部类相当于一个成员
  20.        class Inner1{
  21.               int num = 6;
  22.               public void showInner1(){
  23.                      int num = 7;
  24.                      System.out.println(num);//打印的是7
  25.                      System.out.println(this.num);//打印的是6
  26.                      System.out.println(Outer.this.num);//打印的是5
  27.               }
  28.        }
  29.        //静态内部类
  30.        static class Inner2{
  31.               public void showInner2(){
  32.                      System.out.println("Inner2:"+num);
  33.               }
  34.               public static void innerStaticMethod(){
  35.                      System.out.println("innerStaticMethod run!");
  36.               }
  37.        }

  38. }
复制代码



2 个回复

倒序浏览
感谢楼主分享。。不过帖子的类型应该是作为资源分享吧。。
回复 使用道具 举报
lwy0319 发表于 2014-3-26 21:21
感谢楼主分享。。不过帖子的类型应该是作为资源分享吧。。

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