《Java编程思想》笔记 第七章 复用类
1.组合
- 将其他类的对象引用置于新的类中。
3.继承 extends
从已知的一个类中派生出新的一个类,叫子类。子类实现了父类所有 非私有化 非静态 的属性和方法,并能根据自己的实际需求扩展出新的行为。
- 继承在内存中其实是先复制一个父类然后添加自己的字段方法。
- 子类中调用继承下来的方法也不需要基类对象引用。继承相当于对基类的一个扩展,因为基类有的它都有,再额外添加了一些域和方法(或覆写方法)而已。
- 子类不能直接访问父类的private字段方法.但是,如果子类继承了访问父类私有字段的公共或受保护方法,则子类也可以通过继承的方法访问父类私有字段方法。
4.super
4.1 super.f() 调用基类的f()方法。
4.2 构造器中的super(args) 调用基类构造器,且只能在第一行。
4.3 由于构造器被重载后默认构造器不存在,且创建子类对象时一定会调用基类构造器,如果不用super则调用基类默认构造器,而基类构造器构造器被重载,故会报错,所以基类构造器被重载后子类要在构造器中显示用super调用基类构造器。
5.何时使用组合或继承
- 组合:新类中实现现有类功能,而非现有类接口。
- 继承:开发一个现有类的特殊版本。
6.final
- final 不可改变数据。 final 引用 不可指向另一对象,这对数组也同样适用,数组也是对象,但对象内容可以改变,不能改变的时引用指向。
- final 参数 : 参数为引用则无法改变指向,参数为基本数据类型则无法改变值。
- final 方法 可被继承但子类无法覆写,所有private方法都是隐式的final.(private 方法非所在类无法访问,final方法不一定 看它是什么权限)
- final 类 无子类,不可继承。
7. main方法
8.1 可以在类中设置main方法,这样便于进行单元测试单独运行这个类。
8.2 除构造器外,其他方法都需要对象调用才能执行,main方法也如此,创建对象并不会调用main方法,只有执行 java 类 命令时main方法才会被调用。
8.3 单独的一个没有main方法的类是无法运行的,main方法时程序运行的入口。
知识点:
- 每一个非基本类的对象都有一个 toString() (从Object继承而来)方法,打印此对象引用就会输出该方法的返回值。
- 默认构造器权限与类权限相同,没写权限的构造器为包访问权限。
《Java编程思想》笔记 第七章 复用类的更多相关文章
- [Java编程思想] 第七章 复用类
第七章 复用类 第一种方法非常直观:只需在新的类中产生现有类的对象(组合). 第二种方法更细致一些:它按照现有类的类型来创建新类(继承). 7.1 组合语法 只需将对象引用置于新类中即可. cla ...
- Java编程思想 笔记
date: 2019-09-06 15:10:00 updated: 2019-09-24 08:30:00 Java编程思想 笔记 1. 四类访问权限修饰词 \ 类内部 本包 子类 其他包 publ ...
- java编程思想笔记(1)
java编程思想笔记(1) 一,对象的创建和生命周期 对象的数据位于何处?怎样控制对象的生命周期? 在堆(heap)的内存池中动态地创建对象. java完全采用了动态内存分配方式. 二,垃圾回收器 自 ...
- #Java编程思想笔记(一)——static
Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ...
- 《Java编程思想》第一二章
前段时间一直通过网络教程学习Java基础,把面向对象部分学完之后本来打算继续深入学习,但是感觉自己操之过急了,基础根本不够扎实,所以入手了一本<Java编程思想>,希望先把基础打好,再深入 ...
- Java编程思想 4th 第2章 一切都是对象
Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...
- 2.1(java编程思想笔记)位移操作
java位移操作主要有两种: 有符号位移:有符号位移会保留原有数字正负性,即正数依然是正数,负数依然是负数. 有符号位左移时,低位补0. 有符号右移时:当数字为正数,高位补0.当数字为负时高位补1. ...
- Java编程思想 4th 第1章 对象导论
所有编程语言都提供抽象机制. 面向对象编程似乎是一种很好的编程思想和方式,面向对象编程中的对象简洁描述是:对象具有状态.行为和标识.状态指的是数据存储,存储的数据能反应状态:行为指的是方法,方法表示对 ...
- 7.JAVA编程思想笔记隐藏实施过程
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040237 "进行面向对象的设计时,一项主要的考虑是:怎样将发生变 ...
随机推荐
- android仿QQ的SlideMenu
这其实很简单就可以实现,只需要自定义一个View继承自HorizontalScrollView 1,新建一个项目,再新建一个MySlideMenu继承HorizontalScrollView publ ...
- IDEA无法新建GUI Form文件
因为最近想开发一个IDEA的插件,所以在开发的过程中就需要创建Swing GUI Form文件.但是在项目中右键New中始终就是没有“GUI Form”这个选项,然后自己琢磨寻思着是不是没有启用Swi ...
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有 多少总跳法?
首先我们考虑最简单的情况:如果只有1 级台阶,那显然只有一种跳法,如果有2 级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1 级:另外一种就是一次跳2 级.现在我们再来讨论一般情况:我们把n 级 ...
- 【EasyNetQ】- 使用Future Publish调度事件
许多业务流程要求在将来某个日期安排事件.例如,在与客户进行初次销售联系后,我们可能希望在将来的某个时间安排跟进电话.EasyNetQ可以通过其Future Publish功能帮助您实现此功能.例如,这 ...
- 【PHP】- Apache设置
Apache配置 1.首先新建一个自己的amp目录(模仿wampserver安装目录),以后的apache,mysql,php都放在此目录下. 2.下载apache 根据自己的系统下载相应的压缩包,我 ...
- Cocoa & OS X & swift 4
Cocoa & OS X & swift 4 http://www.runoob.com/swift/swift-environment.html https://en.wikiped ...
- C#中多态
我的理解是:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态. 1: OverRide 实现多态 public class Animal { public virtual void ...
- ACM模板~求逆序对的个数
#include <map> #include <set> #include <cmath> #include <ctime> #include < ...
- centos安装net-speeder
以前介绍过VPS上安装锐速对VPS的加速效果,但是这货对 Linux 内核有要求,一般就只能在XEN或者KVM的机子上安装.不过还好锐速有一个免费的代替品:net-speeder,所以这里介绍一下 D ...
- hadoop更换硬盘
hadoop服务器更换硬盘操作步骤(datanode hadoop目录${HADOOP_HOME}/bin 日志位置:/var/log/hadoop)1.登陆服务器,切换到mapred用户,执行 ...