上一篇java读书系列笔记文章:#java读书笔记#面向对象1

14、Math类的使用(重点)

(1)数学操作类:该类没有构造函数,方法均为静态的

(2)掌握内容

A:成员变量

**E:比任何其他值都更接近e(即自然对数的底数)的double值。

**PI:比任何其他值都更接近pi(即圆的周长与直径之比)的double值。

B:成员方法

**static double abs(double a)

返回 double 值的绝对值。返回绝对值

**static double ceil(double a)

返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。

**static double floor(double a)

返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

**max:返回两个值中较大的那个

**min:返回两个值中较小的那个

**static long round(double a) 返回最接近参数的 long。

static int round(float a) 返回最接近参数的 int。

**static double random()

返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

**static double pow(double a, double b)

返回第一个参数的第二个参数次幂的值。

**static double sqrt(double a)

返回正确舍入的 double 值的正平方根。

15、Random类的使用(重点)

(1)产生随机数的类

(2)掌握内容

A:构造方法

**Random() 创建一个新的随机数生成器。

**Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。

B:成员方法

**int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

**int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、

在 0(包括)和指定值(不包括)之间均匀分布的 int 值。

16、Scanner类的使用

(1)可以获取从键盘的输入数据

(2)掌握内容

构造方法:

Scanner(InputStream source) 构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。

如:Scanner sc = new Scanner(System.in);

方法摘要

sc.nextInt();获取整型数据

sc.nextLine();获取字符串数据

17、继承(重点)

(1)把很多类的相同特征和行为进行抽取,用一个类来描述。让多个类和这个类产生一个关系。

这样的话,多个类就可以省略很多代码。这个关系就是继承。java中用extends关键字表示。

(2)继承的体系结构

A:多个具体的对象,不断的向上抽取共享的内容,最终形成了一个体系。这个体系叫做继承体系。

B:继承体系的学习和使用原则

**学习顶层的内容。因为他是整个体系的共性内容。

**创建子类使用。也就是使用底层的具体对象。

(3)继承的特点:

A:java中只能单继承,没有多继承。

B:java可以有多重(层)继承。

(4)继承的好处:

继承的出现提高了代码的复用性。

继承的出现让类与类之间产生了关系,提供了多态的前提。

(5)子父类中的成员关系

A:成员变量

在子类方法中使用一个变量时:

首先,在方法的局部变量中找这个变量,有则使用。

否则,在本类中找成员变量,有则使用。

否则,在父类中找成员变量,有则使用。

否则,报错。

B:成员方法

用子类对象使用一个方法时。

首先,在子类中找这个方法,有则使用。

否则,在父类中找这个方法,有则使用。

否则,报错。

重写和重载的区别?

重载:在同一类中。方法名相同,参数列表不同。重载可以改变返回类型。

重写:在不同类中(子父类中)。

方法声明相同(返回类型,方法名,参数列表均相同)。

重写需要注意:

**子类方法的访问权限要大于等于父类方法的访问权限。

**静态只能重写静态。但是这种情况一般不会出现。

构造方法

**子类的实例化过程

***子类创建对象时,会先去创建父类的对象。

默认是去调用父类的无参构造方法。

***子类构造方法中,第一行默认是super()

***为什么子类中第一行会默认有super()

因为他继承父类的成员使用,使用前这些成员必须初始化,

而他们是父类的成员,所以,必须通过父类进行初始化。

所以,会先创建一个父类的对象。

**当父类没有无参构造方法时

必须使用this或者super调用其他的构造方法。

(6)this和super的区别

this:代表本类对象的引用。

super:代表父类的存储空间。

18、final关键字(重点)

(1)最终的意思,可以用于修饰类,方法,变量。

(2)final修饰的类不能被继承。

final修饰的方法不能被重写。

final修饰的变量是一个常量。只能被赋值一次。

内部类只能访问被final修饰的局部变量。

19、抽象类(重点)

(1)多个类有相同的方法声明,但是方法体不一样。这个时候,我们考虑把方法声明进行抽取。

让子类继承后,自己去实现方法体。没有方法体的方法,我们需要用抽象标志下。

抽象的关键字是:abstract。

(2)抽象类:

该方法称为抽象方法,包含抽象方法的类就是抽象类。

(3)抽象类的特点:

A:抽象类和抽象方法都要用abstract进行修饰

B:抽象类不能被实例化

C:抽象类中不一定有抽象方法,但是,有抽象方法的类一定是抽象类。

(4)抽象类中数据的特点

A:成员变量

抽象类中可以有变量,也可以有常量。

B:成员方法

抽象类中可以有抽象方法,也可以有非抽象方法。

C:构造方法

抽象类是一个类,所以,它有构造方法。

虽然本身不能实例化。但是可以给子类实例化使用。

(5)抽象类中的问题

A:抽象类中是否有构造方法?能不能被实例化?如果不能,为什么有构造方法?

抽象类有构造方法。

抽象类不能被实例化。

抽象类中的构造方法供子类实例化调用。

B:抽象关键字abstract不可以和哪些关键字共存?

private:

私有内容子类继承不到,所以,不能重写。

但是abstract修饰的方法,要求被重写。两者冲突。

final

final修饰的方法不能被重写。

而abstract修饰的方法,要求被重写。两者冲突。

static

假如一个抽象方法能通过static修饰,那么这个方法,就可以直接通过类名调用。

而抽象方法是没有方法体的,这样的调用无意义。所以,不能用static修饰。

C:抽象类中可不可以没有抽象方法?如果可以,这样的类有什么用吗?

抽象类可以没有抽象方法。

抽象类中没有抽象方法的作用,只是为了不让别的类建立该抽象类对象。这个在awt中有体现。

20、接口interface

(1)当一个类中的方法都是抽象的时候,java提供了另一种表示方式,叫接口。

用interface关键字表示。类与接口关系用implements表示。

(2)接口的成员特点

A:成员变量

是常量,默认修饰 public static final

B:成员方法

都是抽象的,默认修饰 public abstract

(3)关系

A:类与类的关系

是继承关系。类与类只能单继承,可以多重继承。

B:类和接口的关系

是实现关系。类可以多实现接口。

类在继承一个类的同时,可以实现多个接口。

C:接口和接口的关系

是继承关系。接口可以多继承接口。

(4)接口的特点

A:是对外暴露的规则

B:是功能的扩展

C:接口的出现降低耦合性。

耦合(类与类之间的关系)

内聚(类完成功能的能力)

编程规范:低耦合,高内聚。

D:接口可以多实现。如:CPU和主板、笔记本的USB插口、插座

(5)接口和抽象类的区别

A:抽象类只能被单继承

接口可以多实现,接口的出现避免了多继承的局限性。

B:抽象类中的数据特点:

成员变量:可以是变量,也可以是常量

成员方法:可以是抽象方法,也可以是非抽象方法

构造方法:有构造方法

接口中的数据特点:

成员变量:是常量。默认修饰 public static final

成员方法:都是抽象方法。都有默认修饰 public abstract

构造方法:没有构造方法

C:抽象类中定义的是继承体系中的共性功能。

接口中定义的是继承体系中的扩展功能。

D:抽象类被继承是"is a"关系:xx是yy的一种

接口被实现是"like a"关系:xx像yy的一种

21、多态:

(1)同一个对象,在程序不同时刻的多种运行状态。举例:动物,狗是狗,狗是动物。水(气态,液态,固态)

(2)多态前提

A:存在着继承或者实现关系

B:有方法的重写

C:父类(接口)引用指向子类(实现)对象

(3)多态的好处和弊端:

好处:多态的存在提高了程序的扩展性和后期可维护性

弊端:虽然可以预先使用,但是只能访问父类中已有的功能,运行的是后期子类的功能内容。

不能预先使用子类中定义的特有功能。

(4)多态中对象调用成员的特点

Fu f = new Zi();

A:成员变量

编译看左边,运行看左边

B:成员方法

编译看左边,运行看右边

C:静态方法

编译看左边,运行看左边

(5)多态的思想

指挥同一批对象做事情。举例:带兵打仗,下课等。

22、instanceof关键字

A:用于判断某个对象是否是某种类型。

B:格式

对象名 instanceof 子类(实现)名

#java读书笔记#面向对象2相关推荐

  1. head first java读书笔记

    head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍J ...

  2. [Java入门笔记] 面向对象编程基础(二):方法详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...

  3. Java读书笔记(4)-多线程(二)

    Java读书笔记(4)-多线程(二) 2016-1-2 线程通信 传统的线程通信 Object类提供了wait(),notify()和notifyAll三个方法 适用情况:synchronized修饰 ...

  4. think in java 读书笔记 2 —— 套接字

    目录 think in java 读书笔记 1 --移位 think in java 读书笔记 2 -- 套接字 think in java 读书笔记 3 -- 数据报 概要 1. 套接字基本知识 2 ...

  5. Java读书笔记(8)-单例模式

    Java读书笔记(8)-单例模式 今天在阅读<Effective Java 2>第3条时,获知一种使用枚举enum实现单例模式的新方法,然而书上并没有就此展开深入说明,于是上网查阅了一些资 ...

  6. Effective Java读书笔记(二)

    Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...

  7. Effective Java 读书笔记(七):通用程序设计

    Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...

  8. Effective Java读书笔记完结啦

    Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...

  9. Effective Java 读书笔记(一)

    前言: 开个新的坑位,<effective java>的读书笔记,之后有时间会陆陆续续的更新,读这本书真的感触满多,item01和item02就已经在公司的项目代码中看到过了.今天这篇主要 ...

最新文章

  1. Ehcache(06)监听器
  2. 经典C语言程序100例之八八
  3. Elasticsearch之kopf插件安装之后的浏览详解
  4. 组合数(Lucas定理) + 快速幂 --- HDU 5226 Tom and matrix
  5. javascript面向对象属性函数用法(defineProperty与getOwnPropertyDescriptor)
  6. HDU 4487 Maximum Random Walk
  7. 【数据挖掘】数据挖掘和数据分析基础
  8. maven多模块项目,多web合并项目使用心得
  9. 微信小程序---开通开发环境的理解
  10. (转)C++类所占内存大小计算
  11. 音乐彩灯控制器C语言程序,基于单片机的LED彩灯控制器
  12. QT 自定义日历插件
  13. 总结:K8S之pod配置
  14. Windows 10如何将网络图标放在桌面
  15. Linux超级强大的十六进制dump工具:XXD命令,我教你应该如何使用!
  16. 计算机电源功率如何看,小白科普之三分钟教你如何确定电源功率
  17. mcnpf5输出结果_MCNP计数心得 -
  18. Linux 主机巡检脚本(包含 k8s)
  19. 天蓝-skyblue迁移到博客园
  20. Unity之UGUI详解

热门文章

  1. HBuilder打包流程
  2. UI 意见征集 - 博客文章、个人主页
  3. 02 IPy模块的应用
  4. 当前主要有哪些人在用五笔输入法?
  5. kubectl top查看资源占用
  6. js中clientX,offsetX,pageX,screenX图示
  7. BusyBox init及inittab文件详解
  8. laravel 删除阿里云oss图片
  9. WordPress函数:query_posts(查询文章)
  10. 图的深度优先遍历和宽度优先遍历C语言,图的广度、深度优先遍历 C语言