Javase部分回顾(static (静态修饰符),修饰方法,单利的设计模式, 封装)

时间:2021-05-01 21:08:56

static (静态修饰符)
    
    1.修饰成员变量
        静态变量的访问方式:
            方式一 : 通过对象访问。
                对象.变量名
            方式二: 同过类名
                类.变量名
        
        静态变量的使用注意点 :
            局部变量不允许被static修饰。
            用static修饰的变量式放在共享区的,所以千万不要为了方便就将所有的静态变量都定义为成员变量。

        静态变量和非静态变量的区别:
            1.作用上来看 :
                1.静态变量使用来共享的,所有的对象都可以访问到。
                2.非静态变量就是用来描述同一类事物的公共属性。
            2.数量和存储位置:
                1.静态变量存在方法区(数据共享区),并且只有一份数据。
                2.非静态变量存在堆区中,对象有n个,数据就有n个。
            3.生命周期:
                1.静态变量是在随着类文件的加而加载,随着类文件消失而消失。
                2.非静态变量是随着对象创建而创建,随着对象的消失而消失。

    2.修饰方法
        
        静态变量的修饰的方法也有两种访问方式: 和OC中的类方法有点类似
            
            1.对象来访问:
                对象.方法名();

            2.类来访问:
                类.方法名();

        注意事项:
            1.静态方法访问静态的成员变量,不能访问非静态的成员变量。
                原因: 静态方法被访问了,非静态的成员变量还没有被创建。
            2.静态方法是可以直接访问静态方法,不能够访问非静态的方法。
                原因:同上。
            3.静态方法中不允许出现this和super关键字。






    ---------------------main 主方法为什么这么定义--------------------
        public :让jvm能够在任何情况下都可以调用。
        void   : jvm拿到返回值没有意义。
        static : jvm不知道该创建什么样的对象出来,所以干脆就不创建了。
        main   :不是关键字。 只是约定将这个作为入口方法的名。
        args   : 接收程序运行是传递的参数。





    --------------------单利的设计模式-----------------------

    1.饿汉单利设计模式:
        步骤 :
            1.定义一个私有的静态成员变量来引用对象(私有的静态对象),设置对象唯一。
            2.私有化构造方法,防止new对象。
            3.创建一个公开的静态方法,返回上面的对象。

    2.懒汉单利设计模式 : 要用的才创建对象        
            1.定义一个私有的静态成员变量,不要赋值。
            2.私有化构造方法,防止new对象。
            3.创建一个公开的静态方法,判断是否存在对象,如果不存在就创建一个,如果存在就直接返回。






    ---------------------面向对象三大特征之一 : 封装--------------------------
        封装的步骤:
            1.用private来修饰成员变量。
            2.设置一个公共的方法来设置或者访问私有的成员变量。
                命名规范:
                    set属性名();
                    get属性名();
        封装不一定需要提供set和get方法, 根据需求来定的。
        规范 :在实际开发中实体类的成员变量,都需要封装起来。

        封装用处:
            框架,工具类。
        封装的好处:
            1.提高了数据的安全性
            2.操做简单
            3.隐藏方法的实现。