Java内部类
一、内部类的定义
可以将一个类的定义放在另一个类的定义内部,这就是内部类
二、创建内部类
以下在Test类中定义了一个InnerClass内部类,然后在Test中的useInnerClass方法中使用
可以将一个类的定义放在另一个类的定义内部,这就是内部类
- public class OutterClass{
- private class InnerClass{
- }
- }
二、创建内部类
以下在Test类中定义了一个InnerClass内部类,然后在Test中的useInnerClass方法中使用
- public class Test {
- public void useInnerClass(String name){
- // 使用内部类
- InnerClass inner = new InnerClass(name);
- System.out.println("Name:" + inner.getName());
- }
- public static void main(String[] args){
- Test t = new Test();
- t.useInnerClass("张三");
- }
- // 定义一个内部类
- class InnerClass{
- private String name;
- InnerClass(String name){
- this.name = name;
- }
- String getName(){
- return this.name;
- }
- }
- }
- /*
- 输出结果:
- Name:张三
- 但是更典型的情况是,外部类将有一个方法,该方法返回指向内部类的引用。
- 如下面Test类的getInnerClass方法
- */
- public class Test {
- public void useInnerClass(String name){
- // 使用内部类
- InnerClass inner = new InnerClass(name);
- System.out.println("Name:" + inner.getName());
- }
- // 通过一个公共的方法返回内部类的实例
- public InnerClass getInnerClass(String str){
- return new InnerClass(str);
- }
- public static void main(String[] args){
- Test t = new Test();
- /*
- 如果想在外部类的非静态方法之外的任意位置创建某个内部类的对象,
- 那么,必须使用:"外部类.内部类"的方式指明这个对象的类型
- 如:Test.InnerClass
- */
- Test.InnerClass innerC = t.getInnerClass("张三");
- System.out.println("Name:" + innerC.getName());
- }