黑马程序员---面向对象中的内部类

来源:互联网 发布:工艺流程优化例子 编辑:程序博客网 时间:2024/04/30 06:06

       ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

       在学习JAVA语言的面向对象时,我们接触到了内部类,这是一个我们整个基础学习中经常会遇到的知识点。所以我对内部类做了一个详细的阐述:

        内部类定义:

       其实就是将一个类定义到了另一个类的内部中。具体点说就是:比如A类想要访问B类中的成员时,就可以将A类定义到B类中,作为B类的内存存在,这样A类就可以对B类中的成员进行直接访问。

       首先通过一段简单代码简单展示一下内部类:

 

      内部类按照修饰符修饰可以分为:静态内部类,非静态内部类以及抽象内部类三类。这里主要讲一下静态内部类和非静态内部类。

       1.静态内部类:顾名思义被静态修饰符static修饰的内部类叫做静态内部类。

        静态内部类注意事项:①只能访问外部类中的静态成员;

                                            ②静态内部类中可以定义静态和非静态方法。

       结合代码来看一下:

       2.非静态内部类:

           对于非静态内部类在使用时要注意以下三点:

            ①不能定义静态方法;

            ②只能定义静态常量(例如:static  finally int NUM = 7;)

            ③可以直接访问外部类成员。

    用代码来对理论进行试图化描述:

     讲解完静态内部类和非静态内部类后,我们只是定义出来了,那怎么去调用这两个内部类呢?首先看一下静态内部类的调用方式:

       非静态内部类调用方式:

   

       当然内部类还可以按照位置的不同分为:局部内部类和匿名内部类两种。

         1.局部内部类:定义在外部类的方法中的内部类。

             注意事项:  局部内部类不允许直接访问局部变量。如果需要访问,必须在局部变量前加final

                                   ②  要在外部类的方法中创建局部内部类对象。

        这就是局部内的定义方式:

          2.匿名内部类:简化书写的内部类。

       匿名内部类并不是任何情况下都能使用,是有前提的:匿名内部类需要继承或是实现外部的类或者是接口。否则,不能使用匿名内部类。其实匿名内部类就是个子对象。

       匿名内部类的格式:new父类名(){子类的内容}或者new接口名(){子类的内容}

       在使用匿名内部类时,要注意一点:父类或是接口中的方法不得超过两个,否则不要使用内部类。

       通过代码展示出匿名内部类具体写法和使用方法:

0 0
原创粉丝点击