zoukankan      html  css  js  c++  java
  • 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();

            }

          }

          

  • 相关阅读:
    笔记:C/C++字符函数的使用
    学习游戏基础编程3:地图编辑器
    学习游戏基础编程2:Win32分割窗口
    学习游戏基础编程1:Win32自定义控件
    [WebServer] Tomcat 配置访问限制:访问白名单和访问黑名单
    [WebServer] Windows操作系统下 Tomcat 服务器运行 PHP 的环境配置
    XSLT函数集合:数值函数、字符串函、节点集函数和布尔函数
    腾讯的一道JavaScript面试题
    【转】AES 进一步的研究
    MQTT-Client-FrameWork使用整理
  • 原文地址:https://www.cnblogs.com/xzmr/p/6069422.html
Copyright © 2011-2022 走看看