黑马程序员技术交流社区

标题: 【Mr fan成长记】java基础笔记之内部类 [打印本页]

作者: bjfanxc    时间: 2014-3-26 19:47
标题: 【Mr fan成长记】java基础笔记之内部类
本帖最后由 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. }
复制代码




作者: lwy0319    时间: 2014-3-26 21:21
感谢楼主分享。。不过帖子的类型应该是作为资源分享吧。。
作者: bjfanxc    时间: 2014-3-27 14:04
lwy0319 发表于 2014-3-26 21:21
感谢楼主分享。。不过帖子的类型应该是作为资源分享吧。。

恩恩好的!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2