Java入门—第七节(包和访问权限)

包和访问权限

一、包

    1、什么是包?

        Java在编程的时候不可能将所有的文件放到一个大文件夹中,这样并程序基本没有可读性,更别说修改和维护。所以引入了包的概念,把一些功能形似的类放到一个包里这样就是一个大的项目更加条理。如图:这就是包。

    2、包的命名规则

        包命名规则:
            包名全部由小写字母(多个单词也全部小写);
            如果包名包含多个层次,每个层次应该用“.”分割;
            包名一般由倒置的域名开头,比如com.baidu;——不要有www
            自定义包不能java开头;

        示例:

    

    3、包的作用:

        (1)、有利于类的查找与管理。一个软件由很多类构成,这些类按其功能可分为vo类、dao类、工具类、service类、controller类等,将这些类按其功能分门别类地放在不同包中有利于类的查找与管理;
         (2)、解决了同名类命名冲突;

         (3)、有利于保护类中的成员变量及其方法。类中成员变量及其方法前面的访问控制符决定了该变量和方法的使用范围;

        扩展:JDK类库中的包

        最高一级的包名是java和javax。
           
        java.lang:提供利用 Java 编程语言进行程序设计的基础类,例如:String、Math、Integer、System和Thread等。
        java.util:java工具类,包含对集合的操作、事件模型、日期和时间设施、国际化和各种实用工具类。
        java.io:通过数据流、序列化和文件系统提供系统输入和输出。
        java.net:为实现网络应用程序提供类。

        java.awt:包含用于创建用户界面和绘制图形图像的所有类。

    4、引包:

        什么时候需要引包:
        自定义类中使用在不同一包中的其它自定义类时;
        自定义类中除java.lang包以外的其它包中的JDK中自带的类时就需要引包;
        自定义类中使用其它第三方jar包中的类或接口时需要引包;
        如何引包:
        直接使用完整类名引包;

         使用import关键字引包有两种方法:

            1、import 包名.类名,这种方式用的最多;

            

             2、import 包名.*,这种方式将向类中导入该包中的所有公共类;
                

               注意在包中的类不能使用默认包中的类;

二、访问控制符

    软件中的某些属性和方法出于程序安全考虑不允许被其它类操作和调用,这就需要使用Java中的访问权限修饰符,Java中的访问权限修饰符有4种:
    

    Java中的访问权限修饰符可以修饰成员变量、构造方法、普通方法。

    全面研究某个访问权限的使用范围需要从以下方法考虑:

    

    访问控制符使用范围:

        public是最大的访问权限修饰符,其修饰的成员变量、构造方法和普通方法可在任何一个类中被操作或使用;
        protected修饰的成员变量、构造方法和普通方法可以在其定义类中、与定义类同包的其它类(可以使子类)中和与定义类不同包但是其子类的类中使用,但是在其他包中使用的时候只能通过继承的方式使用,不能直接在其他包的类中创建该类的对象;
        默认(友好的)修饰的成员变量、构造方法和普通方法可以在其定义类中和与定义类同包的其它类(可以使子类)中使用;

        private是最小的访问权限控制符,其修饰的成员变量、构造方法和普通方法只能在定义它们的类中被操作或使用;

            

        对于protected的详解:

    首先,要说procted在同一包中无论两个类是否继承都可以使用;但是如果不在同一个包中,想要使用的话必须是继承关系。(即A如果继承B才可以使用B中的方法和成员变量)此时使用的方式又分为两种:如果A中的方法和成员变量是非静态的,必须通过继承来使用,如果A中的方法和成员变量是静态的,可以在B中直接使用A的类名去使用。例如:


第二个例子:


三、封装

封装是Java三大特征之一,指使用公有方法操作类中私有属性以保证数据的安全性。

    



猜你喜欢

转载自blog.csdn.net/ChenxiLiylnf/article/details/80315708