Java中类的复用

news2024/12/24 20:33:09

类的复用(组合与继承)

第一种方法:只需在新类中产生现有类的对象,新类由现有类组成,也称为组合,该方法只是复用了现有程序代码的功能;

第二种方法:按现有类来创建新类,无需改变现有类,在现有类基础上添加新代码,这种方式称为继承,编译器完成大部分工作。

1、组合语法

初始化引用对象可以在以下位置进行:

a 在定义对象的地方,意味着它们总能在构造器被调用之前初始化;

b 在类的构造器中;

c 就在要使用这些对象之前,这种方式为惰性初始化,没必要在生成对象时就进行初始化,这样可以减少负担;

d 使用实例初始化。

 

 

2、继承语法

继承是所有OOP语言不可缺少的部分,当创建一个类时,总是在继承,除非已明确要从其他类中继承,否则都是隐式地从Java的标准根类Object进行继承,所以所有类都具有Object类的对象与方法。

 

 

3组合与继承的关系以及应用场景

组合:通常用于你想要的在新类中使用现有类的功能而非它的接口的情形。即,你在新类中嵌入某个对象,借其实现你所需要的功能,但新类的用户看到的只是你为新类所定义的接口,而非嵌入对象的接口。为取得此效果,你需要在新类中嵌入一个private的现有类的对象。

继承:创建一个基类,子类对父类进行继承。

Java中"is-a"(是一个)的关系是用继承来表达的,而“has-a”(有一个)的关系则是用组合来表达的。

判断你到底是该用组合还是继承的最清晰的方法,就是问一看一下自己是否需要从新类向基类向上转型,如果你必须向上转型,那么继承是必要的,但如果你不需要,则应当考虑一下是否需要继承。

 

 

 

在继承图中是向上移动的,因此称为向上转型,向上转型是由专用通用类向基类转型的,所以比较安全。

4程序初始化以及类加载

Static的用法

类中的静态代码块被自动执行,尽管类有多个实例对象,但其中的静态代码块只被执行了一次。当一个程序中用到了其他的类,类是在第一次被使用的时候才被装载,而不是在程序启动时就装载程序中所有可能要用到的类。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

m基于LPF-VMD和KELM的鸟群优化算法的风速预测算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 1).使用 LPF-VMD 对风速时间序列进行分解, 得到一个低频的趋势分量以及 n 个由 VMD 分解得 到的 BIMF。 2).对 LPF-VMD 分解得到的各分量分别建立 KELM 预测模型,采用 B…

【进阶】C语言第二课:升级你的指针(1)

目录 🤩前言🤩: 一、字符指针🤯: 1.字符指针的使用🦝: 2.常量字符串🦊: 3.相关面试题分析🐣: 二、指针数组🧐: 三、数…

vue+nodejs公益图书借阅捐赠管理系统

公益图书捐赠管理系统 用户信息:id、用户名、密码、捐书数量(管理员端可以点击跳转查看详情)、上传电子书数量(管理员端可以点击跳转查看详情)、借阅图书数量(管理员端可以点击跳转查看详情)&am…

利用全长转录组多重阵列测序检测同源异构体

哈佛大学和麻省理工学院近期发表了“High-throughput RNA isoform sequencing using programmable cDNA concatenation.”研究论文中,将 cDNA 串联成可用于长读长测序最佳的单分子的技术应用于肿瘤浸润 T 细胞的单细胞 RNA 测序,提高了寻找可变剪接基因的准确度&…

秒懂:JCTool 的 Mpsc 高性能无锁队列 (史上最全+10W字长文)

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

C# 修饰符

一 访问控制符 二 static 1 static 的字段、方法、属性是属于整个类的 ① static方法中,不能访问实例变量; ② 调用static方法时,直接用类名访问 Console.Write();Math.Sqrt(); Convert.ToDateTime();DateTime.Parse String.Copy(a);Strin…

【JavaSE】javaSE练习项目——>《简易图书管理系统》

目录 前言: 1、项目实现要求 2、设计思路流程 设计思路: 登录后菜单的实现效果: 3、代码实现(大体框架) Main类 book包 Book类 BookList类 user包 User类 AdminUser(管理员)类 NormalUser(普通…

Hibernate Validator 使用详解

目录 Hibernate Validator的依赖 Hibernate Validator 支持注解 空与非空检查 Boolean值检查 日期检查 数值检查 其他 Hibernate-validator扩展约束 Hibernate Validator 校验 简单对象校验 嵌套对象校验 Hibernate Validator 分组校验 静态分组 动态分组 动态分…

【软件测试】刚入职后,快速适应新的工作需要做啥?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 入职一家新公司后&a…

基于AD8226的环境光传感器电路

人们越来越多地认为环境光是一种能源,可用于驱动心率监控器、浴室灯具、远程天气传感器和其他低功耗器件。对于能量采集系统,最关键的是精确测量环境光的能力。本设计思路将描述一种简单的低成本电路,可以根据环境光的强度按一定比例提供电压。 所用传感器是一款光敏电阻(L…

spring framework 容器

org.springframework.beans 和 org.springframework.context 包是 Spring Framework 的 IoC 容器的基础。 这里需掌握两个体系结构,BeanFactory 和 ApplicationContext。 BeanFactory 主要接口,可分为三级: BeanFactory 是顶层容器&#xf…

Nacos 配置中心之主动拉取

客户端 客户端的配置有两种方式来维持,一是客户端主动拉取,而是客户端长轮询更新 配置文件的种类 1、本地配置文件: 本地就已经存在的配置文件 2、 本地缓存文件: 从服务端获取的保存在了本地 (本地生成了文件) 3、 cacheData 缓存数据: 内存中缓存的配置文件数据 客户端主动获…

【分享】学浪PC端登录分析及实现

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!学浪PC端登录分析及实现 环境 win10Fiddlerchrome学浪PC端登录:aHR0cHM6Ly9zdHVkZW50LWFwaS5peWluY2Fpc2…

AE 动效制作和交付方案

在界面设计中,设计师利用动效让整个界面更加活泼,给界面元素带来生命力,解决功能上的问题,在更好地展示产品功能的基础上,凸显品牌的特色。而作为用户,动效增强了体验者的审美感受、情感需要,让…

德才论

目录 1015:德才论 输入格式: 输出格式: 输入样例: 输出样例: 思路: 1.技巧: 1.2结构体代码: 2.分类: 1.德才分类 1.2德才分类代码: 2.cmp函数 2.1 cmp函数代码: 3.超时问题(易错,算法要优化) 总代码…

神经网络优化

提升深度神经网络:超参数调节,正则化,优化 之前已经学习了如何构建神经网络,本章将继续学习如何有效运行神经网络,内容涉及超参数调优,如何构建数据以及如何确保优化算法快速运行,从而使学习算…

LVM卷在线扩容报错:resize would cause inodes_count overflow

一、问题描述 某次在线环境&#xff0c;存储使用率告警在线扩容时&#xff0c;文件系统扩容失败&#xff0c;报错如下&#xff1a; Size of logical volume sihua/video changed from <162.00 TiB (42467321 extents) to <258.00 TiB (67633142 extents).Logical volu…

[附源码]计算机毕业设计付费自习室管理小程序Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

【JDBC上篇】什么是JDBC

文章目录1、对JDBC本质的理解2、代码模拟JDBC的本质3、JDBC编程的六步4、通过类加载的方式注册驱动5、属性配置文件与JDBC6、处理查询结果集1、对JDBC本质的理解 Java DataBase Connectivity&#xff08;Java语言连接数据库&#xff09;&#xff0c;其本质是SUN公司指定的一套…

CSP22.3 T4通信系统管理

之前在CCF CSP认证2022年3月完整题解这篇博客记录了自己花了两天时间乱搞出来的方法&#xff0c;但是实际上动态维护区间最值&#xff0c;通过setsetset实现会更简洁&#xff0c;用优先队列需要额外开数组记录堆中节点的有效性。 而且在处理额度失效上&#xff0c;我也使用了最…