zoukankan      html  css  js  c++  java
  • 内部类

    内部类类型

    public class NestedClassDome01 {
        //静态内部类
        private static class StaticNestedClass{    
        }
        //普通内部类
        private class FieldInnerClass{
        }
        
        void test(){
            //局部内部类
            class LocalClass{
            }
            
            //局部匿名内部类
            Runnable run=new Runnable(){
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                }};
        }
    }

    静态内部类基本用法

    可以包含静态和非静态成员

    静态内部类可以访问外部类的静态属性和静态方法,不能调用外部类的普通方法和属性

    在不相关类中,可以直接创建静态内部类的对象

    普通内部类

    可以方便使用外部类的所有成员,只为外部类服务

    内部类中 this代表内部类的对象,引用外部类对象为Out03.this

    Outer03 out=new Outer03( );

    Outer03.InnerClass ic=out.new InnerClass( )

    成员内部类不能有静态成员变量和方法,除非申明为final并且只能是编译器可以确定值的常量,如果有static InnerClass,内部类对象完全脱离外部类对象,违背了普通内部类的设计初衷

    方法内部类

    相当于方法中的局部变量,不能用private、protected等修饰
    只能定义非静态的成员

    不能引用所在方法的普通局部变量,除非是常量。原因如下:方法的生命周期和方法内部类对象的生命周期不一致。方法执行完,内部类对象仍可能存在

    匿名内部类

    三种方式:继承式,接口式,参数式

    public class NestedClassDome03 {
        Father father=new Father(){
            @Override
            public void test() {
            }
        }; 
    }
    
    abstract class Father{
        public abstract void test();
    }
     
  • 相关阅读:
    使用hibernate实现树形结构无限级分类
    专家看台:盛大架构师周爱民回顾职业历程,分享十项建议
    开始运行命令大全
    rsvp.exe,AdskScSrv.exe ,avp.exe
    Web2.0 编程思想:16条法则
    李嘉诚:性格才是命运的决定因素
    中兴笔试题目
    管理Websphere的10个有用命令
    我的程序语言实践
    20200514:实现分布式Session的过程是怎样的?
  • 原文地址:https://www.cnblogs.com/xiaoliangup/p/9119974.html
Copyright © 2011-2022 走看看