美文网首页java从零到大牛学习路程
Java中的带包编译、访问权限、内部类

Java中的带包编译、访问权限、内部类

作者: BSimmons | 来源:发表于2018-07-19 21:00 被阅读12次

    一、带包编译

        1.手动方式

                1). 首先创建一个Java带包类. Javac 类名.Java 编译生成.class文件

                2). 手动创建包文件夹 将.class文件拷贝到包文件夹中

                3). java 类名 运行文件

        2.自动编译

                1). 首先创建一个Java带包类. javac -d .  类名.Java文件编译

                2). java 类名 运行文件

    二、访问权限

                            public    protected     default    private

    同一个类中           √                √                √            √

    同一个包中            √                √                √

    不同包中的子类       √                √

    不同包中的其他类    √

    三、内部类

      成员内部类

                1.可以无限制的访问外部类中的成员,包括静态成员和私有成员

                2. 成员内部类中不能定义静态成员

                3. 如何访问内部类中的成员,需要创建内部类的对象

                        外部类名.内部类名 对象名 = new  外部类名().new 内部类名();

                4.外部类中如何访问内部类的成员(包含私有成员): 创建内部类的对象

                5. 如何在内部类中访问外部类中的同名成员: 外部类名.this.成员;

            局部内部类

                1. 只能在方法中认识

                2. 不能用public private protected修饰

                3. 局部内部类中的变量在jdk1.7之前必须声明为final的,1.8之后可以不能写final

            静态内部类

                1. 静态内部类中既可以定义静态成员,也可以定义非静态成员

                2.有静态成员的内部类一定是静态内部类

                3. 如何调用静态内部类中的成员

                    静态的:  外部类名.内部类名.静态成员

                    非静态的: new 外部类名.内部类名().非静态成员

            匿名内部类***

                本质: 实现了接口或者继承了类的子类对象

                格式:

                      创建方式一: 

                        类名/接口名 变量名 = new 类名/接口名(){

                            //要重写的方法

                        };

                        创建方式二:

                        new 类名/接口名(){

                            //要重写的方法

                                }.方法名();

    相关文章

      网友评论

        本文标题:Java中的带包编译、访问权限、内部类

        本文链接:https://www.haomeiwen.com/subject/lhdxmftx.html