JAVA编程讲义-12

合集下载

第一章对象入门1.12(java编程思想第四版)

第一章对象入门1.12(java编程思想第四版)
也就是说,假如你正在考察一种特殊的方法,其中包含了大量细节,并推荐了许多步骤和文档,那么仍然很难正确判断自己该在何时停止。时刻提醒自己注意以下几个问题:
(1) 对象是什么?(怎样将自己的项目分割成一系列单独的组件?)
(2) 它们的接口是什么?(需要将什么消息发给每一个对象?)
在确定了对象和它们的接口后,便可着手编写一个程序。出于对多方面原因的考虑,可能还需要比这更多的说明及文档,但要求掌握的资料绝对不能比这还少。
1.12.3 阶段1:要制作什么?
在上一代程序设计中(即“过程化或程序化设计”),这个阶段称为“建立需求分析和系统规格”。当然,那些操作今天已经不再需要了,或者至少改换了形式。大量令人头痛的文档资料已成为历史。但当时的初衷是好的。需求分析的意思是“建立一系列规则,根据它判断任务什么时候完成,以及客户怎样才能满意”。系统规格则表示“这里是一些具体的说明,让你知道程序需要做什么(而不是怎样做)才能满足要求”。需求分析实际就是你和客户之间的一份合约(即使客户就在本公司内部工作,或者是其他对象及系统)。系统规格是对所面临问题的最高级别的一种揭示,我们依据它判断任务是否完成,以及需要花多长的时间。由于这些都需要取得参与者的一致同意,所以我建议尽可能地简化它们——最好采用列表和基本图表的形式——以节省时间。可能还会面临另一些限制,需要把它们扩充成为更大的文档。
1.12.4 阶段2:如何构建?
在这一阶段,必须拿出一套设计方案,并解释其中包含的各类对象在外观上是什么样子,以及相互间是如何沟通的。此时可考虑采用一种特殊的图表工具:“统一建模语言”(UML)。请到去下载一份UML规格书。作为第1阶段中的描述工具,UML也是很有帮助的。此外,还可用它在第2阶段中处理一些图表(如流程图)。当然并非一定要使用UML,但它对你会很有帮助,特别是在希望描绘一张详尽的图表,让许多人在一起研究的时候。除UML外,还可选择对对象以及它们的接口进行文字化描述(就象我在《Thinking in C++》里说的那样,但这种方法非常原始,发挥的作用亦较有限。

Java游戏编程原理与实践教程课件 第12章--陈锐 夏敏捷主编

Java游戏编程原理与实践教程课件 第12章--陈锐 夏敏捷主编

12.2.3 俄罗斯方块游戏运行流程 俄罗斯游戏就是用一个线程或者定时器控制下产 生重绘事件,用户键盘输入改变游戏状态。在每 隔一定的时间就重画当前下落方块和map存储的 固定方块,从而看到动态游戏效果。 俄罗斯方块下落过程中可能遇到的种种情况,比 如说是否需要消行,是否需要终止下落并且产生 新的形状的方块等等。具体的判断流程如下: 首先判断是否可以继续下落,可以下落则y++即 可。如果不能够继续下落,则当前形状的方块添 加到面板二维数组map中,界面产生新的形状的 方块且判断是否需要消行。最后请求重新绘制屏 幕。
Java游戏编程原理与实践教程
主编 陈锐 夏敏捷
人民邮电出版社
第12章 俄罗斯方块游戏
游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转,如果某一 行被方块充满了,那就将些行消掉;而当窗口中无法再容纳下落的方块 时,就宣告游戏的结束。 可见俄罗斯方块的需求如下: (1)由移动的方块和不能动的固定方块组成; (2)一行排满消除; (3)能产生多种方块; (4)玩家可以看到游戏的积分和下一方块的形状。 (5)下一方块可以逆时针旋转。
每种形状逆时针转动就会形成一个新的形状,为了程序处理简单,可以把这些基 本形状的变形体都使用二维数组定义好,这样就不需要编写每个方块的旋转函数 了。 定义一个二维数组存储⊥字形方块 及所有变形体。 int[][] shapes = { { 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } 由于二维数组shapes仅能保存一种形状及其变形,所以用三维数组存储7种形状 及其变形。

java培训ppt课件(全套课件)

java培训ppt课件(全套课件)
public static void main(String args[]) {
System.out.println("Hello World"); } }
Java实用教程
用记事本或者专用的编辑工具如EditPlus等进行编辑,并将 文件存为HelloWorld.java。建议使用像EditPlus这样的编辑软件, 可使得代码更加清晰且风格良好。
Java实用教程 图1.3 编辑include变量
Java实用教程
选中lib变量,单击“编辑”按钮,弹出标题为“编辑用户 变量”的对话框,如图1.4所示。在变量值一栏的最后添加“; D:\j2sdk1.4.0_01\lib”,“;”表示与前面的各项隔开,后面的路 径是JDK包的安装路径下的lib目录。图1.4为作者修改lib变量的 情况,注意你的安装路径可能与作者的有所不同,要以你的安 装路径为基准进行修改。
Java实用教程
4. 多线程 多线程在操作系统中已得到了最成功的应用。多线程是指 允许一个应用程序同时存在两个或两个以上的线程,用于支持 事务并发和多任务处理。Java除了内置的多线程技术之外,还 定义了一些类、方法等来建立和管理用户定义的多线程。
Java实用教程
5. 简单易用 Java源代码的书写不拘泥于特定的环境,可以用记事本、 文本编辑器等编辑软件来实现,然后将源文件进行编译,编译 通过后可直接运行,通过调试则可得到想要的结果。
Java实用教程
第2章 Java基本语法
2.1 Java程序的构成 2.2 数据类型、变量和常量 2.3 运算符和表达式 2.4 流程控制 2.5 数组的使用 习题
Java实用教程
2.1 Java程序的构成
2.1.1用和类

JavaSE_12_GUI编程_2.0

JavaSE_12_GUI编程_2.0
引入了许多新的特性和能力。 ❖ Swing增强了AWT中组件的功能,这些组件命名通常是在
AWT组件名前增加了一个“J”字母;同时也提供了更多的 组件库,如:JTable、JTree、JComboBox等。
5
Java高端培训
AWT主要类的继承关系
6
Java高端培训
Component和Container
❖ 组件是一个以图形化的方式显示在屏幕上并能与用户进行交 互的对象。例如一个按钮,一个标签等。
➢ Java的图形用户界面的最基本组成部分是组件(Component) ➢ 一般的组件不能独立地显示出来,必须将它放在某一容器中才可以
显示出来。
❖ 容器(Container)实际上是Component的子类,容器类对 象具有组件的所有性质,还具有容纳其它组件和容器的功能。
尾部 ➢ dispose() //释放由此窗体及其拥有的所有子组件所使用的所有本机屏幕资

9
Java高端培训
示例1
import java.awt.Color; import java.swing.JFrame;
public class JFrameTest { public static void main(String[] args) { MyFrame frame = new MyFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }
❖ 调用Container的setLayout方法可以设置容器的布局管 理对象。
❖ Swing中使用的也是AWT提供的那些常用布局管理器类:
➢ FlowLayout 流布局 ➢ BorderLayout 边框布局 ➢ GridLayout 网格布局

Thinking in Java 12(执行期型别识别)

Thinking in Java 12(执行期型别识别)

Ans:
inside main Loading Candy After creating Candy Loading Gum After Class.forName("Gum") Loading Cookie After creating Cookie
Class.forName(String)
方法Class.forName("Gum") 是 Class 的一个 static 成员. Class对象和其他任何对象都是类似的,所以 能够获取和控制它的一个reference(装载模块 就是干这件事的). 为获得Class的一个reference ,一个办法是使 用forName().它的作用是取得包含了目标类 文本名字的一个String(注意拼写和大小写). 最后返回的是一个reference.
Java编程思想 J
执行期型别辨识(RTTI) 执行期型别辨识(RTTI)
RTTI(run-time type identification) 使你得以从 匿名的基类 reference 中发现型别信息 在运行期,对象的类型会得到鉴定 容易滥用 先多态 只在必要时刻才运用 RTTI RTII 比多态效率高 三种形式: Class.forName( ) Classname.class:字面常量 Instanceof( )
class 对象: 一个实例 对象:
class object (Meta-class)
class A
x
y class heap Object heap
//: SweetShop.java // Examination of the way the class loader works
( p476 )

java授课大纲

java授课大纲

java授课大纲Java编程语言是一种广泛应用于软件开发的高级、面向对象的编程语言。

以下是一个典型的Java授课大纲,适用于初学者和入门级学员。

大纲包括基础的Java语法、面向对象编程(OOP)的概念、常用的Java类库和一些实际项目的实践。

1. 导论与Java概述Java语言的起源和发展Java的特点和优势Java应用领域2. Java开发环境搭建JDK(Java Development Kit)的安装Eclipse或其他集成开发环境(IDE)的配置3. Java基础语法变量和数据类型运算符和表达式控制流程(if语句、for循环、while循环)4. 面向对象编程基础类和对象的概念封装、继承和多态构造方法和析构方法方法重载和方法重写5. Java类库的使用常用类库的介绍(String、Math等)集合框架(ArrayList、HashMap等)输入输出(IO)操作6. 异常处理异常的概念和分类try-catch块的使用自定义异常类7. 多线程编程线程的基本概念创建和管理线程线程同步与互斥8. GUI编程AWT和Swing库的使用事件处理窗口和控件的设计9. 网络编程基础Socket编程概述客户端和服务器的实现HTTP通信10. 数据库连接与操作JDBC(Java Database Connectivity)的概念连接数据库、执行SQL语句事务管理11. Java Web开发简介Servlet和JSP的基础概念MVC架构基本的Web应用开发流程12. 实际项目实践小型项目或案例的实施项目管理和版本控制(如Git)13. Java最佳实践和性能优化代码规范和设计模式性能优化的基本策略14. Java生态系统Maven或Gradle的使用第三方库的管理和集成15. Java安全性安全编码实践SSL/TLS加密16. 新兴技术和趋势Java 8之后的新特性微服务架构和Spring Boot简介这个Java授课大纲是一个基础的框架,可以根据学员的水平和授课时间的长短进行调整和扩展。

JAVA WEB编程技术(沈泽刚 清华大学出版社)第十二章课后习题部分解答

JAVA WEB编程技术(沈泽刚 清华大学出版社)第十二章课后习题部分解答
//BorderLayout 布局管理器,水平间隔为 5 垂直间隔为 10 BorderLayout borderLayout = new BorderLayout(5, 10);
setLayout(borderLayout); add(p1, BorderLayout.NORTH); add(p2, BorderLayout.SOUTH); } }
}
class FlowLayoutDemo extends JFrame{ public FlowLayoutDemo(){ FlowLayout flowLayout; //FlowLayout 类型的布局管理器引用变量
//该布局管理器对齐方式为左对齐,水平间隔和垂直间隔均为默认值 5 个像素 flowLayout = new FlowLayout(FlowLayout.LEFT);
}
class GridLayoutDemo extends JFrame{ public GridLayoutDemo(){ //GridLayout 布局管理器,两行三列的布局,水平间隔和垂直间隔为 5 GridLayout gridLayout = new GridLayout(2, 3, 5, 5);
import javax.swing.*; import java.awt.*;
public class Chap12_3{ public static void main(String[] args){ GridLayoutDemo gld = new GridLayoutDemo(); gld.setTitle("Chap12_3"); //设置框架标题 gld.setSize(600, 160); //设置框架大小 gld.setLocationRelativeTo(null); //设置框架在屏幕的中央 gld.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭框架时结束程序 gld.setVisible(true); //显示框架 }

12Java异常和垃圾收集

12Java异常和垃圾收集
18
Designed by gadfly7,©2006
使用 throws抛出异常
如果一个方法可能导致一个异常但不处理它,
此时要求在方法声明中包含 throws 子句, 通知潜在调用者,如果发生了异常,由调用 者处理。 一个throws子句列举了一个方法可能引发的 所有异常类型。 这对于除Error或RuntimeException及它们 子类以外类型的所有异常是必要的。
• 掌握如何定义自己的异常
• 了解 Java 的垃圾收集机制
3
Designed by gadfly7,©2006
什么是异常
• 运行时发生的错误称为异常(Exception)。 • 处理这些异常就称为异常处理。 • 一旦引发异常,程序将突然中止,且控制 将返回操作系统。 • 发生异常后此前分配的所有资源都将保留 在相同的状态,这将导致资源漏洞。
InterruptedException
不能找到文件 文件结束 对类的访问被拒绝 请求的方法不存在
线程中断
9
Designed by gadfly7,©2006
Java异常处理基础
• Java异常处理机制采用一个统一和相对简单的
抛出(throw)和处理错误的机制。如果一个方法 本身能引发异常,当所调用的方法出现异常时, 调用者可以捕获(catch)异常使之得到处理;也可 以回避异常,这时异常将在调用的堆栈中向下 传递,直到被处理。
12
Designed by gadfly7,©2006
多个 catch 块
• 单个代码片段可能会引起多个错误。 • 可提供多个 catch 块分别处理各种异常类型。
... try{ } catch(ArrayIndexOutOfBoundsException e){ } catch(Exception e) { } ... ArrayIndexOutOfBoundsException类为 Exception 类的子类,但是如果异常 属于ArrayIndexOutOfBoundsException类将执行第一个 catch 块,之后控制 将转向try/catch块之后的语句,所以始终不会执行第二个 catch 块。

Java 2实用教程第4版_第12章_Java多线程机制

Java 2实用教程第4版_第12章_Java多线程机制

2017/4/23
第 16 页
§12.4 线程的常用方法
例 子 6 ( Example12_6.java , ClassRoom.java )中,有两个 线 程 : student 和 teacher, 其 中 student 准备睡一小时后再 开始上课, teacher 在输出 3 句 “上课”后,吵醒休眠的线 程student。运行效果如图12.8。
辽宁省教育软件大赛参赛作品
Java 语言程序设计
第12章 Java多线程机制
配合例子源代码一起使用
大连交通大学 软件学院
导读
主要内容
– – – – – – – – Java中的线程 Thread类与线程的创建 线程的常用方法 线程同步 协调同步的线程 线程联合 GUI线程 计时器线程
重点和难点
– 重点:多线程的概念;如何创建多线程 – 难点:理解多线程机制
2017/4/23
第 3 页
§12.1.2 进程与线程
线程是比进程更小的执行单位,一个进程在其执行过程中,可 以产生多个线程,形成多条执行线索,每条线索,即每个线程 也有它自身的产生、存在和消亡的过程。 线程间可以共享进程中的某些内存单元(包括代码与数据),线 程的中断与恢复可以更加节省系统的开销。
例子8(Example12_8.java, TicketHouse.java )模拟两个人, 张飞和李逵买电影票。售票员只 有两张五元的钱,电影票5元钱一 张。张飞拿二十元一张的人民币 排在李逵的前面买票,李逵拿一 张5元的人民币买票。因此张飞必 须等待(李逵比张飞先买了票)。 程序运行效果如图12.10。
2017/4/23
第 11 页
§12.3.2 使用Thread类例题

基础Java编程课件PPT

基础Java编程课件PPT
基础Java编程课件PPT
欢迎参加基础Java编程课程!本课程将帮助您掌握Java编程语言的基本概念 和语法,以及面向对象编程的核心原则。让我们一起开始这个令人兴奋的学 习之旅吧!
Java编程语言简介
1 历史渊源
Java由James Gosling等人在上世纪 90年代初开发,是一种面向对象的编 程语言。
URL编程
URL是统一资源定位符的缩写,Java提供 了URL类用于处理网页链接和文件路径。
HTTP协议
在网络编程中,HTTP协议是最常用的应用层协议,通过HTTP协议可以实现浏览器和服务 器之间的通信。
封装
封装的定义
访问修饰符
封装是一种面向对象编程的核心 概念,将数据和方法封装在类中, 通过访问修饰符控制对数据的访 问。
Java提供了不同的访问修饰符, 如private、public和protected, 用于控制对类、属性和方法的访 问权限。
访问器和修改器
通过getter和setter方法来访问和 修改私有属性,从而实现对属性 的安全访问。
继承
1
继承的定义
继承是一种面向对象编程的机制,允许一个类继承另一个类的属性和方法。
2
超类和子类
继承中,被继承的类称为超类或父类,继承其他类的类称为子类。
3
方法的覆盖
子类可以重写(覆盖)超类中的方法,实现对方法的定制化功能。
多态
多态的定义
多态是面向对象编程的重要概念,允许不 同的对象对相同的消息作出不同的响应。
方法的重写和重载
多态实现方法的重写(覆盖)和重载,并 通过动态绑定在运行时确定具体调用哪个 方法。
抽象类和接口
抽象类和接口是实现多态的两种机制,分别提供了抽象方法和规范行为。

lesson12-02 Java核心技术课程总结

lesson12-02 Java核心技术课程总结

Java 核心技术第十二章Java案例实践和总结第二节课程总结1概要•总结本课程内容•预告本课程后续的进阶内容本课程内容(1)•Java核心技术本课程内容(2)•Java核心技术–12章,48节–着重Java基础原理:类/对象、继承、多态、异常、包/导入等–了解Java常用类库:数字、字符串、时间等–了解Java基础数据结构:ArrayList、HashSet、HashMap等–初步应用实践:文件处理–两个综合性案例本课程内容(3)•需要熟记的内容–javac.exe, java.exe, main, class, new–abstract, interface, extends, implements, class cast (类转型)–static, final, try-catch-finally–package/import/classpath/jar/private/default/protected/public –Object, Integer, Double, String, SringBuffer, ArrayList, HashSet, HashMap, Arrays/Collections, Comparable, File, BufferedReader, BufferedWriter程序语言的学习路径•如何学习程序语言:抓大放小–HelloWorld 入门–变量类型和变量定义–分支/循环语句、常见运算符–函数–OO特性/其他高级特性–文件处理–其他的模块处理•实战为王,多读、多改、多写下一个课程:Java核心技术(进阶)•全面扩展Java应用–更便捷的开发和构建–单元测试–高级文件处理–多线程和并行处理–网络处理–邮件处理–数据库操作–Java语言和其他语言的互操作性谢谢!8。

Java SE课件:12

Java SE课件:12
Label t; int k=1200; Timer timer;
MyTimer(){ this.setLayout(null); this.setBounds(200, 200, 300, 100); t=new Label(); t.setBounds(50, 50, 100, 30);
}
}
import java.awt.*; import java.awt.event.*;
类的子类的对象
Public class Test{ public void static main(String[] args){ MyThread mt=new MyThread(); }
} class MyThread extends Thread{
}
线程
2.运行:
一个Thread类的子类需要重写run()方法,而run() 方法中的内容, 就是线程运行时执行的程序。执行线程的start方法,则线程开始运行。
Label t; int k=1200; Timer timer; MyTimer(){
this.setLayout(null); this.setBounds(200, 200, 300, 100);
}
}
import java.awt.*; import java.awt.event.*;
public class MyTimer extends Frame implements ActionListener {
启动线程的程序如下:看看会有什么效果
public class Example { public static void main(String[] args) { Visit v=new Visit(); Thread a=new Thread(v);Thread b=new Thread(v);Thread c=new Thread(v); Thread d=new Thread(v);Thread e=new Thread(v); a.start();b.start();c.start();d.start();e.start(); try {

java核心技术第十二版笔记

java核心技术第十二版笔记

java核心技术第十二版笔记以下是一份《Java核心技术第十二版》的笔记,涵盖了书中主要知识点和概念。

由于篇幅限制,这里只提供了一部分内容,更多细节和内容建议阅读原书。

一、Java平台Java平台由Java虚拟机(JVM)和Java开发工具包(JDK)组成。

JVM 是Java平台的核心,负责解释和执行Java字节码。

JDK是开发Java应用程序的工具集合,包括编译器、调试器、类库和API。

二、Java语言基础1. Java是一种面向对象的编程语言,具有简单性、可移植性、安全性等特点。

2. Java程序由类和对象组成,类是对象的模板,对象是类的实例。

3. Java语言支持继承和多态等面向对象特性。

4. Java语言中的变量需要先声明后使用,变量类型包括基本类型和引用类型。

5. Java语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。

6. Java语言中的控制流语句包括条件语句、循环语句等。

7. Java语言中的异常处理机制用于处理程序中的错误情况。

三、Java输入/输出流1. Java输入/输出流是用于处理数据输入和输出的类库,包括字节流和字符流。

2. Java输入/输出流可以通过InputStream和OutputStream等类进行操作。

3. Java字符流可以通过Reader和Writer等类进行操作,支持多种字符编码格式。

4. Java NIO(New I/O)是Java输入/输出流的改进版本,提供了更高效的数据传输方式。

四、Java图形用户界面1. Java图形用户界面(GUI)是通过Swing和AWT等类库实现的。

2. Swing是Java的一个GUI工具包,提供了丰富的组件,如按钮、文本框、菜单等。

3. AWT是Java最早的GUI工具包,提供了一些基本的GUI组件。

4. Java GUI应用程序通常采用事件驱动模式,通过事件监听器处理用户交互操作。

五、Java网络编程1. Java网络编程可以通过Java Socket API实现基于TCP/IP协议的网络通信。

java核心技术·卷i 基础知识第12版中文

java核心技术·卷i 基础知识第12版中文

Java核心技术·卷I 基础知识第12版中文是一本经典的Java编程语言教程,由Cay S. Horstmann和Gary Cornell合著。

本书深入浅出地介绍了Java语言的基本知识和核心技术,是学习和掌握Java编程语言的重要参考书籍。

本书的主要内容包括Java语言的基本概念、面向对象编程、控制流程、数组、字符串和输入输出等方面的内容。

通过系统而深入的讲解,读者可以逐步掌握Java语言的核心技术,从而成为有经验的Java程序员。

以下是本书内容的主要特点:1.全面系统的介绍了Java编程语言的基本知识和核心技术,包括控制语句、数组、字符串、面向对象编程、异常处理、输入输出等方面的内容。

2.采用了清晰易懂的语言和大量的实例,帮助读者深入理解Java编程语言的各种知识点。

3.提供了丰富的编程实例和练习题,让读者可以通过实际操作巩固所学知识,提升编程能力。

4.涵盖了Java SE 8中新增的特性和改进,使得本书的内容更加贴近当今的Java编程实践。

5.针对初学者的特点,本书在讲解难点的地方进行了重点详细的讲解,在基础内容上有很好的拓展。

通过学习Java核心技术·卷I 基础知识第12版中文,读者可以系统全面地掌握Java编程语言的核心技术,为进一步深入学习和应用Java 语言打下坚实的基础。

本书适合Java初学者和有一定基础的Java程序员阅读,也可以作为Java编程语言的教学参考书。

Java核心技术·卷I 基础知识第12版中文是一本经典的Java编程语言教程,内容丰富全面,深入浅出,适合广大Java学习者阅读。

如果你想系统地学习和掌握Java编程语言的核心技术,那么这本书绝对是你的不二选择!由于Java核心技术·卷I 基础知识第12版中文始终保持着在计算机编程界的经典地位,本书不仅仅是一本教程,更是一部深入探究Java编程核心的著作。

在新的1500字的部分,我们将进一步探讨本书的内容特点和对读者的学习帮助,以及本书面向的读者裙体和实际应用。

Java语言程序设计讲义-第十二章

Java语言程序设计讲义-第十二章

第十二章网络通信主要内容:Java语言是如何实现利用URL访问Internet的资源,如何利用网络通信协议TCP和UDP来实现网络通信的。

12.1 URL(Uniform Resource Locator)✓Java语言不仅可以方便地在网络的主页上嵌入Applet,而且还专为网络通信提供了软件包以支持网络编程。

✓URL表示Internet上某一资源的地址。

通过URL,可访问Internet和WWW。

浏览器通过解析给定URL,可在网上查找相应文件和其它资源。

✓URL就是Internet地址()。

URL通过多种协议寻找资源地址以定位Internet上的数据。

✓URL的一般格式为(不考虑特殊情况):protocol://servername:port/path(1)协议即URL的访问方式。

URL可以使用多种访问方式。

常见的协议有:ftp、http、telnet、file、mailto、news。

(2)服务器名可用IP地址或主机名来代替。

IP地址是用来标识主机以及网络中主机位置的一串数字。

(3)端口号作为一种标识,分配给网上计算机间通信的软件程序的。

通常省略,由URL为使用的协议指定一个缺省端口。

(Telnet协议必须指定端口号)✓包中实现了类URLpublic URL(String spec);public URL(URL context,String spec);public URL(String protocol,String host,String file);public URL(String protocol,String host,int port,String file);✓在URL类中封装了获得URL对象各个属性的方法String URL.getProtocol(); // 获得协议名String URL.getHost(); // 获得主机名String URL.getFile(); // 获得文件名String URL.getPort(); // 获得端口名String URL.getRef(); // 获得文件内部的引用例:URL u1=new URL(":80/sa/sp1.html")URL u4=new URL("http","",80,"/sa/s1.html");✓定义URL时,要抛弃例外MalformedURLException✓Java语言中通过URL和URLConnection两种方式访问WWW:(1)通过URL访问WWWURL的方法openStream()与指定的URL建立连接,并返回InputStream类的对象,以从这一连接中读取数据。

java专题知识讲座

java专题知识讲座

父类与子类
是所有类的基类
是上面的子类,又是 下面的父类
设备 鼠标
显示器
是显示器 的子类
是子类 机械 光电 液晶 一般显示 纯平
在类旳继承中,被继承旳类称为父类,继承而 来旳类则称为子类。有多种子类共同继承一种父 类,那么这个父类就是多种类旳基类。
Java语言只支持单继承,假如要定义多继承, 能够使用将要讲解旳接口措施。
y=20;
System.out.println("this is a Constractor of shape");
}
public void measure(){
System.out.println("super_y="+y);
}
}
class Rectangle extends Shape{
public int y;
public void measure(){
super.measure();
//引用父类旳measure()措施
y=super.y+y;
Java实例——(续)
System.out.println("Shape.y="+super.y); y
//引用父类旳组员变量
System.out.println("Rectangle.y="+y); 旳组员变量y
假如在子类程序中要引用与子类同名旳父类旳组 员变量时,能够使用“super”关键字来指示;
Java实例——组员变量同名
class SuperA{ private int privateData=10; public int pubSuperData; private void privateMethod(){ System.out.println("super privateData="+privateData); System.out.println("Super class's privateMethod"); } public void pubSuperMethod(){ privateMethod(); System.out.println("Super class's publicSuperMethod");
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下一页上一页退出复旦大学IBM 技术中心第十二讲:Java 输入输出机制z 本讲主要内容–Java 输入/输出概况–标准输入输出–文件的输入输出–文件的随机访问–管道流–数据流–对象流–处理流下一页上一页退出复旦大学IBM 技术中心回顾zJava 多线程机制–线程的定义及用途–实现线程的两个途径•继承Thread 类和实现Runnable 接口–线程的5种状态:新建、就绪、运行、挂起、死亡–线程的启动和延迟方法–线程调度策略与优先级设置–线程的控制和同步线程–终止正在运行的线程–Daemon 线程与线程组的建立和使用下一页3上一页退出复旦大学IBM 技术中心Java 输入/输出概况zJava 采用流(stream)的机制实现输入/输出–流是一种带有方向的数据序列–为获取信息,程序在一个信息源上打开一个流并顺序地读取信息;类似地,也可打开一个流将信息发送到外面。

–流必须与一个对象结合z输入/输出对象–对外设通道输入/输出、对文件读/写、对网络数据读/写z 实现输入/输出类库java.iozJava 中的线程间通讯也可通过I/O 管道实现下一页4上一页退出复旦大学IBM 技术中心Java 系统标准输入/输出z基本I/O 系统类Systempublic final class ng.Systemextends ng.Object zSystem 类的三个标准I/O 流成员–public static InputStream System.in –public static PrintStream System.out –public static PrintStream System.err5java.io 类库z包名:java.io–用import 语句引入z提供两种流的抽象类–InputStream 类(输入类)或Reader 类–OutputStream 类(输出类)或Writer 类z提供文件系统操作的类–FileInputStream 类和FileOutputStream 类–FileReader 类和FileWriter 类–RandomAcessFile 类–File 类和FileDescriptor 类6Java 的标准文件类:FilezFile 类–File 对象对应一个目录或文件–描述文件路径、名字、长度、可否读写等属性,可用来命名文件、查询文件属性和处理目录,但不读写文件。

z构造方法File(String s)File(String directry, String s)z创建对象File f1 = new File(“/mydir/myfile.txt”);File f2 = new File(“/mydir”);File f3 = new File(f2,”myfile.txt”);下一页上一页退出复旦大学IBM 技术中心FileInputStream 类z作用–定义文件输入流,用于读取文件的信息。

–该类的所有方法都是从InputStream 类继承来的。

z构造方法–FileInputStream(String name)–FileInputStream(File finename)z注意:使用文件输入流构造器,在建立通往某文件的输入流时,可能出现错误(也被称为异常)。

因此,程序中必须使用try-catch 语句结构检测并处理这个异常。

z异常事件是IOException(IO 异常)下一页上一页退出复旦大学IBM 技术中心处理I /O 异常z输入/输出处理的基本格式–把一个文件输入流对象与一个文件关联起来,使用一个catch(捕获)块检测并处理这个异常。

try{FileInputStream ins=newFileInputStream(“myfile.dat”);//读取输入流}catch(IOException e) { //文件I/O 错误。

System.out.println(“File read error :”+e);}下一页9上一页退出复旦大学IBM 技术中心InputStream 类提供的方法zint read()–抽象方法:它从输入流中读取下一个字节,返回范围在0到255之间的一个整数。

zint read(byte b[])–从输入流读取长度为b.length 的数据,写入到字节数组b ,并返回所读取的字节数。

zint read(byte b[], int off , int len)–从数据流中读取长度为len 的数据,写入到字节数组b 中从下标off 开始的位置,并返回读取的字节数。

z以上三个方法,如果到达流的末端位置,用返回-1表示流的结束下一页10上一页退出复旦大学IBM 技术中心InputStream 类提供的方法(续)z intavailable()–返回从输入流中可以读取的字节数。

z long skip(long n)–从输入流的当前读取位置起向前移动n 个字节,并返回实际跳过的字节数。

z close( )–关闭流并且释放与该流相关的资源。

11–一个应用程序,该程序从磁盘上读取它自己的源代码并将代码显示在屏幕上。

import java.io.*;class Example20_1{ public static void main(String arg[]){ int b; byte buffer[]=new byte[2500];try{ FileInputStream readfile=new FileInputStream("Example20_1.java");b=readfile.read(buffer,0,2500);try{ String str=new String(buffer,0,b,"Default");System.out.println(str);}catch(UnsupportedEncodingException e){System.out.println("the encoding was not found:"+e); }}catch(IOException e){System.out.println("File read Error");}}例子20-112–一个应用程序,该程序将文件内容显示在一个文本区里。

import java.io.*; import java.awt.*;import java.awt.event.*;class Example20_2{ static Frame f;public static void main(String args[] ){ int b, j=20; TextArea text; byte tom[]=new byte[2500]; f=new Frame();f.setSize(100,100); text=new TextArea(15,26);f.setVisible(true); f.add(text); f.pack();f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ f.setVisible(false);System.exit(0); }});例子20-2下一页13上一页退出复旦大学IBM 技术中心try{ File f=new File("E:\\data\\","AA.txt");FileInputStream readfile=new FileInputStream(f);while((b=readfile.read( tom, 0, j )) != -1 ){String s=new String( tom, 0, j );System.out.println(s);text.append(s+'\n');}readfile.close();}catch(IOException e){System.out.println("File read Eroor"); }}}例子20-2(续)下一页14上一页退出复旦大学IBM 技术中心FileOutputStream 类z作用–定义文件输出流,将程序中的数据通过输出流写入文件。

–该类的所有方法都是从OutputStream 类继承来的。

z构造方法–FileOutputStream(String name)–FileOutputStream(File finename)–FileOutputStream(FileDescriptor fdObj)z注意:使用文件输出流构造器在建立通往文件的输出流时,可能会出现错误。

程序中必须使用try-catch 语句结构检测并处理这个异常。

异常事件是IOException下一页15上一页退出复旦大学IBM 技术中心OutputStream 类提供的方法z输出数据•void write(int b)–抽象方法:它将指定的字节b 写入输出流。

如果b 的值大于255,则只输出它的低位字节所表示的值。

•void write(byte b[])–把字节数组b 中的b.length 个字节写入输出流。

•void write(byte b[], int off, int len )–把字节数组b 中从下标off 起的len 个字节写入到输出流。

•void flush()–刷空输出流,并且输出所有存储在缓冲区的字节z流的关闭•close()显式地关闭输出流下一页16上一页退出复旦大学IBM 技术中心–一个应用程序,该程序通过键盘输入读取一行文本并将其存储到文件中。

(Dos 窗口)import java.io.*;class Example20_3{ public static void main(String arg[]){ int b;byte buffer[]=new byte[100];try{System.out.println("输入一行文本,并存入磁盘:");b=System.in.read(buffer); //把从键盘敲入的字符存入buffer 。

FileOutputStream whritefile=new FileOutputStream("line.txt");whritefile.write(buffer,0,b); //通过流把buffer 写入到文件line.txt 。

}catch(IOException e){System.out.println("Error");}}}例子20-317FileReader 类和FileWriter 类zFileReader 类和FileWriter 类是Reader 和Writer 的子类–其作用类似FilelnputStream 类和FileOutputStream 类z构造方法FileReader(String filename)FileWriter(String filename)z例如:FileReader file=new FileReader(“Student.txt”);z 注意:使用Reader 和Writer 类时需要处理的异常是FileNotFoundException18BufferedReader 类zBufferedReader 类–提供一个缓冲式的字符读取器类–BufferedReader 的优点之一是它提供了readLine 方法z构造方法:BufferedReader(Reader in)z例如BufferedReader in=BufferedReader(newFileReader(“student.txt”));z读取文本行方法readLine()下一页19上一页退出复旦大学IBM 技术中心BufferedReader 类举例z例子20-4–用缓冲方式的读取文件。

相关文档
最新文档