黑马程序员技术交流社区

标题: 包&权限修饰符&内部类 [打印本页]

作者: 小青年oh    时间: 2016-3-31 00:24
标题: 包&权限修饰符&内部类
1:包(掌握)
        (1)包其实就是文件夹。用于区分相同的类名。
        (2)格式:
                package 包名1.包名2...;
                package 是关键字
                例如百度的网址是baidu.com,那建包的格式为: package com.baidu
        (3)带包的编译和运行(了解)
                1:手动建包
                2:自动建包
       
       
2:导包(掌握)
        (1)一般来说,用一个类,需要用该类的全路径名称。
           如果多个地方使用,就比较麻烦,所以java提供了导包操作。
        (2)格式:
                import 包名1.包名2...类名;
               
                //下面这种属于把指定包下的类都导入。这种用法不推荐。我们应该用谁导谁,因为以下方式JAVA虚拟机会扫描目录,从上往下扫描,导致效率变低
                import 包名1.包名2...*;


        (3)package,import,class的顺序
                package -- import -- class
        注意:        package  包名1.包名2;后面有分号
                import 包名1.包名2;后面有分号
                class 类名{} 后面是大括号
                import,package  是关键字,不是包名

3:四种权限修饰符(掌握)
                        本类        同包(无关类或者子类)        不同包(子类)        不同包(无关类)
        private                Y
        默认                Y        Y                       
        protected        Y        Y                        Y
        public                Y        Y                        Y                Y

        推荐:
                成员变量        private
                构造方法        public
                成员方法        public
               
4:不同修饰符修饰的内容(掌握 和内部类无关)
        复习:       
                常量:在程序运行过程中其值不会发生改变的量。被final修饰的变量其实就是常量


                        类        成员变量        成员方法        构造方法
        private                        Y                Y                Y
        默认                Y        Y                Y                Y
        protected                Y                Y                Y
        public                Y        Y                Y                Y
        abstract        Y                        Y               
        static                        Y                Y               
        final                Y        Y                Y                       

        注意,常见规则如下:
                以后,所有的类都用public修饰。并且,在一个java文件中,只写一个类。

                以后,所有的成员变量用private修饰。

                以后,所有的成员方法用public修饰。
                        如果是抽象类或者接口:
                                public abstract + ...

                以后,所有的构造方法用public修饰。
                        如果类是工具类或者单例类:
                                构造用private修饰
               
        总结:        除了成员变量,工具类或者单例类中的构造方法用private修饰外其他都用public,
                我们现在只需要知道所有成员变量用private修饰就可以了


5:内部类(了解)
        (1)把类定义在一个类的内部。
        (2)访问特点:
                1:内部类可以直接访问外部类成员,包括私有
                2:外部类要想访问内部类成员,必须创建对象。
        (3)内部类分类:
                1:成员位置
                        private 为了安全,只有本类能够使用
                        static  为了方便调用(这里static修饰内部类),调用方式 外部类.内部类 变量名 = new 外部类.内部类();

                        需要注意的是:
                                如果一个内部类含有静态方法,该内部类必须被静态修饰
                                如果一个内部类时静态类,该类中可以没有非静态方法
                2:局部位置
                        定义在方法中。

                        局部内部类访问局部变量必须加final修饰。
                        延迟生命周期。
        (4)匿名内部类(掌握)
                1:是定义在局部位置的没有名字的内部类。       
                2:前提
                        存在一个类,抽象类,或者接口。
                3:格式
                        new 类或者接口名()
                        {
                                重写方法;
                        }

                        本质理解:其实这是一个继承类或者实现接口的匿名的子类对象。
                4:使用
                        当你看到方法的形式参数是接口或者抽象类的时候。
                        用匿名内部类改进。(集合,IO,awt)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2