内部类
2014-04-08 12:28
92 查看
内部类
内部类:将一个类定义在另外一个类里面。里面的那个类就叫做内部类(内置类)。
访问特点:
内部类可以直接访问外部类的成员,包括私有成员。可以访问外部类成员的原因,是因为内部类可以使用外部类的引用。格式为:外部类对象名.this.成员
但是外部类访问内部类必须要建立内部类对象。
当其他外部类访问此内部类时,访问格式为:外部类名.内部类名 变量 = new 外部类对象.new 内部类对象。
内部类也可以被修饰,如:public、private
当内部类被static修饰时,要访问外部类的成员,外部类的成员必须是静态的。
当内部类被static修饰时,其他外部类访问内部类成员,当成员不是静态时。
访问格式:new 外部内名.内部类对象.成员
当内部类被static修饰时,其他外部类访问内部类成员,当成员是静态时。
访问格式:外部类名.内部类名.成员
当内部类被static修饰时,要访问此外部类的成员
访问格式:外部类名.成员变量
内部类:将一个类定义在另外一个类里面。里面的那个类就叫做内部类(内置类)。
访问特点:
内部类可以直接访问外部类的成员,包括私有成员。可以访问外部类成员的原因,是因为内部类可以使用外部类的引用。格式为:外部类对象名.this.成员
但是外部类访问内部类必须要建立内部类对象。
当其他外部类访问此内部类时,访问格式为:外部类名.内部类名 变量 = new 外部类对象.new 内部类对象。
内部类也可以被修饰,如:public、private
<pre name="code" class="java">package com.itheima; class OuterClass{ private String name; class InnerClass{ void show(){ System.out.println("my name is:"+name); System.out.println("my name is:"+OuterClass.this.name); } void getName(String name){ OuterClass.this.getName(name); } } void getName(String name){ this.name = name; } void makeMethod(){ InnerClass inner = new InnerClass(); inner.show(); } } public class InnerDemo { public static void main(String[] args){ OuterClass outer = new OuterClass(); outer.getName("嘻嘻"); outer.makeMethod(); OuterClass.InnerClass inner = new OuterClass().new InnerClass(); inner.getName("呵呵"); inner.show(); } }
当内部类被static修饰时,要访问外部类的成员,外部类的成员必须是静态的。
当内部类被static修饰时,其他外部类访问内部类成员,当成员不是静态时。
访问格式:new 外部内名.内部类对象.成员
当内部类被static修饰时,其他外部类访问内部类成员,当成员是静态时。
访问格式:外部类名.内部类名.成员
当内部类被static修饰时,要访问此外部类的成员
访问格式:外部类名.成员变量
class OuterClass1{ private static String name; static class InnerClass1{ void show(){ System.out.println("my name is:"+name); } void getName(String name){ OuterClass1.name = name; } } static class InnerClass2{ static void show(){ System.out.println("my name is:"+name); } static void getName(String name){ OuterClass1.name = name; } } class InnerClass3{ void show(){ System.out.println("my name is:"+name); } void getName(String name){ OuterClass1.name = name; } } } public class StaticInnerClassDemo { public static void main(String[] args){ new OuterClass1.InnerClass1().getName("嘻嘻"); new OuterClass1.InnerClass1().show(); OuterClass1.InnerClass2.getName("呵呵"); OuterClass1.InnerClass2.show(); } }
相关文章推荐
- 接口和内部类
- 使用内部类写工厂方法
- 黑马程序员——Java---匿名内部类
- java 内部类(第二讲 staitc)
- Java的接口与内部类
- 基于内部类的单例模式
- 深入理解java嵌套类和内部类
- Java中的内部类
- 内部类详解
- JAVA 内部类、外部类、继承、抽象类、接口实战
- 匿名内部类
- 四种内部类和区别
- IT十八掌作业_java基础第七天_匿名内部类、异常、包和jar
- 20160308接口内部类:Scanner、工厂设计模式、匿名类
- java中内部类的问题
- 匿名内部类解说
- android学习必备java基础知识——内部类
- Java中的内部类
- java毕向东听课笔记9( 匿名内部类)
- Java中的内部类