java 基础(内部类详解)
2015-11-26 23:56
495 查看
</pre><pre name="code" class="java">/* 内部类:定义在累一个类中的类 内部类的访问规则: 1.内部类可以直接访问外部类中的成员,包括私有;格式:外部类.this 2.外部类要访问内部类必须建立对象; 静态内部类: 访问格式: 1.当内部类定义在外部类的成员位置上时,而非私有,可以在外部其他类中, 直接建立内部类对象;格式:内部类名 变量=外部类对象.内部类对象-(Inner Inner2=new Outer.Inner();); 2.当内部类在成员位置上,就可以被成员修饰符修饰 例如: private:封装 static:具备static特性: 1.当被Static修饰时,内部类只能访问外部类中的静态成员; 2.在外部类中直接访问static内部类的非静态成员(new.Outer.Inner().f();); 访问静态成员(Outer.Inner.f()); 注意:当内部类定义了静态成员,该类必须是静态的; 当外部类中有静态方法访问内部类时,内部类也必须是静态的; 内部类定义规则: 当描述事物时,事物的内部还有事物,该事物用内部类来描述。 class Body { private class heart {public void show() { new heart(); } }*/class Outer{ private int x=3; static class Inner//封装(private)、静态内部类 { int x=4; static void f() { int x=5; System.out.println(x);//x打印5;this.x打印4;Outer.this.x打印3 } } void m()//访问内部类成员的暴露模块 { Inner in =new Inner(); in.f(); }class Inner3{ void show() { Inner in= new Inner(); System.out.println("int3"); } }}/*匿名内部类: 匿名内部类其实就是内部类的简写; 定义匿名内部类的前提: 内部类必须是继承一个类或者实现接口 */class Ni{ int y=0; void t(final int l)//不能访问变量 { int k=0; class Inner { void f() { System.out.println(l); } } new Inner().f(); }}class MI{public static void main(String[] args){ //Outer.Inner.f();//访问静态类的静态成员 //new Outer.Inner().f();访问非静态类的静态成员 //Outer out= new Outer();//out.m();通过m方法访问内部类 //Outer.Inner in=new Outer().new Inner(); //直接访问内部类中成员(不常用,一般将内部类封装(即私有化)}}
</pre><pre name="code" class="java">
相关文章推荐
- Selenium(webdriver)实战
- Java web 学习路线
- java佩恩沃星球打怪掉血实现
- java中printf,print,println,区别及用法详解
- javaSE(08)(字符串三姐妹)
- 1.4 Java的反射机制
- struts2 + ajax + json的结合使用,实例讲解
- Java记录 -87- java.lang.reflect.Array
- JAVA创建XML文件(三)---DOM4J方式创建XML
- 实习笔记(2015-11-26)
- 4. 尚硅谷_佟刚_JavaWEB_第一个 Servlet 程序.wmv
- 【Java】编码转换:UTF-8转GB2312
- Eclipse搭建Android开发环境(安装ADT,Android4.4.2)
- Java概述
- 3. 尚硅谷_佟刚_JavaWEB_使用 Eclipse 开发 JavaWEB 项目.wmv
- java远程调试(idea)
- JAVA创建XML文件(二)---SAX方式创建XML
- Java笔记--JDBC篇(一)
- MyEclipse 10破解
- struts的控制器组件