Java 2实用教程课件(第3版第14章)

合集下载

Java+2实用教程(3版)实验代码及答案

Java+2实用教程(3版)实验代码及答案

Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)上机实践1 初识JA V A (4)实验1一个简单的应用程序 (4)实验2一个简单的J A V A A PPLET程序 (4)实验3联合编译 (5)上机实践2 基本数据类型与控制语句 (6)实验1输出希腊字母表 (6)实验2回文数 (7)实验3猜数字游戏 (9)上机实践3 类与对象 (10)实验1三角形、梯形和圆形的类封装 (10)实验2实例成员与类成员 (13)实验3使用PACKAGE语句与IMPORT语句 (15)上机实践4 继承与接口 (17)实验1继承 (17)实验2上转型对象 (20)实验3接口回调 (22)上机实践5 字符串、时间与数字 (24)实验1S TRING类的常用方法 (24)实验2比较日期的大小 (25)实验3处理大整数 (26)上机实践6 组件及事件处理 (27)实验1算术测试 (27)实验2信号灯 (30)实验3布局与日历 (32)上机实践7 组件及事件处理2 (36)实验1方程求根 (36)实验2字体对话框 (39)实验3英语单词拼写训练 (42)上机实践8 多线程 (46)实验1汉字打字练习 (46)实验2旋转的行星 (48)实验3双线程接力 (52)上机实践9 输入输出流 (55)实验1学读汉字 (55)实验2统计英文单词字 (58)实验2读取Z IP文件 (62)上机实践10 JAV A 中的网络编程 (63)实验1读取服务器端文件 (63)实验2使用套接字读取服务器端对象 (65)实验3基于UDP的图像传输 (68)上机实践11 数据结构 (72)实验1扫雷小游戏 (72)实验2排序与查找 (77)实验3使用T REE S ET排序 (78)上机实践12 JAV A SWING (80)实验1JL AYERED P ANE分层窗格 (80)实验2使用表格显示日历 (81)实验3多文档界面(MDI) (84)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)上机实践1 初识JA V A ............................................................................... 错误!未定义书签。

实验1一个简单的应用程序 .................................................................. 错误!未定义书签。

实验2一个简单的J A V A A PPLET程序 .................................................... 错误!未定义书签。

实验3联合编译 ...................................................................................... 错误!未定义书签。

上机实践2 基本数据类型与控制语句...................................................... 错误!未定义书签。

实验1输出希腊字母表 .......................................................................... 错误!未定义书签。

实验2回文数 .......................................................................................... 错误!未定义书签。

实验3猜数字游戏 .................................................................................. 错误!未定义书签。

Java2实用教程课后答案-第三版-耿祥义-张跃平版

Java2实用教程课后答案-第三版-耿祥义-张跃平版

Java2实用教程(第三版)课后习题参考答案第1章 Java入门1. 开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为。

java(2)编译Java源文件:使用Java编译器(javac。

exe)。

得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java。

exe)执行字节码文件;Java小应用程序使用支持Java标准的浏览器来执行.2。

怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答: ①应用程序必须有main方法,这个方法是程序执行的入口。

小应用程序没有main方法。

②应用程序的主类不一定用public修饰;小应用程序的主类必须用public修饰。

3. Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成.②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。

③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为。

java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为。

java.小应用程序:源文件名与主类的类名相同,拓展名是。

java。

4. 在运行小程序的HTML文件中可以使用codebase属性指定小程序的字节码所驻留的目录。

如果不使用codebase属性,小程序的字节码文件必须和运行它的HTML文件在同一目录中。

编写一个小程序并将小程序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTML文件(注意其中的codebase属性):<applet code=你的小程序的字节码 width=200 height=300 codebase=C:\5000〉</applet>存放在另一个目录中。

Java 2实用教程课件(第3版第03章)

Java 2实用教程课件(第3版第03章)
计算机应用教研室
15
例算术运算符程序运行的部分结果
计算机应用教研室
16
4.关系运算符与关系表达式
关系运算符: , , , , 关系运算符:<,>,<=,<=,!= 系运算符用来比较两个值的关系。 系运算符用来比较两个值的关系。关系运算符 的运算结果是boolean型,当运算符对应的关 的运算结果是 型 系成立时,运算结果是true,否则是 系成立时,运算结果是 ,否则是false。 。 结果为数值型的变量或表达式可以通过关系运 算符形成关系表达式。 算符形成关系表达式。如,4>8,(x+y)>80。 , 。
计算机应用教研室
记 下 来
运算规则 x真时为假 假时为真 真时为假,x假时为真 真时为假 x,y都假时结果才为假 短路 都假时结果才为假(短路 都假时结果才为假 短路) x,y都真时结果才为真 短路 都真时结果才为真(短路 都真时结果才为真 短路) x,y同真假时结果为假 同真假时结果为假 x,y都真时结果才为真 都真时结果才为真 x,y都假时结果才为假 都假时结果才为假
计算机应用教研室
9
2.自增,自减运算符:++,-(单目运算符)
自增、自减运算符是单目运算符, 自增、自减运算符是单目运算符,可以放在操 作元之前,也可以放在操作元之后。 作元之前,也可以放在操作元之后。操作元必 须是一个整型或浮点型变量。 须是一个整型或浮点型变量。作用是使变量的 值增1或减 或减1. 值增 或减 . ++x(--x)表示在使用 之前,先使 的值加 之前, ( )表示在使用x之前 先使x的值加 (减)1。 。 x++(x--)表示在使用 之后,使x的值加(减) 之后, 的值加( ( )表示在使用x之后 的值加 1。 。

Java 2实用教程课件(第3版第14章)

Java 2实用教程课件(第3版第14章)

14.2绘制基本图形
• 1.直线 • drawLine(int x1,int y1,int x2,int y2) 绘制从起点(x1,y1)到终点 (x2,y2)的直线段 • 2.矩形 • drawRect (int x,int y,int w,int h) 绘制矩形 • fillRect (int x,int y,int w,int h) 填充矩形 • 矩形的左上角的坐标由参数x、y指定,矩形的宽和高由参数w,h指 定。 • 3.圆角矩形 • drawRoundRect(int x,int y,int w,int h,int arcW,int arcH) 绘制圆 角矩形 • fillRoundRect(int x,int y,int w,int h,int arcW,int arcH) 填充圆角 矩形 • 参数arcW、arcH指定圆角的尺寸,见图14.1中的4个黑角部分。
• Toolkit类是一个抽象类,不能用构造方法直接创建 这样对象,但Java运行环境提供了一个Toolkit对 象,任何一个组件调用getToolkit()方法可以返 回这个对象的引用。Tollkit类有一个获取图像的方 法getImage(String s)。 • Graphics 类提供的方法: 绘制的Image对象;x、y是要绘制指定图像的矩形 的左上角所处的位置,observer是加载图像时的图 像观察器。
14.5 Java 2D
• Java1.2给出了一个新类Graphics2D,它是 Graphics类的子类。一个Graphics2D对象把 直线、圆等作为一个对象来绘制,也就是说, 如果想用一个Graphics2D类型的“画笔”来 画一个圆的话,就必须先创建一个圆的对象。 我们仍需使用paint(Graphics g)方法来绘制, 只需将Graphics对象强制转化为Graphics2D 对象即可。

Java2实用教程(第三版)实验指导与习题解答

Java2实用教程(第三版)实验指导与习题解答

Java2实用教程(第三版)实验指导与习题解答Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)1上机实践 1 初识JAVA ................................................................................................................. 4 实验 1 一个简单的应用程序.................................................................................................... 4 实验 2 一个简单的JAVA APPLET程序...................................................................................... 4 实验 3 联合编译 (5)上机实践 2 基本数据类型与控制语句 ........................................................................................ 6 实验1 输出希腊字母表 ............................................................................................................ 6 实验 2 回文数 . (7)实验 3 猜数字游戏.................................................................................................................... 9 上机实践 3 类与对象.................................................................................................................. 10 实验 1 三角形、梯形和圆形的类封装................................................................................... 10 实验2 实例成员与类成员 ...................................................................................................... 13 实验3 使用*****语句与IMPORT语句 ............................................................................ 15 上机实践4 继承与接口.............................................................................................................. 17 实验1 继承..............................................................................................................................17 实验 2 上转型对象.................................................................................................................. 20 实验3接口回调 (22)上机实践 5 字符串、时间与数字.............................................................................................. 24 实验 1 STRING类的常用方法.................................................................................................. 24 实验 2 比较日期的大小 ..........................................................................................................25 实验 3 处理大整数.................................................................................................................. 26 上机实践 6 组件及事件处理...................................................................................................... 27 实验1 算术测试......................................................................................................................27 实验 2 信号灯 (30)实验 3 布局与日历.................................................................................................................. 32 上机实践7 组件及事件处理2 ................................................................................................... 36 实验1 方程求根 . (36)实验 2 字体对话框.................................................................................................................. 39 实验 3 英语单词拼写训8 多线程 (46)实验 1 汉字打字练习 .............................................................................................................. 46 实验2 旋转的行星.................................................................................................................. 48 实验 3 双线程接力.................................................................................................................. 52 上机实践9 输入输出流.............................................................................................................. 55 实验1 学读汉字. (55)实验 2 统计英文单词字 .......................................................................................................... 58 实验2 读取ZIP文件 (62)2上机实践10 JAVA 中的网络编程 ............................................................................................ 63 实验1 读取服务器端文件 (63)实验 2 使用套接字读取服务器端对象................................................................................... 65 实验3 基于UDP的图像传输 ................................................................................................ 68 上机实践11 数据结构................................................................................................................ 72 实验 1 扫雷小游戏.................................................................................................................. 72 实验 2 排序与查验 3 使用*****排序 ...................................................................................................... 78 上机实践12 JAVA SWING .......................................................................................................80 实验 1 *****DPANE分层窗格 ............................................................................................ 80 实验2 使用表格显示日历 (81)实验 3 多文档界面(MDI) (84)3上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println(\你好,很高兴学习Java\【代码2】:System.out.println(\2.模板代码Hello.javapublic class Hello {public static void main (String args[ ]) {【代码1】//命令行窗口输出\你好,很高兴学习Java\ A a=new A(); a.fA(); } } class A {void fA() {【代码2】//命令行窗口输出\ } }实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString(\这是一个Java Applet 程序\【代码2】:g.drawString(\我改变了字体\2.模板代码FirstApplet.javaimport java.applet.*;4import java.awt.*;public class FirstApplet extends Applet {public void paint(Graphics g) {g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red);g.setFont(new Font(\宋体\【代码2】//在Java Applet中绘制一行文字:“我改变了字体” } }实验3 联合编译1.答案:【代码1】:System.out.println(\你好,只需编译我\【代码2】:System.out.println(\【代码3】:System.out.println(\【代码4】:System.out.println(\ C\2.模板代码模板1:Hello.javapublic class MainClass {public static void main (String args[ ]) {【代码1】//命令行窗口输出\你好,只需编译我\ A a=new A();a.fA(); B b=new B();b.fB(); } }模板2 :A.javapublic class A {void fA() {【代码2】//命令行窗口输出\ } }5。

Java 2实用教程课件(第3版第1章)

Java 2实用教程课件(第3版第1章)
public class Hello { public static void main (String args[ ]) { System.out.println("你好,很高兴学习Java"); } }
保存 将源文件保存到C:\1000中,并命名为Hello.java。注意不可写 成hello.java,因为Java语言是区分大小写的。源文件的命名规则是 这样的,如果源文件中有多个类,那么只能有一个类是public类。如 果有一个类是public类,那么源文件的名字必须与这个类的名字完全 相同,扩展名是.java。如果源文件没有public类,那么源文件的名字 只要和某个类的名字相同,并且扩展名是.java就可以了。
2实用教程 实用教程( Java 2实用教程(第3版) 教学课件 第1章
第一章 Java 语言入门
1.1 Java 的诞生 1.2 Java 的特点 1.3 安装 安装SUN公司的 公司的SDK 公司的 1.4 一个Java程序的开发过程 一个Java程序的开发过程 1.5 一个简单的 一个简单的Java应用程序的开发过程 应用程序的开发过程 1.6 一个简单的 一个简单的Java小应用程序(Java Applet) 小应用程序( 小应用程序 ) 1.7 什么是 什么是JSP
Java语言是一门很优秀的语言,具有面向对象、 与平台无关、安全、稳定和多线程等优良特性, 是目前软件设计中极为健壮的编程语言. Java语言的出现是源于对独立于平台语言的需 要,即这种语言编写的程序不会因为芯片的变 化而发生无法运行或出现运行错误。目前,随 着网络的迅速发展,Java语言的优势越显明显, Java已经成为网络时代一门非常重要的语言。

1.7 什么是 什么是JSP

[精品]Java2实用教程课件(第3版第1章)

[精品]Java2实用教程课件(第3版第1章)

解释型



C,C++等语言,都是针对CPU芯片进行编译,生 成机器代码,该代码的运行就和特定的CPU有 关。 Java不针对CPU进行编译,而是把程序编译成 字节代码。 字节代码可以在提供了Java虚拟机的任何系统 上被运行。
多线程


多线程是允许同时完成多个任务。 C++没有内置的线程机制,必须调用操作系统 的多线程功能来进行多线程程序的设计。 在Java核心类库中包含Thread类,同时Java运 行时系统提供了线程监视器和同步锁定机制。 多线程的其它优点包括更好的交互式回应能力 与实时执行行为。
JRE


JVM协同类加载器、字节代码校验器和Java类 库一起,组成了整个Java运行环境JRE。 一次编写随处运行 (Write Once Run Anywhere, WORA)
1.3 安装SUN公司的SDK


Sun公司要实现“编写一次,到处运行”(Write once, run anywhere)的目标,必须提供相应的Java运行平台, 目前Java运行平台主要分为3个版本: J2SE: Java 标准平台 J2EE:Java企业平台 J2ME:Java小型平台 学习Java必须从J2SE开始目前Sun公司已发布了SDK 的1.5测试版本(beta版),可以登录到Sun公司的网站: ,免费下载SDK1.5(例如:jdk1_5_0-beta2-windows-i586.exe)
1.4 一个Java程序的开发过程
1.5 一个简单的Java应用程序
public class Hello { public static void main (String args[ ]) { System.out.println("你好,很高兴学习Java"); } }

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义_张跃平编著(3版)习题解答__课后答案

java2实用教程耿祥义张跃平编著(3版)习题解答1-17章完整版.doc第一章习题1.需3个步骤:1)用文本编辑器编写源文件2)使用javac编译源文件,得到字节码文件3)应用程序使用解释器运行;小应用程序使用浏览器运行。

2.应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。

小应用程序必须有一个类是java.applet.Applet类的子类,该类称做主类。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

小应用程序的主类必须用public修饰。

3.java的源程序是由若干个书写形式互相独立的类组成的。

小应用程序的主类必须用public修饰。

应用程序中可以没有public类,若有的话可以是应用程序中的任何一个类。

一个java的源程序至多可以有一个public类。

Java源文件的名字可以和其中某个类的名字相同,扩展名是.java,但是,如果源程序中有public类,那么源文件的名字必须和这个public 类的名字相同,扩展名是.java。

4.属于操作,解答略。

第二章习题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。

标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。

3.boolean ,char,byte,short,int,long,float,double。

4.b=x;5.数组b的长度为4b[0]=16.属于操作题,解答略。

7.属于操作题,解答略。

8.public class E{ public static void main (String args[ ]) { char cStart='α',cEnd='ω';for(char c=cStart;c<=cEnd;c++){ System.out.print(" "+c);}}}第三章习题1.你爱她2.beep!!3.public class Xiti3_3{ public static void main(String args[]){ double sum=0,a=1;int i=1;while(i<=20){ sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}4.public class Xiti4{ public static void main(String args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break;}if(i>j/2){ System.out.print(" "+j);}}}}5.class Xiti5{ public static void main(String args[]){ double sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while(i<=20);System.out.println("使用do-while循环计算的sum="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}System.out.println("使用for循环计算的sum="+sum);}}6.class Xiti6{ public static void main(String args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)System.out.println("完数:"+i);}}}7.public class E Xiti7{ public static void main(String args[]){ int m=8,item=m,i=1;long sum=0;while(i<=10){ sum=sum+item;i++;item=item*10+m;}System.out.println(sum);for(i=1,sum=0,item=m;i<=10;i++){ sum=sum+item;item=item*10+m;}System.out.println(sum);}}8.public class E{ public static void main(String args[]){ int n=1;long sum=0;while(true){ sum=sum+n;n++;if(sum>=8888)break;}System.out.println("满足条件的最大整数:"+(n-1));}}第四章习题1.用该类创建对象时。

Java2第14章的PPT教学课件

Java2第14章的PPT教学课件

使用Graphics类必须依赖于某个组件。 根据用户声明的类与组件类Component的 关系划分,有两种绘图方式。
1)声明的类是组件类Component的子类 2)声明的类不是组件类Component的子类
2020/12/11
7
14.2 绘图程序设计
下面通过例子来说明绘图应用程序的设计方法, 读者可以通过分析实例来掌握绘图程序设计的技巧。
bnt1.addActionListener(frm);
bnt2.addActionListener(frm);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Button bt=(Button)e.getSource(); //获取被按下的按钮
//设置监听者
frm.addMouseListener(new MyMouseList()); //设置监听者
frm.setVisible(true);
}
2020/12/11
12
//定义静态内部类MyMouseList,并继承自MouseAdapter
static class MyMouseList extends MouseAdapter
{
static app14_1 frm=new app14_1(); static Button bnt1 =new Button(“画圆”); static Button bnt2 =new Button(“画椭圆”); int circle=0;
2020/12/11
9
public static void main(String args[])

Java2章

Java2章

3.4 循环语句
1.for循环语句 for 语句是java程序设计中最有用的循环语句 之一,for语句的格式如下: for(表达式1;表达式2;表达式3) { 若干语句 }
1. 计数型循环语句
计数型循环语句是根据循环变量的初值、终值和步长, 计数型循环语句是根据循环变量的初值、终值和步长, 决定循环体内语句的执行次数。 决定循环体内语句的执行次数。 【格式】FOR (<表达式1> ; <表达式2>; <表达式3>] 格式】 (<表达式 表达式1> <表达式 ; 表达式3>] 表达式2> { <命令序列> 命令序列> }
逻辑运算符包括:&&,||,!。其中&&、||为双 目运算符,实现逻辑与、逻辑或; !为单目运算符,实现逻辑非。 逻辑运算符的操作元必须是boolean型数据 逻辑运算符可以用来连接关系表达式。 例如: 2>8&&9>2的结果为false 2>8||9>2的结果为true。
短路现象
int x=1,y=1; ((x=1)==1)&&(++y==0) ((x=1)==0)&&(++y==0) ((x=1)==1)||(++y==0) ((x=1)==0)||(++y==0)
Java 2实用教程(第3版)教学课件 2实用教程(第3版)教学课件
运算符、 第3章 运算符、表达式和语句
3.1 运算符与表达式 3.2 语句概述 3.3 控制语句 3.4 循环语句 3.5 break和continue语句 和 语句

Java2实用教程课件(第2章)-PPT课件

Java2实用教程课件(第2章)-PPT课件

例子2 (效果如图2.2)
public class Example2_2 { public static void main (String args[ ]) { int c=2200; long d=8000; float f; double g=123456789.123456789; c=(int)d; f=(float)g; //导致精度的损失. System.out.print("c= "+c); System.out.println(" d= "+d); System.out.println("f= "+f); System.out.println("g= "+g); } }
2.1 标识符和关键字
用来标识类名、变量名、方法名、类型名、 数组名、文件名的有效字符序列称为标识符。 简单地说,标识符就是一个名字。 Java语言规定标识符由字母、下划线、美元 符号和数字组成,并且第一个字符不能是数 字字符。 关键字就是Java语言中已经被赋予特定意义 的一些单词。不可以把这类词作为名字来用。
常量 Java使用unicode字符集,uincode表 中的字符就是一个字符常量,字符常量需使 用单引号扩起,例如:'A'、 'b'、 '?' 、'!' 、'9'、 '好' 、'\t' 、'き'、 'δ' 变量 使用关键字char来定义字符变量,可 以一次定义几个,定义时也可以赋给初值: char x='A',tom='爽',jiafei; 对于char型变量,内存分配给2个字节,占16 位,最高位不用来表示符号 。

Java 2实用教程(第三版)字符串、时间、日期和数字 ppt

Java 2实用教程(第三版)字符串、时间、日期和数字 ppt
是 true。
5
h
public boolean startsWith(String s) public boolean endsWith(String s)
字符串对象调用startsWith(String s)方法,判 断当前字符串对象的前缀是否是参数指定的字 符串s .
字符串对象调用endsWith(String s) 方法,判 断当前字符串的后缀是否是字符串s .
6
h
public boolean regionMatches(int firstStart,String other,int ortherStart,int length)
字符串调用regionMatches(int firstStart,String other,int ortherStart,int length)方法,从当前 字符串参数firstStart指定的位置开始处,取长 度为length的一个子串,并将这个子串和参数 other指定的一个子串进行比较,其中,other 指定的子串是从参数othertStart指定的位置开 始,从other中取长度为length的一个子串。如 果两个子串相同该方法就返回true,否则返回 false。
如:
String tom=new String( "we are students");
String boy=new String( "We are students");
String jerry= new String("we are students"); tom.equals(boy)的值是false,tom.equals(jerry)的值
9
h
public String substring(int startpoint)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
drawImage(Image img,int x,int y,ImageObserver observer):
绘制的Image对象;x、y是要绘制指定图像的矩形 的左上角所处的位置,observer是加载图像时的图 像观察器。
14.9 制作 制作JPG图像 图像
制作JPG图像步骤如下: • 用java.awt.image包中的BufferedImage类(Image的 子类)建立一个BufferedImage对象。 • BufferedImage对象调用createGraphics()获得一个 Graphics2D对象。 • Graphics2D对象调用相应的方法在BufferedImage对 象中绘制图形或图像。 • JPEGCodec类调用 createJPEGEncoder(OutPutStream out) 返回一个 JPEGImageEncoder对象。 • JPEGImageEncoder对象调用encode(Image image)方 法将BufferedImage对象写入到输出流。
• • • • • • • • •
4.椭圆 drawOval(int x,int y,int w,int h) 绘制椭圆 fillOval(int x,int y,int w,int h) 填充椭圆 其中,参数x、y给出椭圆距x轴和y轴的距离,参数w、h给出椭 圆的宽和高。 5.圆弧 圆弧就是椭圆的一部分。 drawArc(int x,int y,int width,int height,int starAngle, int arcAngle) 绘制圆弧 fillArc(int x,int y,int width,int height,int starAngle,int arcAngle) 填充圆弧 参数x、y、width、heigth指定椭圆的位置和大小,参数 starAngle和 arcAngle的单位都是“度”。而起始角度的0度是3 点钟的方位。参数starAngle,arcAngle表示从starAngle的角 度开始逆时针或顺时针方向画arcAngle度的弧,当arcAngle是 正值时为逆时针,否则为顺时针。starAngle的值可以是负值, 例如-90度是6点的方位。
14.1绘制文本 绘制文本
• drawString(String s, int x, int y) 从参数x、 y指定的坐标位置处,从左向右绘制参数s指定 的字符串。 • drawChars(char data[],int offset, int length, int x, int y) 绘制data数组中的部分 字符,length指定数组中要连续绘制的字符的 个数,offset是首字符在数组中的位置。
14.7 绘制钟表
• 钟表可以显示当前本机的时间。在这里 我们要用到一个数学公式,如果一个圆 的圆心是(0,0),那么对于给定圆上的一 点(x,y),该点按顺时针旋转α弧度后的的 坐标(m,n)由下列公式计算: m=x×cos(α)- y×sin(α) n=y×cos(α)+x×sin(α)
14.8 绘制图像
第14章 图形与图像
• • • • • • • • • • • 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 14.10 14.11 绘制文本 绘制基本图形 建立字体 清除 Java 2D 图形的布尔运算 绘制钟表 绘制图像 制作JPG图像 制作 图像 XOR绘图模式 绘图模式 打印图形、 打印图形、图像
14.3 建立字体
• setFont(Font f) 设置字体。当绘制文 本时,Graphics对象用参数f指定的字体。
14.4 清除
• clearRect(int x,int y,int width,int height) 用背景色填充指定矩形以达到 清除该矩形的效果,也就是说当一个 Graphics对象使用该方法时,相当于在 使用一个“橡皮擦”。参数x、y是被清 除矩形的左上角的坐标;另外两个参数 是被清除矩形的宽和高。
• Toolkit类是一个抽象类,不能用构造方法直接创建 这样对象,但Java运行环境提供了一个Toolkit对 象,任何一个组件调用getToolkit()方法可以返 Tollkit 回这个对象的引用。Tollkit类有一个获取图像的方 法getImage(String s)。 • Graphics 类提供的方法:
• 5.绘制圆弧 • 使用java.awt.geom包中的Arc2D. Double类创建一个 圆弧对象: • Arc2D ellipse=new Arc2D. Double (50,30,300,50,0,100,Arc.PIE); • 上述语句创建了一个外接矩形的左上角坐标是(50,30), 宽是300,高是50的起始角是0度终止角是100度的饼 弧对象。其中,最后一个参数取值:Arc2D.OPEN、 Arc2D.CHORD、Arc2D.PIE决定弧是开弧、弓弧和 饼弧。
14.2绘制基本图形 绘制基本图形
• 1.直线 • drawLine(int x1,int y1,int x2,int y2) 绘制从起点(x1,y1)到终点 (x2,y2)的直线段 • 2.矩形 • drawRect (int x,int y,int w,int h) 绘制矩形 • fillRect (int x,int y,int w,int h) 填充矩形 • 矩形的左上角的坐标由参数x、y指定,矩形的宽和高由参数w,h指 定。 • 3.圆角矩形 • drawRoundRect(int x,int y,int w,int h,int arcW,int arcH) 绘制圆 角矩形 • fillRoundRect(int x,int y,int w,int h,int arcW,int arcH) 填充圆角 矩形 • 参数arcW、arcH指定圆角的尺寸,见图14.1中的4个黑角部分。
• 1.直线 • 使用java.awt.geom包中的Line2D的子类 Line2D.Double创建一个直线对象。如: • Line2D line=new Line2D.Double(12,20,100, 90); • 创建一条(12,20)到(100,90)直线对象。 • 2.矩形 • 使用java.awt.geom包中的Rectangle2D. Double类来创建一个矩形对象,如: • Rectangle2D rect=new Rectangle2D. Double (50,50,300,50.897); • 上述语句创建了一个左上角坐标是(50,50), 宽是300,高是50.987的一个矩形对象。
• • • •
6.绘制二次曲线和三次曲线 二次曲线可用二阶多项式 y(x)=ax2+bx+c 来表示。一条二次曲线需要三个点来确定。使用 java.awt.geom包中的QuadCurve2D.Double类来创建 一个二次曲线: • QuadCurve2D curve=new QuadCurve2D.Double (50,30,10,10,50,100); • 上述代码片段使用端点(50,30)和(50,100)及 控制点(10,10)创建了一条二次曲线。
14.6 图形的布尔运算
• 假设T1、T2是两个图形,那么 • T1和T2的布尔“与”(AND)运算的结果是两 个图形的重叠部分。 • T1和T2的布尔“或”(OR)运算的结果是两个 T1 T2 (OR) 图形的合并。 • T1和T2的布尔“差”(NOT)运算的结果是T1 去掉的结果是 两个图形的非重叠部分。
• 7.旋转图形 • 我们有时需要平移、缩放或旋转一个图形,我们可以使用 AffineTransform类来实现对图形的这些操作。 (1)首先使用AffineTransform类创建一个对象: AffineTransform trans=new AffineTransform(); 对象trans具有最常用的三个方法来实现对图形变换操作: translate(double a,double b) 将图形在x轴方向移动a 个单位 像素,y 轴方向移动b个像素单位。a是正值时向右移动,负值是向左移动;b是正 值时是向下移动,负值向上移动。 scale(double a,double b) 将图形在x轴方向缩放a倍,y轴方向缩放b倍。 rotate(double number,double x,double y) 将图形沿顺时针或逆时针以 (x,y)为轴点旋转number个弧度。 (2)进行需要的变换,比如要把一个矩形绕点(100,100)顺时针旋转60 度,那么就要先作好准备: trans.rotate(60.0*3.1415927/180,100,100); (3)把Graphics对象,比如g_2d设置为具有trans这种功能的“画笔”: g_2d.setTransform(trans); 假如rect是一个矩形对象,那么g_2d.draw(rect)画的就是旋转后的矩形
• Component类有一个方法public void paint(Graphics g),我们可以在其子类中重写 这个方法。当重写这个方法时,相应的java运 行环境将参数g实例化,对象g就可以在该组件 g g 的坐标系内绘制图形、图像等。组件都是矩形 形状,组件本身有一个默认的坐标系,组件的 左上角的坐标值是(0,0)。如果一个组件的宽 是200,高是80,那么,该坐标系中,x坐标 的最大值是200,y坐标的最大值是80。
14.5 Java 2D
• Java1.2给出了一个新类Graphics2D,它是 Graphics类的子类。一个Graphics2D对象把 直线、圆等作为一个对象来绘制,也就是说, 如果想用一个Graphics2D类型的“画笔”来 画一个圆的话,就必须先创建一个圆的对象。 我们仍需使用paint(Graphics g)方法来绘制, 只需将Graphics对象强制转化为Graphics2D 对象即可。
• 3.圆角矩形 • 使用java.awt.geom包中的RoundRectangle2D. Double类来创建一个圆角矩形对象: • RoundRectangle2D rect_round=new RoundRectangle2D. Double (50,50,300,50,8,5); • 上述语句创建了一个左上角坐标是(50,50),宽是300, 高是50,圆角的长轴和短轴分别为8和5的圆角矩形对 象。 • 4.椭圆 4 • 使用java.awt.geom包中的Ellipse2D. Double java.awt.geom Ellipse2D. Double类来创 建一个椭圆对象: • Ellipse2D ellipse=new Ellipse2D. Double (50,30,300,50); • 上述语句创建了一个外接矩形的左上角坐标是(50,30), 宽是300,高是50的椭圆对象。
相关文档
最新文档