项目6 通用堆栈.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
单元二:面向对象程序设计 任务二:借书卡程序设计.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
第4章 类与对象 本章导读 0. 面向对象编程 1. 类声明和类体 2. 类体的构成 3. 构造方法与对象的创建 4. 对象的引用与实体
面向对象的程序设计(一).
算法设计与分析 Algorithm Design and Analysis
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第二章 基本程式設計.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
第二章 JAVA语言基础.
類別與物件 Class & Object.
Ch07 介面與多重繼承 物件導向程式設計(II).
第5章 进一步讨论对象和类.
Ch08 巢狀類別 物件導向程式設計(II).
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第四章 在 C# 中实现 OOP 概念.
常用工具类.
Java基础 JavaSE异常.
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
Classes Lecturer: 曾學文.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
本單元介紹何謂變數,及說明變數的宣告方式。
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
Java程序设计 第9章 继承和多态.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
C#程序设计基础 第二章 数据类型.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
Java變數 2014/6/24.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
第二章 类型、对象、运算符和表达式.
Review 1~3.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
辅导课程十二.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
變數、資料型態、運算子.
第2章 Java语言基础.
判斷(選擇性敘述) if if else else if 條件運算子.
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Summary
Presentation transcript:

项目6 通用堆栈

1 项目介绍 本项目使用泛型定义一个通用堆栈,使其能保存任何一种数据类型,包括类库中所有的类以及自定义的类。图6-1是保存String型和Double型数据的运行结果:

2 泛型 【例6-1】定义一个泛型类,对String对象执行操作。 class Box<T> { private T t; void set(T t) this.t = t; } T get() return t; public class Example6_1 public static void main(String[] args) Box<String> b = new Box<String>( ); b.set("Hello!"); String s = b.get(); System.out.println(s); //b.set(new Integer(22));

2 泛型 什么版本的泛型类的变量就只能引用什么版本的泛型类的对象,例如,下列代码将出现编译错误: Box<String> s = new Box<Date>( ); 创建String版Box的对象以后,就可以调用Box中定义的方法,例如: b.set("Hello!");

3 包装类及自动包装和自动解包 Java为每种基本数据类型都定义了包装类,分别是:Double、Float、Long、Integer、Short、Byte、Character和Boolean,这些类都在java.lang中 数值类型的包装类都定义了以数值为参数以及以字符串为参数的构造方法,例如: Double(double value) //以double值为参数创建Double对象 Double(String s) //以String为参数创建Double对象 Integer(int value) //以int值为参数创建Integer对象 Integer(String s) //以String为参数创建Integer对象

3 包装类及自动包装和自动解包 数值类型的包装类都继承了抽象类Number,并继承了下列Number定义的方法: byte byteValue( ) double doubleValue( ) float floatValue( ) int intValue( ) long longValue( ) short shortValue( )

3 包装类及自动包装和自动解包 【例6-2】用int值创建Integer对象,返回这个对象的int、double、String型的值,用字符串创建Double对象,返回这个对象的int、double、String型的值。 public class Example6_2 { public static void main(String[] args) //把int值转化为String和double型 Integer i = new Integer(3); System.out.println(i.intValue()); // 获取int型的值 System.out.println(i.doubleValue()); // 获取double型的值 String s = i.toString(); // 获取String型的值 System.out.println(s); //把String型的浮点数转化为int型和double型 Double d = new Double("5.5"); System.out.println(d.intValue()); System.out.println(d.doubleValue()); System.out.println(d.toString()); }

3 包装类及自动包装和自动解包 从J2SE5开始,Java添加了自动包装和自动解包功能。例如,下列代码通过自动包装创建值为10的Integer对象: Integer i = 10; 代码中并没有使用关键字new调用构造方法,创建对象的过程是自动完成的。同样道理,要自动解包,只需要将该对象的引用赋给int型变量,例如: int ii = i; // i是Integer变量,引用了Integer对象

4 约束类型变量 如果对通用堆栈做出限制,要求其只能操作整数和浮点数,即入栈和出栈对象只能是Double、Float、Long、Integer、Short或Byte的对象,就必须重新定义堆栈类。 上述数值类型包装类都是Number类的子类。本任务将使用约束类型变量定义一个堆栈类,使得堆栈只能操作Number子类的对象。

4 约束类型变量 声明约束类型变量,是在类型变量的后面使用extends指定其超类,以这个超类作为类型变量的上界约束,传送给类型变量的类只能是这个类或它的子类。