• java内部类 2016年12月13号


    1、在外部类的任意位置创建内部类对象的方法:

      1)从外部类的非静态方法之外的任意位置创建某个内部类的对象,必须指明这个对象所在的外部类和内部类:OuterClassName.InnerClassName。如:

    package cn.qdu.parcel;
    /**
     * 内部类的第一个例子
     * @author cena 2016/12/13 at BoZhi
     *
     */
    public class Parcel {//外部类
        class Contents{//内部类
            private int i=11;
            public int value(){
                return i;
            }
        }
        
        class Destination{//内部类
            private String label;
            Destination(String whereTo){
                label=whereTo;
            }
            String readLabel(){return label;}
        }
        //下面是外部类中定义的3个方法
        public Destination to(String s){
            return new Destination(s);
        }
        
        public Contents contents(){
            return new Contents();
        }
        
        public void ship(String dest){
            Contents c=contents();
            Destination d=to(dest);
            System.out.println(d.readLabel());
        }
        
        public static void main(String[] args) {
            Parcel p=new Parcel();
            p.ship("Tasmaina");
            Parcel q=new Parcel();
            //在外部类的非静态方法之外的任意位置创建某个内部类的对象,必须具体地指明这个对象的类型:OuterClassName.InnerClassName。
            Parcel.Contents c=q.contents();//定义内部类对象的方法
            Parcel.Destination d=q.to("Borneo");
        }
    }

     

       2)外部类的static方法建立内部类问题。如:

    class Outer{//外部类
      class Inner{//内部类
    
      }
    
      public static method(){
        Outer out=new Outer();//要先创建外部类的对象
        Inner in=out.new Inner();
      }
    }

      method()方法属于外部类的静态方法,内部类Inner相当于外部类的一个非静态方法Inner(){},创建内部类对象时需要先创建外部类对象out,用外部类Outer的out对象之后才能去定义Inner对象,这个道理就如同在静态方法中不能直接调用非静态方法一样。

     

  • 相关阅读:
    windows下Mysql免安装版,修改my_default.ini配置文件无效的解决办法
    下压桟(LIFO)
    Dijkstra的双栈算术表达式求值算法
    获取中文的完整拼音并输出
    解析一个文件夹所有文件的中文,并输出到某一文本文档中
    在含有中英文字符串的信息中,提出中文的方法
    创建计算字段
    Docker 常用命令
    mqtt常用命令及配置
    LOG4J
  • 原文地址:https://www.cnblogs.com/qducn/p/6171073.html
Copyright © 2020-2023  润新知