• 内部类


    定义格式:

    1 class Outer{
    2     class Inner{
    3         public void show(){
    4             System.out.println("Run...");
    5         }
    6     }
    7 }

    内部类访问特点:

    1.内部类可以直接访问外部类中的成员;

    2.外部类要访问内部类,必须简历内部类的对象。

    内部类使用环境:

            分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容,这时还有的事物定义成内部类来描述。

    修饰符:

            因为内部类是在外部类内中,相当于是外部类的成员,所以会有成员修饰符:public default private。另外还有static。

    访问内部类:

           1.无静态

           Outer.Inner in = new Outer().new Inner();

           2.如果内部类是静态的,就相当于一个外部类: Outer.Inner in = new Outer.Inner();

           但是静态成员只能访问静态变量,所以外部类中的成员变量要是静态的。

           3.如果内部类是静态的,成员也是静态的,则:Outer.Inner.show();

           如果内部类中定义了静态成员,则该内部类必须是静态类。

    访问特性:(Outer.this.num访问的是外部类里的成员变量num)

     1 public class NeiBu {
     2     public static void main(String[] args) {
     3         System.out.println("Hello,This is Function main...");
     4         new Outer().new Inner().show();
     5     }
     6 }
     7 
     8 class Outer{
     9     int num = 3;
    10     class Inner{
    11         int num = 4;
    12         public void show(){
    13             int num = 5;
    14             System.out.println(Outer.this.num);
    15         }
    16     }
    17 }

    匿名内部类:

           匿名内部类就是内部类的简写格式。

           必须有前提:内部类必须继承或者实现一个外部类或者接口。

    代码演示:

     1 public class NeiBu {
     2     public static void main(String[] args) {
     3         System.out.println("Hello,This is Function main...");
     4         new Outer().method();
     5     }
     6 }
     7 
     8 abstract class Demo{
     9     abstract void show();
    10 }
    11 
    12 class Outer{
    13     public void method(){
    14         new Demo(){
    15             void show(){
    16                 System.out.println("This is ....");
    17             }
    18         }.show();
    19     }
    20 }
  • 相关阅读:
    Linux下Subversion的使用
    python3之HTML、CSS学习
    Python成长之路 常用模块与正则表达式
    Css3 列表布局 两列或者多列布局整理
    .net 通过代码控制GridView显示列
    .net 创建一个页面级全局datatable的方法
    .net 将分页展示的GridView的全部数据 导出excel
    .net 如何判断dataset是否为空
    sql 全表结构备份
    sql 把一个表中的某一列赋值到另一个表中的某一列
  • 原文地址:https://www.cnblogs.com/thinksasa/p/2736054.html
Copyright © 2020-2023  润新知