1.组合

  • 将其他类的对象引用置于新的类中。

3.继承 extends

  • 从已知的一个类中派生出新的一个类,叫子类。子类实现了父类所有 非私有化 非静态 的属性和方法,并能根据自己的实际需求扩展出新的行为。

  • 继承在内存中其实是先复制一个父类然后添加自己的字段方法。
  • 子类中调用继承下来的方法也不需要基类对象引用。继承相当于对基类的一个扩展,因为基类有的它都有,再额外添加了一些域和方法(或覆写方法)而已。
  • 子类不能直接访问父类的private字段方法.但是,如果子类继承了访问父类私有字段的公共或受保护方法,则子类也可以通过继承的方法访问父类私有字段方法。

4.super

4.1 super.f() 调用基类的f()方法。

4.2 构造器中的super(args) 调用基类构造器,且只能在第一行。

4.3 由于构造器被重载后默认构造器不存在,且创建子类对象时一定会调用基类构造器,如果不用super则调用基类默认构造器,而基类构造器构造器被重载,故会报错,所以基类构造器被重载后子类要在构造器中显示用super调用基类构造器。

5.何时使用组合或继承

  • 组合:新类中实现现有类功能,而非现有类接口。
  • 继承:开发一个现有类的特殊版本。

6.final

  1. final 不可改变数据。 final 引用 不可指向另一对象,这对数组也同样适用,数组也是对象,但对象内容可以改变,不能改变的时引用指向。
  2. final 参数 : 参数为引用则无法改变指向,参数为基本数据类型则无法改变值。
  3. final 方法 可被继承但子类无法覆写,所有private方法都是隐式的final.(private 方法非所在类无法访问,final方法不一定 看它是什么权限)
  4. final 类 无子类,不可继承。

7. main方法

8.1 可以在类中设置main方法,这样便于进行单元测试单独运行这个类。

8.2 除构造器外,其他方法都需要对象调用才能执行,main方法也如此,创建对象并不会调用main方法,只有执行 java 类 命令时main方法才会被调用。

8.3 单独的一个没有main方法的类是无法运行的,main方法时程序运行的入口。

知识点:

  • 每一个非基本类的对象都有一个 toString() (从Object继承而来)方法,打印此对象引用就会输出该方法的返回值。
  • 默认构造器权限与类权限相同,没写权限的构造器为包访问权限。

《Java编程思想》笔记 第七章 复用类的更多相关文章

  1. [Java编程思想] 第七章 复用类

    第七章 复用类 第一种方法非常直观:只需在新的类中产生现有类的对象(组合). 第二种方法更细致一些:它按照现有类的类型来创建新类(继承). 7.1 组合语法   只需将对象引用置于新类中即可. cla ...

  2. Java编程思想 笔记

    date: 2019-09-06 15:10:00 updated: 2019-09-24 08:30:00 Java编程思想 笔记 1. 四类访问权限修饰词 \ 类内部 本包 子类 其他包 publ ...

  3. java编程思想笔记(1)

    java编程思想笔记(1) 一,对象的创建和生命周期 对象的数据位于何处?怎样控制对象的生命周期? 在堆(heap)的内存池中动态地创建对象. java完全采用了动态内存分配方式. 二,垃圾回收器 自 ...

  4. #Java编程思想笔记(一)——static

    Java编程思想笔记(一)--static 看<Java编程思想>已经有一段时间了,一直以来都把笔记做在印象笔记上,今天开始写博客来记录. 第一篇笔记来写static关键字. static ...

  5. 《Java编程思想》第一二章

    前段时间一直通过网络教程学习Java基础,把面向对象部分学完之后本来打算继续深入学习,但是感觉自己操之过急了,基础根本不够扎实,所以入手了一本<Java编程思想>,希望先把基础打好,再深入 ...

  6. Java编程思想 4th 第2章 一切都是对象

    Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...

  7. 2.1(java编程思想笔记)位移操作

    java位移操作主要有两种: 有符号位移:有符号位移会保留原有数字正负性,即正数依然是正数,负数依然是负数. 有符号位左移时,低位补0. 有符号右移时:当数字为正数,高位补0.当数字为负时高位补1. ...

  8. Java编程思想 4th 第1章 对象导论

    所有编程语言都提供抽象机制. 面向对象编程似乎是一种很好的编程思想和方式,面向对象编程中的对象简洁描述是:对象具有状态.行为和标识.状态指的是数据存储,存储的数据能反应状态:行为指的是方法,方法表示对 ...

  9. 7.JAVA编程思想笔记隐藏实施过程

    欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040237 "进行面向对象的设计时,一项主要的考虑是:怎样将发生变 ...

随机推荐

  1. 不错的PDF开发库

    C++库: 1,PDF类库 PoDoFo   http://podofo.sourceforge.net/  PoDoFo 是一个用来操作 PDF 文件格式的 C++ 类库.它还包含一些小工具用来解析 ...

  2. Linux 项目实用命令

    总结一下Linux下常用的命令 nc nc命令,这是Linux一般都带有的,被誉为“瑞士军刀”.windows和Linux都有,可以下载安装对应的平台工具.使用UDP和TCP协议的网络连接去读写数据, ...

  3. mac tomcat: error 1 operation not permitted

    在用微信传一个tomcat压缩包到别人后,解压后无法用idea启动,提示 error 1 operation not permitted,但是直接用命令可以执行. 仔细查看,原来是因为mac出于安全考 ...

  4. DataBase -- Customers Who Never Order

    Question: Suppose that a website contains two tables, the Customers table and the Orders table. Writ ...

  5. 【转】Visio画用例模型图竟然没有include关系

    转自:http://blog.csdn.net/shuixin536/article/details/8289746 由于电脑上没有安装Rose,因此决定用visio来画UML中的用例模型图,在绘制的 ...

  6. 洛谷P4589 [TJOI2018]智力竞赛 【floyd + 二分 + KM】

    题目链接 洛谷P4589 题意可能不清,就是给出一个带权有向图,选出\(n + 1\)条链,问能否全部点覆盖,如果不能,问不能覆盖的点权最小值最大是多少 题解 如果要问全部覆盖,就是经典的可重点的DA ...

  7. BZOJ3289 Mato的文件管理 【莫队 + 树状数组】

    3289: Mato的文件管理 Time Limit: 40 Sec  Memory Limit: 128 MB Submit: 3964  Solved: 1613 [Submit][Status] ...

  8. 编写clearedit的安卓控件

    1.写一个自定义的控件 public class ClearEditText extends AppCompatEditText implements View.OnFocusChangeListen ...

  9. 用Hibernate实现分页查询

    分页查询就是把数据库中某张表的记录数进行分页查询,在做分页查询时会有一个Page类,下面是一个Page类,我对其做了详细的注解: package com.entity; /** * @author:秦 ...

  10. Maven 标准目录结构

    Maven 标准目录结构 好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础.Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板.Maven2的标准目录结 ...