java课件 第六章 常用系统类与接口(共十套)
Java语言程序设计实用教程第6章 接口与内部类
抽象类CShape派生的子类CCricle
class CCircle extends CShape CShape { double radius; //数据成员 public CCircle(double r) //构造函数 { radius=r; } 在此处明确定义 public void area() area()的处理方法 { System.out.print(“Color=“+color+”,”); System.out.print(“area=“+3.14*radius*radius); } }
6.1 接口-接口
接口的使用
接口(interface)是Java所提供的另一种重要功能,它 的结构和抽象类非常相似。接口本身也具有数据成 员与抽象方法,但它与抽象类有下列两点不同
接口的数据成员必须初始化。 接口里的方法必须全部都声明成abstract(默认),也就是说, 接口不能像抽象类一样保有一般的方法,而必须全部是 “抽象方法
抽象类CShape派生的子类CRectangle class CRectangle extends CShape { int width,height; public CRectangle (int w,int h) { width=w; height=h;பைடு நூலகம்} public void area() { System.out.print(“color=“+color+”, “); System.out.print(“area=“+width*height); } }
特点: 1、接口的访问控制修饰符只有public。 2、接口类型也可以继承,并且可以多重继承,使用extends。但它与类中 的extends不同,它可以有多个父接口,各父接口间用逗号隔开 3、java的类层次结构中有一个顶级类Ojbect ,接口没有 4、接口体内只能声明常量字段和抽象方法:接口中的所有常量必须是 public static final,方法必须是public abstract,这是系统默认的,不管你 在定义接口时,写不写修饰符都是一样的
java中的接口的课件
Interfaces and Classes (接口与类) 接口与类)
在Java语言中,接口是一种纯粹的设计组件。 一个软件设计的好坏,很大程度上取决于它的 整体架构,而这个整体架构其实就是对整个宏 观商业业务的抽象框架,当代表业务逻辑的高 层抽象层结构合理时,底层的具体实现需要考 虑的就仅仅是一些算法和一些具体的业务实现 了。当需要再开发另一个相近的项目时,以前 的抽象层说不定还可以再次利用,OOD复用的 重点其实应该是抽象层的复用,而不仅仅是具 体的某一个代码块的复用。
Assignments (思考作业) 思考作业)
interface X{ int val=100; } interface Y{ String val=“a string”; }
interface Z extends X,Y{ …… } //合法吗???
已知接口X、Y如上所示,能否声明接口Z同 时继承接口X和Y,如果不能,请说明原因
Implementing Interfaces(使用接口) Interfaces(使用接口 使用接口)
interface eatable { void eat(); } interface sleepable { void sleep(); } class dog implements eatable,sleepable { public void eat(){ … } public void sleep(){ … } } class cat implements eatable,sleepable { public void eat(){ … } public void sleep(){ … } }
Interfaces and Classes (接口与类) 接口与类)
JavaOOP第六章Java接口(修改版)
JavaOOP第六章Java接口(修改版)Java OOP第六章Java接口6.11、接口是一套规范。
(只要是满足这个规范的设备,就可以将它们组装到一起,从而实现设备工程)2、接口优点:利于代码的扩展和维护。
3、语法:[修饰符] interface 接口名extends 父接口1,父接口2,……{//常量定义//方法定义}语法:class 类名父类名implement 接口1,接口2,…{//类成员}(1)修饰符为public,则该接口整个项目可见;修饰符省略,该接口当前包可见。
(2)接口量:接口中可定义常量,不可定义变量。
(3)接口属性都会自动用public static final修饰,即接口属性都是全局静态常量,接口常量必须在定义是指定初始值。
public static final int PI = 3.14;int PI = 3.14; //在接口中,这两个定义语句效果相同int PI; //错误!在接口中必须指定初始值,在类中会有默认值(4)接口方法:接口中所有方法都是抽象方法。
接口中方法都会自动public abstract修饰,即接口中只有全局抽象方法。
(5)和抽象类一样,接口不能实例化,接口中不能有构造方法。
(6)接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
(7)接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。
4、接口与继承:(1)一个类只能有一个直接父类,但可以通过implements实现多个接口。
(2)当类在继承父类的同时又实现了多个接口时,extends关键字必须位于implements关键字之前。
5、示例1:(1)接口类:package cn.bdqn.ysm;public class Usb {/*** USB接口* @author ShiMing Yu**/public interface UsbInterface{/***USB接口提供服务*/void service();}}(2)U盘类:package cn.bdqn.ysm;import /doc/d615872055.html,bInterface;//(在实际操作中需要如上import语句与原书有不同)/*** U盘* @author Administrator**/public class UDisk implements UsbInterface {public void service(){System.out.println("连接USB口,开始传输数据。
java接口的基本概念.ppt
接口图形表示
接口的图形可以按照类图的形式表示,也可 以使用一个“○”表示
A + AUTHOR : String + print () : void + getInfo () : String = "李兴华"
A
实现接口
与抽象类一样,接口要使用也必须通过子类, 子类通过implements关键字实现接口。 实现格式:
接口的继承
一个接口不能继承一个抽象类,但是却可以 通过extends关键字同时继承多个接口,实 现接口的多继承。 格式:
第6章:面向对象(高级) —— 接口的基本概念
软件学院教学研发部
本章目标
掌握接口的定义格式及使用 掌握接口与抽象类的关系
接口
接口是java中最重要的概念,接口可以理解 为一种特殊的类,里面全部是由全局常量和 公共的抽象方法所组成。
接口的定义格式
interface 接口名称{ 全局常量 ; 抽象方法 ; }
接口的实现
以上的程序中,一个子类同时实现了两个接 口,这样在子类中就必须同时覆写完两个接 口中的全部抽象方法
A + AUTHOR : String + print () : void + getInfo () : String = "李兴华" B
+ say () : void
X
+ <<Implement>> say () : void + <<Implement>> getInfo () : String + <<Implement>> print () : void
Java编程基础及应用(第2版)教学课件第6章 类的继承与多态性
6.1.1 引言
下图为一个继承的实例:
6.1.2 继承的概念
• 继承是从巳有的类中派生出新的类,新的类拥有已有 类的数据属性 和行为,并能扩展新的数据属性和行为。换句话说,继承就是在已经 存在的类的基础上再扩展新的类。
• 已经存在的类称为父类、超类或者基类。新产生的类称为子类或派生 类。子类拥有父类的所有特性。当然,也可以在子类中添加新的方法 和成员变量,这些新添加 的方法和成员支量仅仅属于子类。
• 继承分为单继承和多继承。单继承是指一个子类最多只能有一个父类 。多继承是指一个子类可以有两人以上的父类。由于多继承会带来二 义性,在实际应用中应尽 量使用单继承。
6.1.3 继承的实现
■关键字(extends)
继承通过关键字extends实现。如果使用默认的extends子句,则该
类为ng.Object的子类。子类可以继承父类中访问权限为public、
■继承的特点: (1) 提供多继承机制。从理论上说,一个类可以是多个一般类的子类,它
可以从密个一般类中继承属性与方法,这便是多继承。Java出于安全性和 可靠性的考虑,仅支持单继承,而使用接口机制来实现多继承。
(2) 继承通过增强一致性来减少模块间的接口和界面, 大大增加了程序 的易维护性。
6.1.5 继承的特点与优点
Child c = new Child(); System.out.println(c.add(4,"3")); }
6.2.2 方法覆盖和重载
■方法重载:是指在同一个类中,定义多个名称相同,但参数个数或 类型不同的方法,程序中的对象根据参数的个数或者类型,调 用相对应的方法。
■例:StudentOverload类定义构造函数和get()方法,并重载了这两个方 法,sol、so2对象根据这两个方法的参数个数或类型调用相应的 方法。
Java程序设计教程之接口介绍课件
实现接口的类必须实现接口中的所 有方法
实现接口的类可以实现多个接口, 但必须实现所有接口中的所有方法
接口的多态性
接口的多态性是指一个接口可以有多个实现类,每 个实现类可以提供不同的实现方式。
多态性使得程序设计更加灵活,可以方便地替换不 同的实现类,提高代码的可维护性和可扩展性。
接口的多态性可以通过继承和实现来实现,一个类 可以实现多个接口,从而实现不同的功能。
性能测试:通过接口进行性能测试,评估程 序的性能和响应时间
接口的扩展
接口的继承
接口继承是指一个接口继承 另一个接口,从而获得被继 承接口的所有方法和属性。
接口继承可以实现代码重用, 减少重复代码。
接口继承可以提供更灵活的 编程方式,便于扩展和维护。
接口继承可以实现多态,提 高代码的可维护性和可扩展 性。
接口的嵌套
01 02 03 04
01
接口可以嵌套在另一个接口中, 形成多层次的接口结构。
02
嵌套接口可以继承父接口中的方 法,并添加新的方法。
03
嵌套接口可以提高代码的可读性和 可维护性,便于模块化设计和开发。
04
嵌套接口可以更好地实现代码重 用和功能扩展。
接口的默认方法
默认方法:在接口中定义的方法,不需要实现类实 现
接口的作用
降低耦合度: 接口可以降 低类之间的 耦合度,使 得类之间的 依赖关系更 加松散。
提高代码重 用性:接口 可以提供一 种通用的抽 象,使得实 现该接口的 类可以重用 相同的代码。
便于维护和 扩展:接口 可以方便地 添加新的实 现类,而不 会影响到其 他类。
提高代码的 可读性和可 维护性:接 口可以清晰 地定义类的 行为,使得 代码更加易 于理解和维 护。
Java2实用教程第4版第6章接口与实现精品PPT课件
1.接口声明 接口通过使用关键字interface来声明,格式:
interface 接口的名字
2.接口体
接口体中包含常量定义和方法定义两部分。
第 1 页1 页1 页1 页1 页1 页4
§6.2 实现接口
一个类通过使用关键字implements声明自己实现一个或多个 接口。
class A implements Printable,Addable
第 1 页1 页1 页1 页1 页1 页13
§6.10 应用举例
设计一个广告牌,希望所设计的广告牌可以展示许多公司的 广告词。
1.问题的分析 2.设计接口 3.设计广告牌类
例子6中除了主类(Example6_6) 外,还有Avertisemen接口及实现该 接 口 的 WhiteCloudCorp( 白 云 公 司 ) 和BlackLandCorp(黑土公司),以 及面向接口的AdvertisementBoard类 (广告牌),程序运行效果如图 6.12。
如果一个类实现了某个接口,那么这个类必须重写该接口的
所有方法。
Java提供的接口都在相应的包中,通过import语句不仅可 以引入包中的类,也可以引入包中的接口,例如:
import java.io.*;
不仅引入了java.io包中的类,也同时引入了该包中的接口。
第 1 页1 页1 页1 页1 页1 页5
第 1 页1 页1 页1 页1 页1 页3
§6.1 接口
为了克服Java单继承的缺点,Java使用了接口, 一个类可以实现多个接口。
使用关键字interface来定义一个接口。接口的 定义和类的定义很相似,分为接口的声明和接口体。
interface Printable { final int MAX=100; void add(); float sum(float x ,float y);
java全套ppt课件
Spring Boot是一个用于构建独立、 生产级别的Spring应用程序的框架。 它简化了Spring应用程序的配置和部 署,使得开发人员能够快速构建 Spring应用程序。
Spring Boot具有许多特性,包括自 动配置、嵌入式服务器支持、安全管 理等。这些特性使得开发人员能够更 加专注于业务逻辑的实现,而不是繁 琐的配置工作。
3.1 Java在大数据处理中的优势
01
02
03
高效性
Java语言具有高效的性能 ,能够快速处理大规模数 据。
稳定性
Java语言具有稳定的内存 管理和垃圾回收机制,能 够保证大数据处理的稳定 性。
跨平台性
Java语言具有跨平台性, 可以在不同的操作系统上 运行,方便大数据处理的 部署和实施。
3.2 Java在大数据处理中的主要技术
Java Web开发实 践
在实践中,Java Web开发通常 涉及到数据库操作、用户认证 和授权、数据传输和解析等方 面的技术。开发人员需要掌握 这些技术,以便能够高效地构 建Web应用程序。
Spring Boot介绍和使用
Spring Boot简介
Spring Boot特性
Spring Boot使用实践
Cordova/PhoneGap是一个移动应 用开发框架,允许使用HTML、CSS 和JavaScript进行跨平台移动应用开 发。虽然Cordova/PhoneGap的主 流语言是JavaScript,但可以通过插 件机制调用Java代码,从而实现Java 在iOS开发中的应用。
06
3 Java在大数据处理中的 应用
Java全套PPT课件
目录 CONTENT
• Java基础 • Java进阶 • Java高级特性 • Java应用实践 • 2 Java在移动开发中的应用 • 3 Java在大数据处理中的应用
java第六章
第六章 接口和包
【例】 interface computable{ final int MAXSIZE = 100; void speak(String s); int f(int x); float g(float x,float y); } abstract class InterfaceDemo implements computable{ // 方法未完全实现,所以用abstract修饰 public int f(int x){ int sum = 0; for(int i=1;i<=x;i++){ sum = sum + i; } return sum; } }
遵循标识符的 命名规则
多继承
第六章 接口和包
第一节接口
三、常量和空方法的声明 {[修饰符] 类型 常量名=value; [修饰符] 返回值类型 方法名(参数列表); }//接口体
只有public 、 static和 final,不用 显示的标识, 都是隐含,
隐含
必须赋初始值
public 和 abstract 第六章 接口和包
第六章 接口和包
第二节包
一、包的定义 package 包名;
源文件的第一 条非空格、非 注释语句,指 明该源文件定 义的类所在的 包。
【例】定义一个名为constant的接口,有EXCELLENT、 GOOD、PASS、FAIL四个常量,初始值分别为5、4、3、2
interface constant { int EXCELLENT=5; int GOOD=4; int PASS=3; int FAIL=2; }
【例】定义一个sortable的接口,方法名为compare, 返回值为整型 ,参数类型为Sortable,参数名S
Java程序设计(高校系列教材课件).ppt
1.21
高等学校计算机应用人才培养系列教材
常量、关键字和标识符
常量
常量代表某一特定类型的具体值,常量有数字常量、 布尔常量、字符常量和字符串常量之分。
数字常量包括两种:整型常量和浮点型常量。常用的 整型常量都是十进制的。整型常量还有另外两种进制 ,八进制和十六进制。在Java中,八进制的值通过在 它的前面加一个前导0来表示,而通过前导的0x或0X来 表示一个十六进制的值。
) 分布式(Distributed)
高等学校计算机应用人才培养系列教材
1.7
Java和Internet
在使用Java时,用户将从Internet下载Java字节码并在自 己的计算机上运行。在Web网页中运行的Java程序叫做 Applet。要使用Applet,需要有支持Java的浏览器,它可 以解释字节码。
True或false
1.19
高等学校计算机应用人才培养系列教材
Java的数据类型和变量
变量
变量是Java的一个基本存储单元。在Java中,在使用变量之前需要先 声明变量。变量声明通常包括三部分:变量类型、变量名、初始值, 其中变量的初始值是可选的。
以下是几个各种变量声明的例子,有一些包括了变量的初始化。
char
boolean
所占用字节数 1 2 4 8 4 8
2
1
范围 -128到127 -32,768到32, 767 -2,147,483,648到2,147,483,647 -9,223,372,036,854,775,808到 -9,223,372,036,854,775,807 大约 ±3.4+38 大约 ±1.7E+308
1.10
高等学校计算机应用人才培养系列教材
JAVA大学教学课件第六章对象和接口
6.1 什么类-5
成员变量和局部变量: (1)成员变量和局部变量的类型可以是任何一种数据类型。 (2)成员变量在整个类内有效,局部变量只在定义它的方法内 有效。
class A{int x; int f(){int a; a = x;} int g(){int y; y=a;} } (3)成员变量又分为实例成员变量和类p1=new Point(); (3)p1是引用,使用new之前,并未对象分配空间。
12
x
0x1234
p1
24
y
6.2 什么对象-2
类中的访问权限:
访问指示 类
Private
X
Protected X
Public
X
Package X
子类
包
X
X
X
X
X
6.5 包-3
8、常用JavaAPI包:
java.applet java.awt java.awt.event ng java.io java.util
所有 X
6.3 类的继承-1
创建子类: 格式如下:class Students extends People{。。。}
(1)子类自然继承父类中不是private的成员。如果一个类没有 使用extends关键字,系统默认是Object的子类。Object 是包 ng中的类。 (2)成员变量的隐藏和方法的重写。
Java全部课件(精选)
指软件故障的实例,是程序在运行过程中出现的问题或错误。
异常的分类和处理方式
异常的分类
Java中的异常主要分为两大类,检查型异常 (Checked Exceptions)和非检查型异常 (Unchecked Exceptions)。
处理方式
有两种处理方式,即捕获处理(try-catch语 句块)和声明抛出(throws语句)。
了解TCP/IP协议,包括IP地址、协议端口和数据报文
Socket编程
要点一
Socket概述
了解Socket的概念和作用,以及 Socket编程的基本流程
要点二
Socket编程示例
通过示例程序展示Socket编程的具体 实现方法,包括服务器端和客户端代 码
要点三
Socket进阶
深入探讨Socket的高级应用,包括连 接池、线程池和NIO等
Java EE和Spring等框架可 以帮助企业级开发者构建 大规模、高并发的企业级 应用。
Java的AWT和Swing等 GUI工具包可以满足游戏客 户端和服务器端的开发需 求。
Android系统使用Java作为 主要的编程语言,开发者 可以使用Java或Kotlin等语 言进行应用开发。
Apache Hadoop和Spark 等大数据处理框架主要使 用Java作为开发语言,可 以处理大规模数据集并进 行高效计算。
Java提供了垃圾回收机 制和严格的安全检查机 制,可以有效避免内存 泄漏和类型转换等安全 问题。
Java内置对多线程编程 的支持,可以实现高并 发的处理和高效的并行 计算。
Java的应用领域
01
Web开发
02
企业级应用
03
游戏开发
Java语言程序设计第06章
1.关于访问保护
类和包都是封装和容纳名称空间和变量及方法范围的方法.包就 像盛装类和下级包的容器.类就像是数据和代码的容器.类是Java 的最小的抽象单元.因为类和包的相互影响,Java将类成员的可见 度分为四个种类: 相同包中的子类 相同包中的非子类 不同包中的子类 既不在相同包又不在相同子类中的类 三个访问控制符,private,public和protected,提供了多种 方法来产生这些种类所需访问的多个级别,教材P158页表6-1中总结 了它们之间的相互作用.
[Return]
6.1.5 包的导入
包的存在是划分不同类的好的机制,了解为什么所有Java内部的类都存在包 中是很简单的.在未命名的默认包中,不存在核心Java类;所有的标准类都 存储在相同的包中.既然包中的类必须包含它们的包名才能完全有效,为每 个想用的包写一个长的逗点分离的包路径名是枯燥的.因为这点,Java包含 了import语句来引入特定的类甚至是整个包.一旦被引入,类可以被直呼其 名的引用.import语句对于程序员是很方便的,而且在技术上并不需要编写 完整的Java程序.如果你在程序中将要引用若干个类,那么用import 语句将 会节省很多打字时间. 在Java源程序文件中,import语句紧接着package语句(如果package 语句 存在),它存在于任何类定义之前.下面是import声明的一般形式 import pkg1[.pkg2].(classname|*); 这里,pkg1是顶层包名,pkg2是在外部包中的用逗点(.)隔离的下级包名. 除非是文件系统的限制,不存在对于包层次深度的实际限制.最后,要么指 定一个清楚的类名,要么指定一个星号(*),该星号表明Java编译器应该引 入整个包.分析教材P161~162页的例子.
Java简明教程(第二版) 第6章 继承、多态与接口
Java简明教程(第二版)
第6章 继承、多态与接口
第5页
6.1.1 继承
继承是面向对象程序设计的一个重要特点,通过继承可以实现代码 的复用,使得程序的复杂性呈线性增长,而不是随规模呈几何级数 增长。
在面向对象技术中,继承是指存在于面向对象程序中的两个类之间 的一种关系。当一个类自动拥有另一个类的所有属性(变量和方法) 时,就称这两个类之间具有继承关系。被继承的类称为父类,继承 了父类的所有属性的类称为子类。
//定义方法:显示学号
System.out.println("学号:"+stu_id);
}
}
Java简明教程(第二版)
第6章 继承、多态与接口
第11页
大学生类UniversityStudent
class UniversityStudent extends Student{ 子类
//定义UniversityStudent是Student的
Java简明教程(第二版)
第6章 继承、多态与接口
第7页
类的层次
Java中的类具有层次结构,实质上Java的系统类就是一个 类层次,如图6-1所示。Object类定义和实现了Java系统 所需要的众多类的共同行为,它是所有类的父类。Object 是一个根类,所有的类都是由这个类继承、扩充而来的, 该类定义在ng包中。
Java简明教程(第二版)
第6章 继承、多态与接口
第9页
创建子类
通过在类的声明中加入extends子句来创建一个类的子类,其语法 格式如下:
►
class 子类名extends 父类名称{
►
……
►
}
专题:Java语言的接口和抽象类ppt课件
些方法在不同的地方被实现时,可以具有完全不同的行为。
Java接口本身没有任何实现,因为Java接口不涉及具体,而 只描述public行为,所以Java接口比Java抽象类更为抽象化。 一个Java接口的方法只能是抽象的和公开的, Java接口不能 有构造方法。 实现一个共同的Java接口的两个类常常完全不同,但是有一 组相同的方法。一些看上去毫不相干的类,可以因为提供相类 似的服务,从而具有相同的接口。比如说,两个实现Runnable 接口的类除了都有一个public void run()方法之外,可能没有其 他任何的共同点。
接口和类主要区别
接口仅仅描述方法的特征,而不给出方法的实现; 类不仅给出方法的特征,而且给出方法的实现。
接口把方法的特征和方法的实现分割开来。这种分
割,体现在接口常常代表一个角色,它包装与该角色相
关的操作和属性,而实现这个接口的类便是扮演这个角 色的演员。一个角色可以由不同的演员来演,而不同的 演员之间除了扮演同一个角色之外,并不要求有其它的 任何共同之处。
换言之,应当使用Java接口和抽象类而不是具体类进行 变量的类型声明、参量的类型声明、方法的返回类型声明, 以及数据类型的转换等。当然,一个更好的做法是仅仅使用 Java接口,而不要使用抽象Java类来做到上面这些。 在理想的情况下,一个具体Java类应当只实现Java接口 和抽象类中声明过的方法,而不应当给出多余的方法。
可以看出,所谓的接口,实际上就相当于电源插座;而 可插入构件就相当于与这种插座相匹配的电器。正如电器的 可插入性是由统一的电源插座及每个电器都有一个与之匹配 的电源插头造成的一样,可插入构件的关键在于存在一个公 用的接口,以及每个构件都实现了这个接口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
outer: while (true) { 18. String ch=input("选择:1-- 增加, 2---删除, 3- 显示,4--退 出"); 19. int choice=Integer.parseInt(ch); 20. switch (choice) { 21. case 1: group.add(inputStudent());break; 22. case 2: long stno=Long.parseLong(input("请输 入学号:")); 23. for (int k=0;k<group.size();k++ ) { 24. Student x=(Student)group.get(k); 25. if ( x.stno==stno) 26. group.removeElement(x); 27. } 28. break;
1. 2. 3. 4. 5. 6. 7.
8.
import java.util.*; class DealCardDemo { public static void main(String args[]) { int numHands = 4; int cardsPerHand = 12; // 生成一副牌(含52张牌) String[] suit = {"黑桃", "红桃", "方块", "梅花"}; String[] rank = {"A","2","3","4","5","6","7","8","9","10","J","Q","K" };
实现List的常用类
ArrayList:采用可变大小的数组实现List接口,并 提供了访问数组大小的方法。ArrayList对象会随 着元素的增加其容器自动扩大。3种List效率最高 也最常用。 LinkedList:采用链表结构实现List接口,并提供 了在List的开头和结尾进行get、remove和insert 操作,以便实现堆栈、队列或双端队列。 Vector:采用可变体积的数组实现List接口,可通 过索引序号所包含的元素进行访问。
ArrayList类的方法
用get方法从ArrayList读取元素,但要使用 强制类型转换表达式,如 String s=(String) a.get(0);
用set方法修改ArrayList的元素值,如 a.set(1, “WORLD”); 插入一个元素,如 a.add(1,“happy”);
37.
47. 48.
37. 38. 39. 40.
41. 42. 43. 44.
/* 从键盘输入一个学生 */ public static Student inputStudent(){ String name=input("请输入姓名:"); long stno=Long.parseLong(input("请 输入学号:")); String sex=input("请输入性t(name,stno,sex); } }
/* 从键盘输入一个字符串 */ 38. public static String input(String hint) { 39. String x=null; 40. BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 41. System.out.println(hint); 42. try { 43. x=br.readLine(); 44. }catch(IOException e) { } 45. return x; 46. }
向量Vector类
向量所对应的类是类java.util.Vector.它是同 步的,适用于多线程访问。 Vector实现了可扩展的对象数组,使用向量没 有数组的范围限制,可以不断添加元素。 向量变量的声明格式 Vector<向量元素的数据类型> 变量名; 如: Vector<String> v;
6.5 Set接口
Set不能包含重复的元素。 Set 接口定义:
public interface Set extends Collection { // Basic Operations int size(); boolean isEmpty(); boolean contains(Object element); boolean add(Object element); boolean remove(Object element); Iterator iterator(); … }
public class Objectdemo { public static void main(String[] args) { Person p1=new Person("李明"); Person p2=new Person("李明"); Person p3=p1; System.out.println(p1.equals(p2)); System.out.println(p1.equals(p3)); System.out.println(p3.toString()); } }
删除一个元素,如: a.remove(1); //删除索引号为1的元素 清空所有元素,如:a.clear() 将集合转换为数组: a.toArray();
例:实现扑克牌的分发
假设有52张扑克牌(去掉大小王),实现随机 洗牌操作,为参加游戏的人每人生成一手牌, 每手牌的牌数是指定的,并将每人分到的牌按 花色排序后输出。
6.4 List接口
List是有序的集合,元素可以重复。
List接口定义:
public interface List extends Collection { Object get(int index); Object set(int index, Object element); void add(int index, Object element); 按位置存取元素 Object remove(int index); abstract boolean addAll(int index, Collection c); int indexOf(Object o); 查找 int lastIndexOf(Object o); ListIterator listIterator(); 遍历 ListIterator listIterator(int index); List subList(int from,int to) //子List的截取 }
9.
10. 11. 12.
List deck = new ArrayList(); for (int i=0; i<suit.length; i++) for (int j=0; j<rank.length; j++) deck.add(suit[i]+rank[j]);
13.
1. 2.
Collections.shuffle(deck); //随机改变deck中元素的排列次序,即洗牌。 for (int i=0; i<numHands; i++){ //生成一手牌,并对牌按花色排序后输出。 List p=dealCard(deck, cardsPerHand); Collections.sort(p); System.out.println(p); } System.out.println("底牌="+deck); }
17.
17.
18. 19.
20. 21. 22. 23. 24.
case 3: Iterator p=group.iterator(); while (p.hasNext()) System.out.println("= =>"+p.next()); break; case 4: break outer; } } }
1.
1. 2.
3. 4. 5.
public String toString() { return "姓名:"+name+",学号:"+stno+",性 别="+sex; } public static void main(String args[]) {
Vector<Student> group=new Vector<Student>();
第六章 常用系统类和接口
主要内容
Object Math Collection和Collections List Set Map
6.1 Object类
(1) Object类处于Java继承层次中最顶端的 类,它封装了所有类的公共行为。 (2) Object类的equals()方法采用的是==运算 比较,也就是只有两个引用变量指向同一 对象时才相等。 (3) Object类的toString()方法是返回对象的 描述信息,在Object类中该方法返回对象 的类名及对象引用地址。
ArrayList类
ArrayList类在包java.util.*中 一开始ArrayList的大小为零,每次加入一个 值数组大小将增加1,例如:
import java.util.ArrayList; ……… ArrayList a=new ArrayList(); String s1=“hello”; String s2=“world”; a.add(s1); a.add(s2); ………