博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
管理类文件
阅读量:5067 次
发布时间:2019-06-12

本文共 1534 字,大约阅读时间需要 5 分钟。

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

使用内嵌类的好处: 

        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中定义一个类,但没有定义构造函数时,编译器会自动产生一个默认构造函数。

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

转载于:https://www.cnblogs.com/fanchangfa/archive/2012/07/15/2592242.html

你可能感兴趣的文章
前端工具----iconfont
查看>>
Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机
查看>>
Hello China操作系统STM32移植指南(一)
查看>>
cocos2dx CCEditBox
查看>>
VC++2012编程演练数据结构《8》回溯法解决迷宫问题
查看>>
第一阶段冲刺06
查看>>
WIN下修改host文件并立即生效
查看>>
十个免费的 Web 压力测试工具
查看>>
ckeditor 粘贴后去除html标签
查看>>
面试题
查看>>
51Nod:活动安排问题之二(贪心)
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
数据库框架的log4j日志配置
查看>>
lintcode-easy-Remove Element
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
switchcase的用法
查看>>
React.js 小书 Lesson15 - 实战分析:评论功能(二)
查看>>
Java基础03 构造器与方法重载
查看>>