欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

因为只有 Salt 和 劳务派遣管理系统 Pepper 继承 Seasoning

点击: 次  来源:宝鼎软件 时间:2017-06-04

原文出处: 泥瓦匠BYSocket

一、现代的玩具 – Java 可以做许多事

一个 Q 与 A 的对话,展示了 Java 那些小事。

Q : 5 是整数吗? A : 是。
Q : -23 是数吗? A : 是,但负数利用场景很少。
Q : 5.32 是整数吗? A : 不是,我们不消这种数值范例暗示 5.32 。
Q : 5 属于什么数值范例? A : int (整型)。
讲明: int 是根基范例,int 代表整数。
Q : 快,想出另一个整数! A : 19?
Q : 那 true 属于什么数值范例? A : boolean (布尔型)。
Q : false 属于什么数值范例? A : boolean。
Q : 想得出其他布尔值吗? A : 没有,布尔值只有 true 和 false。
Q : int 是什么? A : 一种范例。
Q : boolean 是什么? A : 另一种范例。
Q : 什么是范例? A : 范例是一个相关值荟萃的名称。
Q : 能举例表明下范例吗? A : 利用范例就像利用一种荟萃一样。好比利用 boolean 可以暗示逻辑值:是与非
Q : 能建设新的范例吗? A : 我们还不知道怎么建设。
Q : 画出下面类的根基干系。

abstract class Seasoning {}

class Salt extends Seasoning {}

class Pepper extends Seasoning {}

A : 这样画?

因为只有 Salt 和 劳务调派打点系统  Pepper 担任 Seasoning图 1.1 Seasoning 类干系图

Q : 是的。Seasoning 是数据范例,Salt 和 Pepper 是 Seasoning 的详细范例。 A : 好的。三个都是新范例吗?
Q : 是的。那么 new Salt() 是一个 Seasoning 吗? A : 是的。 new Salt() new 要害字暗示建设了 Salt 的一个实例,每个 Salt 的实例也是 Seasoning。
Q : new Pepper() 也是吗? A : 是的。它也是一个 Seasoning。 new Pepper() new 要害字暗示建设了 Pepper 的一个实例,每个 Pepper 的实例也是 Seasoning。
Q : 什么是 abstract , class 和 extends 要害字? A : 简朴地说:
abstract class 暗示抽象数据范例
class 暗示详细范例
extends 毗连了详细范例到数据范例
Q : 尚有其他的 Seasoning 详细范例吗? A : 没有,因为只有 Salt 和 Pepper 担任 Seasoning。
Q : 正确。只有 Salt 和 Pepper 是 Seasoning 的详细范例。我们见过雷同 Seasoning 数据范例吗? A : 没有。可是 boolean 范例有两个值:true 和 false。
讲明:值与详细范例是差异的。
Q : 再界说一个 Seasoning 详细范例:
class Thyme extends Seasoning {}
A : 再来一个:
class Sage extends Seasoning {}
Q : 4 个 Seasoning 详细范例了。 A : 是的。
Q : 什么是笛卡尔点? A : 是一对数字。
Q : 曼哈顿所在位于那边? A : 两个都市街道的十字路口。
Q : 看代码,CartesianPt 类和 ManhattanPt 类有啥差异于 Salt 类和 Pepper 类

abstract class Point {}
class CartesianPt extends Point {
    int x;
    int y;
    CartesianPt(int _x, int _y){
        x = _x;
        y = _y;
    }
}
class ManhattanPt extends Point {
    int x;
    int y;
    ManhattanPt(int _x, int _y){
        x = _x;
        y = _y;
    }

}

A : 两个类中 {} 包括了三个元素。x 和 y 是暗示点的坐标,可是结构函数内里包括什么呢?(讲明:结构函数是同类名的函数)
Q : CartesianPt 和 ManhattanPt 各自的结构函数内里包括各自的字段值。 A : 那怎么利用结构函数呢?
Q : new 要害字浸染于结构函数,会建设一个新的该范例实例。 A : 这样子呀。
Q : 好比下面的代码:
new CartesianPt(2,3);
利用 CartesianPt 的结构函数,建设一个 CartesianPt 实例。 A : 这样建设的 CartesianPt 实例 ,其字段 x 值为 2,y 值为 3。
class CartesianPt extends Point {
尚有 extends 要害字暗示建设的 CartesianPt 也是 Point。
Q : 对。那么下面代码是建设一个 ManhattanPt 实例吗?
new ManhattanPt(2,3);
A : 是,它也有 x 值为 2,y 值为 3。
Q : 结构函数就这样? A : 根基是了,但在没有界说过结构函数的代码里,以前用过结构函数。这是怎么实现的呢?
Q : 好比 Salt 和 Pepper 没有任何字段,可是它们有个默认结构函数。 A : 这是正确利用默认结构函数的方法吗?
Q : 是的。默认结构函数没有包括字段值。利用 new 要害字建设实例时,软件开发,建设的实例没有字段值。 A : 好,下面这段代码呢?
new Point()
Q : Point 是一个抽象类,图纸加密,它是不完整的类,所以 new 要害字不能建设 Point 实例。 A : 这就说得通了,继承。
Q : 以下界说的类是另一种抽象数据范例和它的详细数据范例吗?

abstract class Num {}
class Zero extends Num {}
class OneMoreThan extends Num {
    Num predecessor;
    OneMoreThan (Num p) {
        predecessor = p;
    }
}