精选文章 复用类

复用类

作者:acgzq60406 时间: 2021-02-07 01:38:05
acgzq60406 2021-02-07 01:38:05
【摘要】组合语法 将对象引用置于新类中即可.初始化组合对象的方式有 在定义处,可以保证在构造器执行前初始化构造器中惰性初始化,只在要使用时初始化使用实例初始化继承  继承时会自动获得父类所有的域和方法
 基类初始化,基类构造器会在子类构造器调用之前调用,若是基类不存在无参数默认构造器,则需要通过super显式调用基类构造器 
 代理,使用方法暴露子对象的接口
 确保正确清理 
 将清理方法放在fin...
  1. 组合语法 将对象引用置于新类中即可.初始化组合对象的方式有
    • 在定义处,可以保证在构造器执行前初始化
    • 构造器中
    • 惰性初始化,只在要使用时初始化
    • 使用实例初始化
  2. 继承
    继承时会自动获得父类所有的域和方法

基类初始化,基类构造器会在子类构造器调用之前调用,若是基类不存在无参数默认构造器,则需要通过super显式调用基类构造器

  1. 代理,使用方法暴露子对象的接口

确保正确清理

将清理方法放在final中,最好编写自己的清理方法,不要使用finalize()

名称屏蔽

子类会拥有所有父类的重载函数,切都可以调用

向上转型

子类可以向上转型变为基类,因为子类的接口一定大于等于基类

final关键字

指定数据不可变,若是修饰引用则表明引用指向的对象不能变,但是对象自身可以被修改

static的final常量只会在类加载时初始化一次

非static的final会在每次对象创建时初始化.

final的基本类型常量为编译时常量 会被编译器优化.

final参数指参数不可更改.空白final,可以不指定初始值,但一定要在使用前初始化,使其与对象绑定,同类的不同对象拥有不同的值.

final方法指 方法锁定不能被覆盖.java初期也会使用final方法进行效率优化,因为早期java实现中可能会将final方法的调用转为内嵌调用,但后来已经被废除,因为可能方法太大导致内嵌调用会带来效率下降的问题,新的hotspot技术会负责效率问题.

final类不可被继承,所有的方法隐式指定为final.

初始化及类的加载

java类的代码只有在初次使用时才会加载

类的初始化过程: 当运行某个类时,试图访问它的main方法,当发现有基类时会先加载基类.一直加载到最根部的基类,然后从根开始进行static初始化.到达本身后开始进行对象的创建,先是将对象内存全部设置为0,然后递归调用基类构造器,最后进行构造器剩余部分.

总结

继承复用的是接口,组合复用的是旧类.

除非你需要新的类可以向上转型,否则一般应优先使用组合.

每个类都应该有特定用途,不应该太大,如果一个类很大就要考虑将该类分成多个小类.





转载于:https://www.cnblogs.com/renluxiang/p/2e3b7b2a181a36166d04f5b0a7f57cc2.html

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:Python #time

下一篇:Nginx负载均衡的实现(初级)

您可能感兴趣

  • 闲聊设计模式和类

    以下纯属闲聊,不过仁者见仁,智者见智,希望给大家一个思考. 2001-04-08 22:38:06 梦郎必须更改数据库,我们第一必须保证数据库是符合程序的计算要求.否则无法判断错误在哪 2001-04-08 22:42:01 Leeseon那就先这样吧,以后我建议把半成品单独做成一个类,来封装它的逻辑会好一些 2001-04-08 22:41:27 梦郎以后很可能在程序中不分半成品还是材料,...

  • Win32 API 注册表类的编制以及使用

    Win32 API 注册表类的编制以及使用 一、问题的提出 Windows 已由原来的16位 windows 3.x 升级为现今我们使用的32位windows 95/97/98 以其 Windows NT,用户不仅在使用上应逐步适应,对于程序开发人员来说在编程技术 上也应紧跟操作系统的技术发展,就如同 在 Linux 操作系统下, X-Window 编程就显 得很重要一样。作为一个完整成熟...

  • 解决VC中增加类文件的问题

    解决VC中增加类文件的问题  一、通过“AddToProject”向当前工作区A增加DibDoc类头文件及应用文件,在A的类A1中使用DibDoc类后编译,出现如下错误:  errorC2501:'CDibdoc':missing dec1-specifiers  于是作了以下处理,解决了出现的问题:  1.检查发现在类A1中,头文件包含#include"dibdoc.h"放在了#inclu...

  • Java数 据 类 型

    § 2.1数 据 类 型数 据 类 型 指 明 了 变 量 或 表 达 式 的 状 态 和 行 为 。 Java的 数据 类 型 如 下 所 示 :Java不 支 持 C、 C++中 的 指 针 类 型、结 构 体 类 型 和 共 用 体 类 型。本 章 我 们 主 要 介 绍 简 单 类 型 。§ 2.2常 量 与 变 量一 、 常 量Java中 的 常 量 值 是 用 文 字 串 表 示...

  • .NET框架类览胜(下篇)(1)

    .NET框架类览胜(下篇)(1) [ 作者: 不详 添加时间: 2001-5-30 8:11:13 ]![一、处理字符串 .NET 框架类(或System类)提供了大量可在构造.NET应用时使用的核心功能,这些功能适用于任何语言环境。本文的第一部分介绍了程序集、名称空间等基本概念以及System.Math和System.Random类。这是本文的第二部分,接着讨论其他几个很有用的类:Sys...

  • .NET框架类览胜(上篇)(1)

    .NET框架类览胜(上篇)(1) [ 作者: 松下客 添加时间: 2001-5-30 8:09:43 ] ![一、基本概念 .NET框架(Framework)是一个开发、部署和运行.NET应用的环境,包括了ASP.NET、公共语言运行时环境(CLR)以及.NET 框架类。关于ASP.NET和CLR的介绍已经有很多,相对而言,关于.NET框架类的介绍却比较少见。 .NET框架类也即Syste...

  • C++中类及类的定义

    在面向对象的程序设计中,有经常接触类、对象等专业名词;到底什么是类、什么是对象呢?在程序又是怎样运用呢?类是面向对象程序设计的核心,它实际是一种新的数据类型,也是实现抽象类型的工具,因为类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象;而对象是某一种类的实例,因此,类和对象是密切相关的。没有脱离对象的类,也没有不依赖于类的对象。    什么是类    类是一种复杂的数据...

  • 初始化C++类成员和在你的MFC应用中的加入位置

    问题  我的问题是关于初始化C++类成员的。我见过许多这样的代码(包括在你的栏目中也见到过): CSomeClass::CSomeClass() {     x=0;     y=1; } 而在别的什么地方则写成下面的样子: CSomeClass::CSomeClass() : x(0), y(1) { } 我的一些程序员朋友说第二种方法比较好,但他们都不知道为什么是这样。你能告诉我这两种类...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
复用类介绍:华为云为您免费提供复用类在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多复用类的相关内容。| 移动地址: 复用类 | 写博客