zoukankan      html  css  js  c++  java
  • 内部类和匿名内部类

    在类内部也可以定义另一个类。如果在类Outer的内部在定义一个类Inner,鄙视类Inner就成为内部类,而类Outer则成为外部类。

    java内部类分为四种:

      成员内部类,局部内部类,静态内部类和匿名内部类

      1)成员内部类:作为外部类的一个成员方存在,与外部类的属性、方法并列。注意:成员内部类中不能定义静态变量,但是可以访问外部类的所有成员。

      2)局部内部类:即在方法中定义的内部类,与局部变量类似,在局部内部类前不加修饰符public 或 private,其范围为定义他的代码块。注意:局部内部类中不可以定义静态变量,可以访问外部类的局部变量(及方法内的变量),但是变量必须是final的。

      3)静态内部类: 静态内部类定义在类中,任何方法外,用static定义。注意:静态内部类中可以定义静态或者非静态的成员

      4)匿名内部类:匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口。

      就是内部类的简化写法。

      前提是存在一个类或者接口

      格式  new  类名或者接口名(){重写方法}

      本质:是一个继承了类或者实现了接口的子类匿名对象

     1 public class Outer {
     2     public int id=20170901;
     3     public String name="honor";
     4     
     5     class Inner {
     6         public String name="华为";
     7         public String address="枫杨路18号";
     8         public void showInner(){
     9             Outer pho=new Outer();
    10             System.out.println("内部类方法输出:"+name+" "+address+" "+pho.id+" "+pho.name);
    11         }
    12     }
    13     
    14     public void showOuter(){
    15         System.out.println("外部类方法输出:"+id+" "+name);
    16     }
    17     public static void main(String[] args){
    18         //外部类实例化对象
    19         Outer ph=new Outer();
    20         
    21         Outer.Inner man=ph.new Inner();   //外部类中实例化内部类对象
    22         man.showInner();
    23         ph.showOuter();
    24         
    25         System.out.println("主方法中输出:"+" "+ph.id+" "+ph.name+" "+man.name+" "+man.address);
    26     }
    27 }
    View Code
  • 相关阅读:
    Hibernate Tool建Entity
    MySQL新建用户和库表
    用友U8年度账结转 常用凭证丢失
    U890采购入库单修改供应商
    robocopy
    sql的left join 、right join 、inner join之间的区别
    Linux永久修改系统时间
    UF清log
    下拉式选单连动设定
    SQL取最大值编码(自动编码)
  • 原文地址:https://www.cnblogs.com/cosmosray/p/7461490.html
Copyright © 2011-2022 走看看