• Java内部类的介绍


    在Java的面向对象编程中,由于Java并没有类似C++的多重继承,所以采用了内部类这样的方式,现在介绍几种内部类的常见情况。

    公开内部类

    即由public关键词修饰的内部类,内部类作为外部类的一个成员,可以自由调用外部类的成员。

     1 public class Outter {
     2 Outter(){
     3 
     4 }
     5 public class inner{
     6 inner(){
     7 
     8 }
     9 public void play(){
    10 System.out.println("inner play");
    11 }
    12 }
    13 }

     创建内部类的对象需要外部类的实例化作为支持,所以,在此之前必须先有外部类对象的创建。

    在方法中的内部类

    事实上,内部类作为类的一部分,是可以放置于外部类的方法中的

     1 public class m {
     2     m(){
     3         
     4     }
     5 
     6     public void oter(){
     7         class inner{
     8             private int data;
     9             inner(){
    10                 
    11             }
    12             public void display(){
    13                 System.out.println("inner display");
    14             }
    15         }
    16     }
    17         
    18 
    19 }

    匿名内部类

    匿名内部类作为一个成员,通常用于实现某个接口或者抽象类,所以,具有以下几个特点

    (1)匿名类不能拥有构造器,即便是无参构造器;

    (2)匿名类只能放置于静态方法中

    接口内容

    1 public interface Intof {
    2     public void eat();
    3 
    4 }

     在内部类中实现该接口

     1 public class Outter {
     2     Outter(){
     3         
     4     }
     5 
     6     public static Intof inner = new Intof(){
     7         public void eat(){
     8             System.out.println("Intof eat");
     9         }
    10     };
    11         
    12 
    13 }

    静态内部类

    静态内部类由于是静态的,所以其对象的创建可以不依赖于任何外部类的实例化。而缺陷在于,镜头aii内部类则只能调用外部类的静态成员和方法

     1 public class m {
     2     m(){
     3         
     4     }
     5 
     6     private static int data = 10;
     7     public static class inner{
     8         inner(){}
     9         public void display(){
    10             System.out.println("data"+data);
    11         }
    12     }
    13         
    14 
    15 }
  • 相关阅读:
    Oracle执行计划(三)
    执行计划-数据访问方式(全表扫描与4种索引的方式)
    比较两个文件内容是否相同
    设置myeclipse控制台输出到文件中
    Java出现NoSuchElementException异常
    Spring-Aop编程(三)-AspectJ
    Spring AOP编程(二)-AOP实现的三种方式
    Spring AOP编程(一)-AOP介绍
    java.lang.OutOfMemoryError: GC overhead limit exceeded异常处理
    Spring 属性依赖注入
  • 原文地址:https://www.cnblogs.com/zhangqiuchi/p/6523309.html
Copyright © 2020-2023  润新知