zoukankan      html  css  js  c++  java
  • JavaOO05

    public:可以被任何对象访问
    protected:可以被同包的类以及不同包的子类所访问
    默认访问级别:可以被同包的类访问
    private:只有类本身可以访问

    标准Java类:
    (1)必须要有公共无参构造
    (2)必须为私有属性提供符合命名规范的get和set方法

    封装的好处:
    (1)类的成员变量可以成为只读或者只写的。
    (2)类可以对存储在其他成员变量中的内容有一个整体的控制。
    (3)类的用户不需要知道类是如何存储数据的。

    static修饰属性:
    1、现象:用static修饰的属性,全类共享一个值。那么这个属性不再存放在每个对象身上,而是全类共享。无论哪个对象对该属性进行了改动,全类所有对象都被改动了。
    2、原因:static的属性是单独存放在内存中的静态区的,而不是存放在每个对象身上的,所以它可以通过 类名.的方式就可以操作。
    (3)特殊操作:它可以通过 类名.的方式就可以操作。
    ----这是结果而不是设计static的原因。
    注意:能用static修饰的属性其实是极少的。
    ---除非你能真正保证它是全类共享的一个值,否则不允许。

    这个name到底什么时候放进内存的呢?
    它会在程序运行之前,即加载期的时候就会产生并放入。

    使用最多?--常量属性可以无脑设计加“static”
    public static final....

    static变量属性?---班级人数


    static修饰方法:
    1、现象:
    (1)可以直接通过类名的方式就可以操作
    (2)static的方法中不能出现this和super
    (3)static的方法中不能访问非static的属性行为
    2、原因:
    加载期,会首先加载静态方法和属性,这个时候还没有对象产生,在加载静态方法的时候还不认识非静态的属性或非静态的方法,因此会报错。
    3、特殊设计:
    只有工具类的工具方法,才能定义为static。
    如果一个方法不需要执行到对象本身相关的数据或行为的时候,那么这个方法才可以定义为static


    实例初始化块:能在一个类里写的第四种东西(属性、初始化块、构造、行为)
    1、书写位置:写在属性之后,构造之前
    2、什么时候调用?--没有方法声明,不知道参数列表,甚至不知道方法名
    默认在初始化对象(new对象)被自动调用,每产生一个对象,就被调用一次。
    分析:
    1.都是代码块,都已经有当前对象,所以凡是可以写在初始化块中的代码,也可以写在构造方法中
    2.构造方法内部的代码是在实例初始化之后执行的,最终效果以构造为准。
    结论:初始化一个对象要写的代码语句,宁愿写在构造方法里面。
    咋用呢?
    本来所有构造方法都要执行的共有代码,可以写在实例初始化快,只需要一次。

    静态初始化块:能在一个类里写的第四种东西(属性、初始化块、构造、行为)
    1、书写位置:写在属性之后,构造之前
    2、什么时候调用?--没有方法声明,不知道参数列表,甚至不知道方法名
    默认在类加载的时候被自动调用,类只加载一次,所以这个代码只执行一次。
    分析:
    1.这是目前我们学的唯一一个在加载期就能执行的代码。
    2.在加载期做事情,消耗的是加载期的时间,不会影响运行期时间。
    结论:静态初始化块非常有用!特别是一些大型项目,预先需要准备的动作可以写在里面,从而不影响运行时间。


    可以在一个类中定义的第五部分 ----内部类
    内部类分类:成员内部类 局部内部类

    成员内部类
    书写位置:直接写在内部类本身当中,与外部类的属性,构造,行为,初始化块平行。

    成员内部类除了定义的位置特殊之外,它仍是一个完整的类
    表现在:1.可以拥有属性、构造、行为、初始化块、内部类。
    2.它可以是一个独立的类,所以有独立的class文件
    3.成员内部类可以像属性、行为、初始化块一样,用static修饰 ---静态内部类

  • 相关阅读:
    【刷题】洛谷 P2764 最小路径覆盖问题
    【刷题】BZOJ 3546 [ONTAK2010]Life of the Party
    【刷题】BZOJ 3175 [Tjoi2013]攻击装置
    【刷题】BZOJ 4516 [Sdoi2016]生成魔咒
    【刷题】SPOJ 1811 LCS
    【刷题】洛谷 P3804 【模板】后缀自动机
    【刷题】SPOJ 8222 NSUBSTR
    (98)Wangdao.com_第三十天_拖拉事件
    ECMA Script 6_必须要知道的基础
    (97)Wangdao.com_第三十天_触摸事件
  • 原文地址:https://www.cnblogs.com/rookie97/p/11637192.html
Copyright © 2011-2022 走看看