• java内部类


    在这里我们介绍在java中的三种内部类(成员内部类,方法内部类(又叫局部内部类)和匿名内部类),内部类顾名思义就是在一个类里面再定义一个类。

      1.成员内部类(member inner class):常规内部类没有用static修饰且定义在在外部类类体中,高度内聚
        常规内部类中的方法可以直接使用外部类的实例变量和实例方法。

        代码如下:

        public class A {

          //定义一个常规内部类

         public class B {

            public void show() {

              System.out.pritln("这是类B.");

            }

          }

          //在本类中调用常规内部类时可以直接new 常规内部类。

          public static void main(String[] args) {

            B b = new B();

            b.show();

          }

        }

        //在其他类中调用B类的方法。

        //忽略导包。

        public class C {

          public static void main(String[] args) {

            B b = new A().new B();

          }

        }

       2.方法内部类(局部内部类):定义在方法的内部(作用域:只能在该方法的内部使用,超出该方法则无法使用)方法定义局部内部类同方 法定义局部变量一样,不能使用private、protected、public等访问修饰说明符修饰,也不能使用static修饰,但可以使用final和   abstract修饰

          例题代码如下:

          public class A {

            public void show (){

              System.out.println("类A中的show方法。");

              //定义一个局部类B

              class B {

                System.out.println("局部内部类B");

              }

            }

            //在main方法中调用show();

            public static void main (String[] args) {

              A.show();

            }

          }

        3.匿名内部类(Anonymous inner class):就是定义一个没有名字的类,所以这个类是一次性的,不能够重复使用。也就是将类的定义与类的创建,放到一起完成,或者说在定义类的同时就创建一个类。

          语法如下:

            new className() {

              //类体。

            }

          例题代码如下:

          //定义一个People接口

          public interface People {

            //定义一个抽象方法

            public void action();

          }

          //一个测试类

          public class Test {

            public static void main(String[] args) {

              People  students = new People() {

                //实现People类里的action方法

                public void action() {

                  System.out.println("学习");

                }

              };

              students.action();

            }

          }

          

  • 相关阅读:
    Spring配置多个数据源
    虚拟机内存结构
    Java中sleep,wait,yield,join的区别
    Java的四种引用方式
    Java 中的泛型详解-Java编程思想
    Java RTTI和反射
    linux 分析java 线程状态
    小容量的byteBuffer 读取大文本
    @Conditional 原理
    替换字符串占位符
  • 原文地址:https://www.cnblogs.com/xzmr/p/6069422.html
Copyright © 2020-2023  润新知