Think in Java——复用类

喜欢ヅ旅行 2022-04-23 02:32 330阅读 0赞

复用类方法

Java复用代码的思路有两种:

  • 组合:在新类中产生现有类的对象,再添加新的扩展成员与行为;
  • 继承:新类继承自现有类,拥有现有类的全部特性。

组合一般是将现有类型作为新类型底层实现的一部分来加以复用,而继承复用的是接口,这里的接口含义就是父类的成员与行为。

final关键字

  1. 在定义一个常量的时候,必须对其进行赋值。一个既是 static 又是 final 的域只占据一段不能改变的存储空间。如何理解?finalstatic final 的区别是:final 在一个类对象唯一,static final 在多个对象中都唯一。所以一个既是 static 又是 final 的域只占据一段不能改变的存储空间,只有一份;
  2. 对于基本数据类型,final 修饰后数值会恒定不变。如果用来修饰引用,final 使得引用恒定不变,一旦初始化指向一个对象,不可以再指向别的对象,对象自身可以更改;
  3. final 修饰的数据不一定编译时就已经知道值,下面代码例子就是需要运行时才能知道。除此以外,static final 修饰的会在类加载时确定值,而和类的对象创建初始化无关;

    1. final int a = new Random(47).nextInt(20);
    2. static final int b = new Random(47).nextInt(20);
  4. Java允许 final 定义的数据先为空白,但必须在构造函数中进行赋值,保证在使用前已经进行初始化。除此以外,空白 final 有一个很好的点值得提一下,一个类中的 final 域不同的对象不同的初始化能具有不同的值,前提不能是 static final 修饰;
  5. final 修饰方法主要是不想子类继承的时候修改,这是现在用来修饰方法的主要动机。Java SE5/6 之前可能还有个动机是想提高代码效率,用 final 修饰过的方法调用时将会转为内嵌调用,不用再有入出虚拟机栈、栈帧那种操作,不过现在推荐让编译器和JVM去处理效率问题;

初始化与类加载

  1. 类在初次被用时,字节码文件才会被加载。通常这是指类的第一个对象创建时会被加载,但是当访问 static 域或方法也会发生加载。所有的 static 对象和代码都会在加载时依程序中的顺序依次初始化一次
  2. 执行某个类中的 main 方法时,会先加载这个类。

发表评论

表情:
评论列表 (有 0 条评论,330人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Think in Java复用

    > 正如Java中所有事物一样,问题解决都是围绕着类展开的。 关键在于使用类而不破坏现有程序代码 复用实现有两种方式: 在新的类中持有现有类的对象,由于新的类是由现

    相关 thinking in java 04

    线程的状态:                                       1.新建(new)  :分配了系统必要的资源,并执行了初始化,有资格获得CPU时间了

    相关 Thinking in java(八)

    正则表达式 正则表达式符号介绍:正则表达式一般也需要使用字符串进行展示: 1、一般符号 x: 指的是普通字符,x代表的是未知数,代表着任何一个普通字符,举例x可以

    相关 Think in Java——复用

    复用类方法 Java复用代码的思路有两种: 组合:在新类中产生现有类的对象,再添加新的扩展成员与行为; 继承:新类继承自现有类,拥有现有类的全部特性。 组

    相关 thinking in java 笔记

    1,多态,向上转型:解决的办法是后期绑定,它的含义就是在运行时根据对象的类型进行绑定。后期绑定也叫动态绑定或运行时绑定。 java中除了static方法和final方法,(p

    相关 Think in Java——多态

    多态调用 1. 将 一个方法调用 和 一个方法主体 关联起来被称作绑定。绑定分为前期绑定与后期绑定,多态方法的具体调用依靠前期绑定是不行的,编译器不知道对象的具体类型无