• JAVA编程思想笔记【突击1】——初始化,访问权限控制,继承,多态


    1 初始化

    初始化的一些基本知识:

    1 在类里定义一个对象引用时,如果不将其初始化,此引用就会获得一个特殊值null。

    2 在定义类成员的地方为变量赋值(C++中不允许这么做)。

    3 编译器会对“向前引用”发出警告

    4 无法阻止自动初始化的进行,它将在构造器被调用之前发生。

    public class Counter{
        int i;
        Counter() { i = 7; }
        //......
    }

    i首先会被置0,然后变成7。

    5 在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。

    6 静态初始化只有在必要时刻才会进行。只有在第一个Table对象被创建的时候,它们才会被初始化。

    7 初始化的顺序是先静态对象,而后是“非静态对象”。

    思考题:对象的创建过程。(P96)


    8 编译器不允许指定数组的大小。

    9 Random.nextInt()方法,这个方法会返回0到输入参数之间的一个值。

    10 数组的创建是在运行时刻进行的。

    11 如果你创建了一个非基本类型数组,那么你就创建了一个引用数组。


    2 访问权限控制

    一些基本知识点:
    1 访问权限:public, protected, private, 和不加修饰词的“包访问权限”
    2 如果创建了一个新包,并自另一个包中继承类,那么唯一可以访问的成员就是源包的public成员。
    3 protected:就类用户而言,这是private的,但对于任何继承与此类的导出类,或者其他任何位于同一个包内的类来说,它却是可以访问的。即protected也提供了包内访问权限。

    3 继承

    1 “为新的类提供提供方法”并不是继承技术中最重要的方面,其最重要的方面是用来表现新类和基类之间的关系。这种关系可以用“新类是现有类的一种类型”来概括。
    2 由于继承可以确保基类中所有的方法在导出类中也同样有效,所以能够向基类发送的所有信息同样也可以向导出类发送。这意味着导出类也是一种类型的基类。

    3 将导出类引用转换为基类的引用的动作,称之为向上转型。

    在向上转型的过程中,类接口中唯一可能发生的事情是丢失方法,而不是获取它们。

    4 final

    对常量定义的方式:定义为public:可以被用于包之外; 定义为static,强调只有一份; 定义为final, 则说明它是一个常量。

    一个既是static又是final的域只占据一段不能改变的存储空间。

    空白final:一个类中的空白final域可以做到根据对象而有所不同,却又保持其恒定不变的特性。必须在构造函数中对它进行初始化。

    final参数:在参数列表中以声明的方式将参数指明为final,这意味着你无法在方法中更改参数引用所指向的对象。

    final方法:把方法锁定,以防任何继承类修改它的含义。确保在继承中使方法行为保持不变,并且不会被覆盖。

    5 如果某方法为private,那么它就不是基类的接口的一部分。

    6 在使用继承时,由于导出类具有基类接口,因此它可以向上转型至基类,这对多态来讲至关重要。

    4 多态

    一些基本知识点:

    1 封装通过合并特征和行为来创建信的数据类型。

    实现隐藏则通过将细节“私有化”把接口和实现分离开来。

    多态的作用是消除类型之间的耦合关系。

    2 继承允许将对象视为它自己本身的类型或其基类型来加以处理,这种能力允许将多种类型视为同一种类型来处理,而同一份代码也就可以毫无差别地运行在这些不同类型之上了。

    3 多态方法调用允许一种类型表现出与其他相似类型之间的区别,只要它们都是从同一基类导出而来的。

    多态也称为运行期绑定。

    4 对象既可以作为它自己本身的类型使用,也可以作为它的基类型使用,这种把对某个对象的引用视为对其基类型的引用的做法称作向上转型。


  • 相关阅读:
    Spring3:AOP
    Spring2:bean的使用
    Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
    Vue.js——60分钟组件快速入门(上篇)
    vue父子组件嵌套的时候遇到
    Vue.js——60分钟快速入门
    [Vue warn]: Cannot find element: #app
    关于RabbitMQ以及RabbitMQ和Spring的整合
    spring集成多个rabbitMQ
    RabbitMQ-从基础到实战(5)— 消息的交换(下)
  • 原文地址:https://www.cnblogs.com/suzhou/p/3638991.html
Copyright © 2020-2023  润新知