zoukankan      html  css  js  c++  java
  • Java第六天

    一般情况下java中的类不能用static修饰,唯一可以修饰的是内部类

    内部类的特点:

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

    2.外部类要访问内部类,必须建立内部类的对象

    一般用于类的设计

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

    如果内部类中定义了静态成员,那么该内部类也必须是静态的。

    为什么内部类能直接访问外部类的成员呢?

    那是因为内部类持有了外部类的引用。 外部类名.this

    内部类可以存放在局部位置上。

    内部类在局部位置上只能访问局部中被final修饰的局部变量。

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

    前提:内部类必须继承或者实现一个外部类或者接口,其实就是一个匿名子类对象。

    格式:new 父类or接口(){子类内容}.调用

    代码实现:

     1 class Demo2
     2 {
     3     public static void main(String[] args)
     4     {
     5         Outer1 o=new Outer1();
     6         o.method();
     7     }
     8 }
     9 
    10 abstract class Father//父类
    11 {
    12     abstract void show();
    13 }
    14 class Outer1
    15 {
    16     int num=10;
    17     void method()
    18     {
    19         new Father()//匿名内部类
    20         {
    21             void show()
    22             {
    23                 System.out.println("SHOW......"+num);
    24             }
    25         }.show();
    26     }
    27 }

    通常的使用场景之一:

    当函数参数是接口类型时,而且接口中的方法不超过3个,可以用匿名内部类作为实际参数进行传递

    代码实现:

     1 interface Inter
     2 {
     3     void show1();
     4     void show2();
     5 }
     6 
     7 class Demo3
     8 {
     9     public static void main(String[] args)
    10     {
    11         int num=20;
    12         show(new Inter(){
    13             public void show1()
    14             {
    15                 System.out.println("show111111.........."+num);
    16             }
    17             public void show2()
    18             {
    19                 System.out.println("show222222.........."+num);
    20             }
    21         });
    22     }
    23     public static void show(Inter in)
    24     {
    25         in.show1();
    26         in.show2();
    27     }
    28 }

     java中创建对象是构造函数,构造代码块,父类构造函数之间的调用顺序:

  • 相关阅读:
    ASP.NET面试题(二)
    iBatis.Net系列(四) iBatisNet API基础
    ibatisnet系列(一) 总览
    iBatisnet系列(二) 配置运行环境和日志处理
    HDU 1575 Tr A (矩阵乘法)
    HDU 连连看
    1504: ZZ的橱柜 (优先队列)
    离散化思想
    POJ 2777 Count Color (线段树)
    POJ 1823 Hotel (线段树)
  • 原文地址:https://www.cnblogs.com/pushudepu/p/6002043.html
Copyright © 2011-2022 走看看