大家一起和snailren学java-(六)复用类

  “失恋了,唉,还没开始就结束了……唉……继续看java”

  今天又是周末,我们来看看java的复用机制是什么情况。大家知道,代码复用非常实用,这项特性是java的一个重要的部分。那java用什么来实现的复用呢?是组合和继承。当然还有代理机制,但是不是很常用,因此我们暂时不考虑。

  什么是“组合”呢?就是把不同的类的实例放到一个新的类里面,组合起来。那“继承”,就是通过extends关键字进行的继承。组合更强调的是使用某种类的功能,而继承则是对某种类的定制化。因此相对于继承,我们在进行设计的时候,尽量使用组合。因为组合更加灵活,只有在不得不继承的时候再继承。

  (小tips:在每个类中都可以加main方法,这样比较方便单元调试。因此一个文件中有多个类可以有多个main)

  对于继承,一般将基类的数据定义为private,将方法定义为public。关于基类和本身对象的初始化这就不讨论了。同时,我们知道java的GC不可控,因此像以前说的,如果我们有定义其他的内存申请方式,那么我们需要自己去做特殊的清理工作。我们可以用finalize,但是不建议用这个,原因以前说过。我们可以用try/finally来实现,因为finally一定会执行,可以在其中调用清理工作的方法,按照对象的申请顺序逆序进行清理。(小tips:若想覆盖一个基类方法,而不是重载,为了确保是覆盖,可在方法前加@override)

   这里还有一个以前没有见到的定义“向上转型”。什么是向上转型,就是在调用基类的方法的地方可以用子类。因为子类就是基类的一种。

  最后说说final吧。我们在使用final的时候,主要用在三个方面,数据、方法、类。在对数据用final的时候,如果是对基本数据类型用final,那么那个数据就不会变。如果是对对象用final,那那个引用指向的对象不能变,但是对象本身是可以变的,这点需要注意。对方法用 final,意思是不允许覆盖。以前说对方法用覆盖,有内联机制,可以提高效率,但是现在这不是重点了,主要还是用禁止覆盖为目的。对类用final,那就是说这个类不能被继承,所有的都为final。

时间: 2024-10-14 23:07:01

大家一起和snailren学java-(六)复用类的相关文章

Java基础 -- 复用类(组合和继承)

复用类有两种实现方式. 在新的类中产生现有类的对象,由于新的类是由现有类的对象所组成,所以这种方法称之为组合. 采用继承实现. 一  组合语法 下面创建两个类WaterSource和SprinklerSystem.其中SprinklerSystem中包含WaterSource的对象引用. class WaterSource { //如果定义时没有初始化,则基本类型会被自动初始化为0,对象引用初始化为Null private String s; WaterSource(){ System.out.

波哥学JAVA,定义类 创建对象 实例化对象 属性 类调用属性或者方法

定义类 声明对象  创建对象 实例化对象 属性 对象调用属性或者方法 举例,下面定义类了一个类并声明属性,写了一个方法: 创建对象 实例化对象 属性 类调用属性或者方法

Rhythmk 一步一步学 JAVA (21) JAVA 多线程

1.JAVA多线程简单示例 1.1 .Thread  集成接口 Runnable 1.2 .线程状态,可以通过  Thread.getState()获取线程状态: New (新创建) Runnable (可以运行) Blocked  (被阻塞) Waiting  (等待) Timed waiting (计时等待) Terminated  (被终止) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

跟王老师学Java三大特性(一):案例 QuickHit:需求分析

项目案例:QuickHit:需求分析 主讲教师:王少华   QQ群号:483773664 学习目标 学会用面向对象思想来进行需求分析 一.需求 根据输入速率和正确率将玩家分为不同级别 级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高 规定时间内完成规定次数的输入,正确率达到规定要求,则升级 玩家最高级别为6级.初始级别一律为1级 用户错误输入一次,游戏结束 二.面向对象分析 (一) 发现类 玩家(Player)类 游戏(Game)类 级别(Level)类 (二)发现类的属性 1.玩家

零基础学Java应知道的学习步骤规划与市场行情「附源码和视频」

无论是在校的学生也好,还是转行的也好,如今学JAVA开发的人越来越多,造成了如今新手越来越多,有人就说JAVA饱和了,JAVA才刚开始以一种好的势头发展就饱和了.我也是无语,一般说饱和的人,基本是学的不咋地,找不到工作的,怨天尤人说饱和了,类似于吃不到葡萄说葡萄酸. 纵观中国目前整体行业来说,互联网IT行业 成为了拔尖的行业,机械行业有点夕阳西下的意思,电子行业被国企所垄断,没有关系很难混起来.如果说没有背景,单凭自己能力的话,在如今这个需要钱的社会,IT互联网程序开发成了靠自己能力可以多挣一点

一起学 Java 面向对象(二)

一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数只有被调用才会被执行:3> 对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写,系统会帮你自动加上:4> 函数中只能调用函数,不可以在函数内部定义函数. 修饰符 返回值类型 方法名(参数类型 形式参数1,参数类型 形式参数2,..

跟老杨学java系列(五) JDK的安装与配置

跟老杨学java系列(五) JDK的安装与配置 提示:本节内容对于java入门是非常关键的,对于刚接触java的同学一定要认真学习,欢迎大家留言探讨技术问题.其他问题概不回复. (书接上回)上节课程我们简单介绍了java项目的开发过程及常用的开发工具,这节课我们详细讲解一下JDK的安装与配置.根据上一节的学习,我们知道编写完java代码后,需要先对java代码进行编译,然后再执行.而java程序的编译与执行都是通过JDK来完成的.所以做java开发,首先我们需要学会安装和配置JDK.下面我们就来

我要带徒弟学JAVA架构 ( 写架构,非用架构 )

我要带徒弟学JAVA架构 (写架构.非用架构) 非常多人做java开发2,3年后.都会感觉自己遇到瓶颈. 什么都会又什么都不会.怎样改变困境,为什么非常多人写了7,8年还是一个码农,工作中太多被动是由于不懂底层原理. 公司的工作节奏又比較快,难有机会学习架构原理,也没人教.所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要. 相同公司的两个新人,一个新人一点就通.学东西非常快,有的人.学东西非常慢,也非常痛苦,处处都是新技术.为什么?由于那个人懂原理,万物都有规律,掌握了规律学其它

一起学JAVA之《spring boot》03 - 开始spring boot基本配置及项目结构(转)

<div class="markdown_views"> <h3 id="一导航"><a name="t0"></a>一.导航</h3> 本节内容简介: 1. spring boot 配置文件,使用@SpringBootApplication注解 2. spring boot 修改Java版本 和项目编码 3. 一个标准的spring boot 代码结构 4. 查看当前项目自动配置了那些