zoukankan      html  css  js  c++  java
  • 管理类文件

            在类中还可以再定义类,称之为内嵌类或嵌套类。非静态的内嵌类可以分为三种:成员内嵌类、区域内嵌类和匿名内嵌类。内嵌类的主要目的,就是对外部隐藏类的存在性。

    使用内嵌类的好处: 

            1. 内嵌类可以直接存取其所在类中的私用成员。

            2. 当某个Slave类完全只服务于一个Master类时,可以将之设置为内嵌类,这样使用Master类的人就不用知道Slave的存在。

            3. 对调用静态方法的对象隐藏返回对象的实现细节或产生方式。

        在文件管理方面,成员内嵌类在编译完成之后,所产生的文件名称为“外部类名 称$内嵌类名称.class”。

        内部类还可以被声明为static,不过由于是static,它不能存取外部类的方法,而必须通过外部类所生成的对象来进行调用。被声明为static的内部类,事实上也可以看做是另一种名称控件的管理方式。

           public  class  Outer

            {

                public static class inner

                {

                    ...

                }

                ...

            }    

            可以使用以下方式来使用Inner类:

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

    匿名内嵌类: 

            内嵌匿名类可以不声明类的名称,而使用new直接产生以一个对象,它可以使继承某个类或是实现某个接口。其声明方式如下:

                new  [类或接口()]

                {

                    //实现

                }

            例如:

                public  class  AnonumousClassdemo

                {

                    public static void main(String[] args)

                    {

                        Object obj = new Object()

                        {

                            public String toString()

                            {

                                ...        //重新定义toString()

                            }

                        }

                    }

                }

        如果要在内嵌匿名类中使用外部的区域变量,变量在声明时必须为final。

        在文件管理方面,内嵌匿名类在编译完成之后会产生“外部类名称$编号.class”。

    package:

            为了能建立与包相对应的文件系统结构,在编译时可以加入-d参数,并指定产生的类文件存储在哪一个目录之下。

            package的设置会成为类的一部分名称。

    import:

            使用import关键字,告知编译器所要使用的类是位于哪一个包。

                import  目录.目录.类名

                import  目录.目录.*

            将源文件与编译完成的类文件放在一起容易发生问题,可以建立一个专门放源文件代码.java文件的目录,并建立一个专门放.class文件的目录:

                    javac -d  ./classes  ./src/*.java

            这样,可以直接到classes目录中执行  java  类名

            或:

                    java  -cp  ./classes 类名

    public 与包:

            一个类在定义时可以使用public加以修饰,一个.java文件中可以定义数个类,但只能有一个被声明为public,没有被声明为public的类只能被同一个包中的类的实例调用。

            类成员也可以声明为public,声明为public的类成员可以被其他对象调用,如果声明类时不适用public、protected或private设置权限,则预设为包存取范围,只有同一个包中的类可以调用这些类成员。

            类的权限设置会约束类成员上的权限设置,所以如果类上不声明public,而类成员上设置了public,则类成员同样地也只能被同一个包的类存取。

            当在Java中定义一个类,但没有定义构造函数时,编译器会自动产生一个默认构造函数。

            如果自行定义构造函数,编译器就不会加上默认的构造函数。

  • 相关阅读:
    管理者的主要任务是什么?
    管理者的最基本职责是什么?
    管理者的两大职责:“管事”和“理人”
    最近的思考
    刨根问底Objective-C Runtime
    Objective-C 中的类和对象
    ios动态添加属性的几种方法
    多态 oc c++ 与oc category
    利用Objective-C运行时hook函数的三种方法
    Hook技术
  • 原文地址:https://www.cnblogs.com/fanchangfa/p/2592242.html
Copyright © 2011-2022 走看看