Java大学实用教程(第二版)实验
最新java大学实用教程(第二版附课后练习答案第6章字符串与正则表达式ppt课件
System.out.println(date.toString());
System.out.println(stu.toString());
System.out.println(tv.toString());
}
}
class Student{
String name;
double score;
Student(String name,double score){
有时,我们需要将数字转化为字符串,可以使用String 类的下列类方法:
public String valueOf(byte n) public String valueOf(int n) public String valueOf(long n) public String valueOf(float n) public String valueOf(double n) 我们可以使用Long类中的下列方法,得到整数的各种进制数的 表示。
String 类还提供了一个方法: public char[] toCharArray() 字符串对象调用该方法可以初始化一个字符数组,该 数组的长度与字符串的长度相等,并将字符串对象的 全部字符复制到该数组中。 例子6_4在这个例子中用户在键盘上输入字符串,程序实 现将其加密然后输出的目的。
返回
5.字符串与基本数据的相互转化 ng包中的Integer类调用其类方法: public static int parseInt(String s) 可以将“数字”格式的字符串,如“12387”,转化为int型 数据。 类似地,使用ng包中的Byte、Short、Long、Float、 Double类调相应的类方法: public static byte parseByte(String s) public static short parseShort(String s) public static long parseLong(String s) public static double parseFloat(String s) public static double parseDouble(String s) 可以将“数字”格式的字符串,转化为相应的基本数据类型。
Java大学实用教程(第2版)[耿祥义等编著][电子教案]第2章
2.2
基本数据类型
1.逻辑类型 常量:true ,false。 变量的定义: 使用关键字boolean来定义逻辑变量,定义时也可 以赋给初值。 2.整数类型 常量:123,6000(十进制),077(八进制), 0x3ABC(十六进制)。 整型变量的定义分为4种
2.2
基本数据类型
(1)int 型 使用关键字int来定义int 型整型变量,定义时也 可以赋给初值,例如:int x,平均=9898;对于int型 变量,内存分配给4个字节(byte)。int型变量的取值 范围是: -231~231-1。 (2)byte 型 使用关键字byte 来定义byte 型整型变量。对于 byte型变量,内存分配给1个字节,占8位,byte型变量 的取值范围是-27~27-1。
2.5 数组
4.数组的初始化
创建数组后,系统会给每个数组元素一个默认的值,如,float型是0.0。 我们在声明数组时同时也还可以给数组的元素一个初始值,如: float boy[]={ 21.3f,23.89f,2.0f,23f,778.98f}; 数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相 同的元素。例如,对于 int [] a={1,2,3},b={4,5}; 数组变量a和b分别存放着不同的引用。但是,如果使用了赋值语句:a=b;那么,a中存 放的引用就和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元 素相同,即a[0],a[1]就是b[0],b[1],而最初分配给数组a的三个元素已不复存在 .
返回
2.5 数组
数组是相同类型的数据按顺序组成的一种复合数据类 型。通过数组名加数组下标来使用数组中的数据。下标从 0开始。 1.声明数组 声明数组包括数组的名字、数组包含的元素的数据类 型。 声明一维数组有下列两种格式: 数组元素类型 数组名字[ ]; 数组元素类型[ ] 数组名字;
Java 程序设计 实用教程(第2版) 电子教案(课件)
课件制作人:XXX
Oak
Oak就是Java语言的前身,这个名称源于 Gosling办公室的窗外正好有一棵橡树(Oak)。 这时的Oak已经具备安全性、网络通信、面向对 象、Garbage Collected、多线程等特性,是一 款相当优秀的程序语言。后来,由于去注册Oak 商标时,发现它已经被另一家公司注册,所以不 得不改名。要取什么名字呢,工程师们边喝咖啡 边讨论着,看看手上的咖啡,再想到印度尼西亚 有一个重要的盛产咖啡的岛屿,中文名叫爪哇, 于是将其改名为Java。
课件制作人:XXX
1.3.2 面向对象
Java语言以面向对象为基础。在Java语言中, 不能在类外面定义单独的数据和函数,所有对象 都要派生于同一个基类,并共享它所有功能,也 就是说,Java语言最外部的数据类型是对象,所 有的元素都要通过类和对象来访问。
课件制作人:XXX
1.3.3 可移植性
Java程序具有与体系结构无关的特性。这一 特征使Java程序可以方便地移植到网络的不同机 器。同时,Java的类库中也实现了针对不同平台 的接口,使这些类库可以移植。
课件制作人:XXX
Java SE
JavaSE是Java语言的标准版本,包含Java 基础类库和语法。它用于开发具有丰富的GUI (图形用户界面)、复杂逻辑和高性能的桌 Nhomakorabea应 用程序。
课件制作人:XXX
Java EE
JavaEE用于编写企业级应用程序。它是一 个标准的多层体系结构,可以将企业级应用程序 划分为客户层、表示层、业务层和数据层,主要 用于开发和部署分布式、基于组件、安全可靠、 可伸缩和易于管理的企业级应用程序。
课件制作人:XXX
课件制作人:XXX
Java ME
java大学实用教程 第二版 实验指导书
实验1 Java运行环境及简单应用程序开发一、实验目的(1)可以安装并配置Java运行环境。
(2)掌握Java中path和classpath的属性作用。
(3)可以编写一个简单的Java应用程序。
(4)掌握Java应用程序的开发流程。
二、实验内容及步骤1.安装并配置运行环境(1)任务安装JA V A SE,检查和设置环境变量path。
(2)步骤第一步:安装JA V A SE,安装后在安装目录下应有jdk和jre文件夹。
第二步:设置环境变量path,步骤参见教材P7。
第三步:检查环境变量path,可在命令提示符下使用命令javac –version 检查path是否配置好及jdk的版本。
第四步:如运行或编译程序时出错,可配置classpath,步骤参见教材P7。
(3)问题:程序中的主类如果不用public修饰,编译能通过吗?程序中的主类如果不用public修饰,能正确运行吗?编译器怎样提示丢失大括号的错误?编译器怎样提示语句丢失分号的错误?编译器怎样提示将System写成system这一错误?编译器怎样提示将String写成string这一错误?(4)实验报告将上述思考题写在实验报告上。
2. 编写简单的Java应用程序(1)任务任务一:在屏幕上输出“我喜欢学习java”。
任务二:在屏幕上输出出以下信息:******************************** java程序设计*******************************(2)步骤第一步:使用记事本或EDIT编写源程序,源程序内容参见教材P9例1-1。
第二步:保存并为源程序命名。
保存时若使用记事本,保存类型请选择“所有类型”,命名规则参见教材P9,保存类型为.java。
第三步:打开命令提示符,进入源程序保存的文件夹下,使用编译器对其进行编译:如javac Hello.java。
第四步:如编译时无任何提示,说明源程序无错误,可对生成的class文件进行解释并执行,如java Hello,此步省略.class。
JAVA2实用教程-1
{ float hight,weight; String head, ear, mouth; void speak (String s) { System.out.println(s) ; } }
23
class A
{ public static void main(String[ ] args) { People zhubajie; zhubajie=new People(); zhubajie.weight=200f; zhubajie.hight=1.70f; zhubajie.head=“大头”; zhubajie.ear="两只大耳朵" ; zhubajie.mouth="一只大嘴"; System.out.println ( “重量”+zhubajie.weight +“ 身高”+ zhubajie.hight) ; System.out.println ( zhubajie.head+zhubajie.mouth+zhubajie.ear) ; zhubajie.speak("师傅,咱们别去西天了,改去月宫吧."); } }
被公认为计算机史上的革命性编程语言
上一页 下一页 退 出
复旦大学IBM技术中心
11
为什么选择Java
Java非常适合软件开发, 尤其是团队协作
简单、面向对象、分布式、解释、稳固、安全、与体 系结构无关、可移植、高性能、多线程、动态
开放源代码(免费系统) 适合网络应用
Java 程序占的空间很小,在网上可以相当快地加载 安全性好:可以防止程序被偶然或者有意破坏
<applet code= " Boy.class" width=300 height=50> </applet>
Java大学实用教程(第2版)问答题答案1_3章
第一章问答题1.答:开发Java语言的动力源于对独立平台的需要,即用这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况;致力于开发一种可移植的、跨平台的语言,该语言能生成正确运行于各种操作系统、各种CPU芯片上的代码主要贡献者是James Gosling。
2.答:不正确。
Java提供的编译器把源程序编译成称为“字节码”的一个中间代码。
字节码是很接近机器码的二进制文件,不能被机器直接识别。
3.答:Java应用程序的主类必须含有public static void main(String args[])方法,作为应用程序运行的入口和起始点。
4.答:不正确。
可以没有public类。
Java程序的源文件中如果有多个类,那么只能有一个类是public类。
如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名为.java。
如果源文件没有public类,那么源文件的名字只要与某个类的名字相同,并且拓展名为.java就可以了。
5.答:正确。
Java Applet源文件的主类必须是public的。
按照源文件的命名规定,Java Applet源文件的名字一定与主类的名字相同。
6.答:如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,拓展名为.java;如果源文件没有public类,那么源文件的名字只要与某个类的名字相同,并且拓展名为.java就可以了。
7.答:源文件生成的字节码在运行时只将程序需要的字节码加载到内存中。
8.答:开发一个Java Applet程序需经过三个步骤:编写源文件、编译源文件生成字节码、通过浏览器加载运行字节码。
1)编写源文件。
一个Java Applet源文件也是由若干个类组成的,一个Java Applet源文件不再需要main方法,但必须有且只有一个类扩展了Applet类,即它是Applet类的子类(Applet类是系统提供的类),我们把这个类称作Java Applet源文件的主类。
JAVA大学实用教程(第二版)11
11.1
URL类
该URL对象使用的协议是HTTP,即用 户按照这种协议与指定的服务器通 信,该URL对象包含的地址是 “”,所包含的资源 是默认的资源(主页)。
11.1
URL类
public URL(String protocol,String host,String file) throws MalformedURLException——构造的 URL对象、协议、地址和资源分别由 参数protocol、host和file指定。
11.3 显示URL资源中的 HTML文件 public JEditorPane(URL initialPage) throws IOException public JEditorPane(String url) throws IOException 可以构造JEditorPane对象。后两个方 法使用参数initialPage或url指定 该对象最初显示的URL中的资源。
例11-1 读取URL资源
InputStream in=url.openStream(); while((n=in.read(b))!=-1){ String s=new String(b,0,n); area.append(s); } } catch(MalformedURLException e1){ text.setText(""+e1); return; } catch(IOException e1){ text.setText(""+e1); return; } } }
11.3 显示URL资源中的 HTML文件 JEditorPane对象调用方法: public void setpage(URL page) thows IOException方法可以显示新的URL中 的资源。 在例11-2中,用JEditorPane对象 显示网页。
java2实用教程实验代码及答案
上机实践1 初识JA V A (3)实验1一个简单的应用程序 (3)实验2一个简单的J A V A A PPLET程序 (3)实验3联合编译 (4)上机实践2 基本数据类型与控制语句 (5)实验1输出希腊字母表 (5)实验2回文数 (6)实验3猜数字游戏 (8)上机实践3 类与对象 (9)实验1三角形、梯形和圆形的类封装 (9)实验2实例成员与类成员 (12)实验3使用PACKAGE语句与IMPORT语句 (14)上机实践4 继承与接口 (16)实验1继承 (16)实验2上转型对象 (19)实验3接口回调 (21)上机实践5 字符串、时间与数字 (23)实验1S TRING类的常用方法 (23)实验2比较日期的大小 (24)实验3处理大整数 (25)上机实践6 组件及事件处理 (26)实验1算术测试 (26)实验2信号灯 (29)实验3布局与日历 (31)上机实践7 组件及事件处理2 (35)实验1方程求根 (35)实验2字体对话框 (38)实验3英语单词拼写训练 (41)上机实践8 多线程 (45)实验1汉字打字练习 (45)实验2旋转的行星 (47)实验3双线程接力 (51)上机实践9 输入输出流 (54)实验1学读汉字 (54)实验2统计英文单词字 (57)实验2读取Z IP文件 (61)上机实践10 JAV A 中的网络编程 (62)实验1读取服务器端文件 (62)实验2使用套接字读取服务器端对象 (64)实验3基于UDP的图像传输 (67)上机实践11 数据结构 (71)实验1扫雷小游戏 (71)实验2排序与查找 (76)实验3使用T REE S ET排序 (77)上机实践12 JAV A SWING (79)实验1JL AYERED P ANE分层窗格 (79)实验2使用表格显示日历 (80)实验3多文档界面(MDI) (83)上机实践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版)
Russian.java
public class Russian {
public static void main (String args[ ]) {
int startPosition=0,endPosition=0;
char cStart='а',cEnd='я';
【代码1】// cStart做int类型转换运算,并将结果赋值给startPosition
int c=f(Math.abs(a),Math.abs(b)); //计算最大公约数绽萬璉轆娛閬蛏鬮绾瀧。
numerator=a/c;
denominator=b/c;
if(numerator<0&&denominator<0){
-numerator;
denominator=-denominator;
int number=0,d5,d4,d3,d2,d1;
Scanner reader=new Scanner(System.in);
System.out.println("从键盘输入一个1至99999之间的数");
while(reader.hasNextInt()){
number=reader.nextInt();
System.out.printf("\n%d是2位数", number);
if(d1==d2)
System.out.printf("\t%d是回文数", number);
else
System.out.printf("\t%d不是回文数", number);
}
else if(d1!=0){
Java大学实用教程(第2版)书中 例子 程序源代码
Hello.javaclass A{void f(){System.out.println("I am A");}}class B{}public class Hello{public static void main (String args[ ]) {System.out.println("你好,很高兴学习Java");A a=new A();a.f();}}Tom.javapublic class Tom{int leg;String head;void cry(String s){System.out.println(s);}}class Example{public static void main(String args[]){ Tom cat;cat=new Tom();cat.leg=4;cat.head="猫头";System.out.println("腿:"+cat.leg+"条"); System.out.println("头:"+cat.head);cat.cry("我今天要和Jerry拼了");}}Ch10importjavax.swing.*;importjava.awt.event.InputEvent;importjava.awt.event.KeyEvent;public class Example10_1{public static void main(String args[]){FirstWindow win=new FirstWindow("一个简单的窗口");}}classFirstWindow extends JFrame{JMenuBarmenubar;JMenu menu;JMenuItem item1,item2;FirstWindow(String s){setTitle(s);setSize(160,170);setLocation(120,120);setVisible(true);menubar=new JMenuBar();menu=new JMenu("文件");item1=new JMenuItem("打开",new ImageIcon("open.gif"));item2=new JMenuItem("保存",new ImageIcon("save.gif"));item1.setAccelerator(KeyStroke.getKeyStroke('O'));item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_M ASK));menu.add(item1);menu.addSeparator();menu.add(item2);menubar.add(menu);setJMenuBar(menubar);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}}Java大学实用教程(第2版)[程序源代码].zip完全版:。
JAVA大学实用教程第二版_习题答案
Java大学实用教程第二版课后答案第一章作业题1.public class Hello{public static void main (String args[ ]){System.out.pintln(“早上好,good Morning”);}}2.import java.applet.*;import java.awt.*;public class Boy extends Applet {public void paint(Graphics g) {g.setColor(Color.blue);g.drawString("你好,hello",12,30);}}第二章作业题1.public class ZuoYe2_1{public static void main (String args[ ]){char c='а';System.out.println("字母"+c+"在unicode表中的顺序位置:"+(int)c);System.out.println("字母表:");while(c<='я'){System.out.print(" "+c);c=(char)(c+1);}}}2.import java.util.*;public class ZuoYe2_2{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);long chengji=1;int m=0;while(reader.hasNextInt()){int x=reader.nextInt();m=m+1;chengji=chengji*x;}System.out.println(m+"个数的乘积为"+chengji);}}第三章作业题1.import java.util.*;public class ZuoYe3_1{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);double y=0,x=0;x=reader.nextDouble();if(x<0)y=-1+2*x;else if(x==0)y=-1;else if(x>0)y=-1+3*x;System.out.println(y);}}2.public class ZuoYe3_2{public static void main(String args[]){int sum=0,m=3,n=7,a=1;while(a<=1000){if(a%m==0&&a%n==0)sum=sum+a;a++;}System.out.println("sum="+sum);}}3.public class ZuoYe3_3{public static void main(String args[]){long sum=0,a=8,item=a,n=10,i=1;for(i=1;i<=n;i++){ sum=sum+item;item=item*10+a;}System.out.println(sum);}}4.public class ZuoYe3_4{public static void main(String args[]){double sum=0,a=1,b=1,fuhao=1,item=a/b;int i=1;while(i<=1000){sum=sum+fuhao*item;i++;fuhao=fuhao*(-1);b=b+2;item=a/b;System.out.println("sum="+sum);}}5.public class ZuoYe3_5{public static void main(String args[]){double sum=0,a=1;int i=1;while(i<=20){if(i>=10)sum=sum+a;i++;a=a*i;}System.out.println("sum="+sum);}}8.第四章作业题1.class DengCha{int start,d;DengCha(){}DengCha(int start,int d){this.start=start;this.d=d;}void setStart(int s){start=s;void setD(int d){this.d=d;}int getSum(int n){int sum=0,i=1;while(i<=n){sum=sum+start;start=start+d;i++;}return sum;}}public class ZuoYe4_1{public static void main (String args[ ]){DengCha shulie=new DengCha(2,3);System.out.println(shulie.getSum(100));shulie.setStart(10);shulie.setD(5);System.out.println(shulie.getSum(9)); }}2.class Letter{public void printLetter(){for(char c='a';c<='z';c++)System.out.print(" "+c);}}public class ZuoYe4_2{public static void main (String args[ ]){Letter p=new Letter();p.printLetter();}}3.class SquareEquation{double a,b;static double c;double root1,root2;boolean boo;public SquareEquation(double a,double b,double c){this.a=a;this.b=b;SquareEquation.c=c;if(a!=0){boo=true;}else{boo=false;}}public void getRoots(){if(boo){System.out.println("是一元2次方程");double disk=b*b-4*a*c;if(disk>=0){root1=(-b+Math.sqrt(disk))/(2*a);root2=(-b-Math.sqrt(disk))/(2*a);System.out.printf("方程的根:%f,%f\n",root1,root2);}else{System.out.printf("方程没有实根\n");}}else{System.out.println("不是一元2次方程");}}public void setCoefficient(double a,double b,double c){this.a=a;this.b=b;SquareEquation.c=c;if(a!=0){boo=true;}else{boo=false;}}}public class ZuoYe4_3{public static void main(String args[ ]){SquareEquation equation1=new SquareEquation(4,5,1);SquareEquation equation2=new SquareEquation(3,5,-7);equation1.getRoots();equation2.getRoots();}}4.import java.util.Scanner;class A{int f(int m,int n){if(m*n<0){ System.out.println("有负数,程序退出");System.exit(0);}if(m<n){ int temp=m;m=n;n=temp;}int a=m,b=n;int r=m%n;while(r!=0){ m=n;n=r;r=m%n;}return n;}}class B{A a;B(){a=new A();}int g(int m,int n){int temp=a.f(m,n);return m*n/temp;}}public class ZuoYe4_4{public static void main (String args[ ]){Scanner reader=new Scanner(System.in);System.out.println("输入2个正整数,程序计算出它们的最大公约数和最小公倍数");System.out.print("输入第一个整数:");int m=reader.nextInt();System.out.print("输入第二个整数:");int n=reader.nextInt();A a=new A();B b=new B();System.out.println(m+"和"+n+"的最大公约数是"+a.f(m,n));System.out.println(m+"和"+n+"的最小公倍数是"+b.g(m,n));}}5.import java.applet.Applet;import java.awt.*;public class Example4_10 extends Applet{Button redbutton;public void init(){redbutton=new Button("我是一个红色的按钮");redbutton.setBackground(Color.red);redbutton.setForeground(Color.white);add(redbutton);}}第五章作业题1.import java.util.Scanner;class A{public int f(int m,int n){if(m<n){int temp=m;m=n;n=temp;}int r=m%n;while(r!=0){m=n;n=r;r=m%n;}return n;}}class B extends A{public int f(int m,int n){int division=super.f(m,n);return (m*n)/division;}}public class ZuoYe5_1{public static void main (String args[ ]){A a=new A();B b=new B();Scanner reader=new Scanner(System.in);System.out.println("输入2个整数,程序计算出它们的最大公约数和最小公倍数");System.out.print("输入第一个整数:");int m=reader.nextInt();System.out.print("输入第二个整数:");int n=reader.nextInt();if(m*n<0){ System.out.println("有负数,程序退出");System.exit(0);}System.out.printf("%d和%d的最大公约数是%d\n",m,n,a.f(m,n));System.out.printf("%d和%d的最小公倍数是%d\n",m,n,b.f(m,n));}}2.abstract class A{public abstract void f(int x);public abstract void g(int x,int y);public abstract double h(double x);}class A1 extends A{public void f(int x){System.out.println(x);}public void g(int x,int y){int z=x+y;System.out.println(z);}public double h(double x){return x*x;}}class A2 extends A{public void f(int x){System.out.println("Hello:"+x);}public void g(int x,int y){int z=x-y;System.out.println(z);}public double h(double x){return Math.sqrt(x);}}class A3 extends A{public void f(int x){System.out.println("你好:"+x);}public void g(int x,int y){double z=(double)x/y;System.out.println(z);}public double h(double x){return 1/x;}}public class ZuoYe5_2{public static void main(String args[ ]){A a=new A1();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A2();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A3();a.f(10);a.g(12,20);System.out.println(a.h(100));}}3.interface A{public abstract void f(int x);public abstract void g(int x,int y);public abstract double h(double x); }class A1 implements A{public void f(int x){System.out.println(x);}public void g(int x,int y){int z=x+y;System.out.println(z);}public double h(double x){return x*x;}}class A2 implements A{public void f(int x){System.out.println("Hello:"+x);}public void g(int x,int y){int z=x-y;System.out.println(z);}public double h(double x){return Math.sqrt(x);}}class A3 implements A{public void f(int x){System.out.println("你好:"+x);}public void g(int x,int y){double z=(double)x/y;System.out.println(z);}public double h(double x){return 1/x;}}public class ZuoYe5_3{public static void main(String args[ ]){A a=new A1();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A2();a.f(10);a.g(12,20);System.out.println(a.h(100));a=new A3();a.f(10);a.g(12,20);System.out.println(a.h(100));}}4.class Cubic{ double getCubic(int n){ return 0;}}abstract class Sqrt{ public abstract double getSqrt(int x);}class A{ void f(Cubic cubic){ double result=cubic.getCubic(3);System.out.println(result);}}public class ZuoYe5_4{ public static void main(String args[]){ A a=new A();a.f(new Cubic(){ double getCubic(int n){ return n*n*n;}});Sqrt ss=new Sqrt(){ public double getSqrt(int x){ return Math.sqrt(x);}};double m=ss.getSqrt(5);System.out.println(m);}}5.class IntegerException extends Exception{ String message;IntegerException(int m){ message="年龄"+m+"不合理";}public String toString(){ return message;}}class People{ private int age=1;public void setAge(int age) throws IntegerException{if(age>=160||age<=0)throw new IntegerException(age); //方法抛出异常,导致方法结束elsethis.age=age;}public int getAge(){ System.out.println("年龄"+age+"合理");return age;}}public class ZuoYe6_5{ public static void main(String args[]){ People wang=new People(),zhang=new People();try { wang.setAge(189);System.out.println(wang.getAge());}catch(IntegerException e){ System.out.println(e.toString());}try { zhang.setAge(28);System.out.println(zhang.getAge());}catch(IntegerException e){ System.out.println(e.toString());}}}第六章作业题1.import java.util.regex.*;import java.util.*;public class ZuoYe6_1{public static void main(String args[ ]){Scanner reader=new Scanner(System.in);String s1=reader.nextLine();Pattern p;Matcher m;p=pile("[24680]A[13579]{2}");m=p.matcher(s1);while(m.find()){String str=m.group();System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");System.out.println(str);}}}2.import java.util.regex.*;import java.util.*;public class ZuoYe4_1{public static void main(String args[ ]){Scanner reader=new Scanner(System.in);String s1=reader.nextLine();Pattern p;Matcher m;p=pile("\\d+");m=p.matcher(s1);while(m.find()){String str=m.group();System.out.print(str);}}}第七章作业题1.import java.util.*;public class ZuoYe7_2{ public static void main(String args[]){int year,month;{year=Integer.parseInt(args[0]);month=Integer.parseInt(args[1])+1;}catch(NumberFormatException e){year=2004;month=1;}System.out.println(" 日一二三四五六");Calendar 日历=Calendar.getInstance();日历.set(year,month,1);int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;String a[]=new String[星期几+31];for(int i=0;i<星期几;i++){ a[i]="**";}for(int i=星期几,n=1;i<星期几+31;i++){ if(n<=9)a[i]=String.valueOf(n)+" ";elsea[i]=String.valueOf(n) ;n++;}for(int i=0;i<a.length;i++){ if(i%7==0){ System.out.println("");}System.out.print(" "+a[i]);}}}2.class ZuoYe7_2{ public static void main(String args[]){int year1,month1,day1,year2,month2,day2;{year1=Integer.parseInt(args[0]);month1=Integer.parseInt(args[1]);day1=Integer.parseInt(args[2]);year2=Integer.parseInt(args[3]);month2=Integer.parseInt(args[4]);day2=Integer.parseInt(args[5]);}catch(NumberFormatException e){year1=2009;month1=0;day1=1;year2=2008;month2=0;day2=1;}Calendar calendar=Calendar.getInstance();calendar.set(year1,month1,day1);long timeYear1=calendar.getTimeInMillis();calendar.set(year2,month2,day2);long timeYear2=calendar.getTimeInMillis();long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天");}}3.import java.math.*;public class ZuoYe4_1{public static void main(String args[]){BigInteger chengji=new BigInteger("1"),ONE=new BigInteger("1"),i=ONE,m=new BigInteger("10");while(pareTo(m)<=0){chengji=chengji.multiply(i);i=i.add(ONE);}System.out.println(chengji);}}4.import java.util.*;public class ZuoYe7_4{public static void main(String args[]){HashSet<Integer> A=new HashSet<Integer>(),B=new HashSet<Integer>(),tempSet=new HashSet<Integer>();A.add(new Integer(1));A.add(new Integer(2));A.add(new Integer(3));A.add(new Integer(4));B.add(new Integer(1));B.add(new Integer(3));B.add(new Integer(7));B.add(new Integer(9));B.add(new Integer(11));tempSet=(HashSet<Integer>)A.clone();tempSet.retainAll(B);System.out.println("交:");Iterator<Integer> iter=tempSet.iterator();while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}tempSet=(HashSet<Integer>)A.clone();tempSet.addAll(B);iter=tempSet.iterator();System.out.println("并:");while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}tempSet=(HashSet<Integer>)A.clone();tempSet.removeAll(B);System.out.println("差:");iter=tempSet.iterator();while(iter.hasNext()){Integer te=iter.next();System.out.printf("%d,",te.intValue());}}}5.import java.util.*;class MyKey implements Comparable{double number=0;MyKey(double number){this.number=number;}public int compareTo(Object b){MyKey st=(MyKey)b;if((this.number-st.number)==0){return -1;}else{return (int)((this.number-st.number)*1000);}}}class 硬盘{int size;double price;硬盘(int n, double p){size=n;price=p;}}public class ZuoYe4_1{public static void main(String args[ ]){int [] size={10,3,7,12,10,22,100,4,6,2};double [] price={1.2,9.56,2.4,9.3,16.77,12.66,7.4,5.5,5.6,8.9,1.9};硬盘[] s=new 硬盘[10];for(int i=0;i<s.length;i++)s[i]=new 硬盘(size[i],price[i]);TreeMap<MyKey,硬盘> treemap=new TreeMap<MyKey,硬盘>();for(int i=0;i<s.length;i++)treemap.put(new MyKey(s[i].size),s[i]);int number=treemap.size();System.out.println("树映射中有"+number+"个对象:");Collection<硬盘> collection=treemap.values();Iterator<硬盘> iter=collection.iterator();while(iter.hasNext()){硬盘te=iter.next();System.out.println(te.size+","+te.price);}treemap.clear();for(int i=0;i<s.length;i++)treemap.put(new MyKey(s[i].price),s[i]);number=treemap.size();System.out.println("树映射中有"+number+"个对象:");collection=treemap.values();iter=collection.iterator();while(iter.hasNext()){硬盘te=iter.next();System.out.println(te.size+","+te.price);}}}第八章作业题1.属于操作题目,省略2.参见例子8-23.参见例子8-34.参见例子8-10第九章作业题1.import java.io.*;import java.awt.*;import java.awt.event.*;public class ZuoYe9_1{ public static void main(String args[]){ int b;byte tom[]=new byte[25];try{ File f=new File("Example.java");FileInputStream in=new FileInputStream(f);while((b=in.read(tom,0,25))!=-1){ String s=new String (tom,0,b);System.out.print(s);}in.close();}catch(IOException e){ System.out.println("File read Error"+e);}}}2.import java.io.*;import java.util.*;public class ZuoYe9_2{public static void main(String args[]){Scanner reader=new Scanner(System.in);int b;try{FileOutputStream writefile=new FileOutputStream("line.txt");int line=1,n=10;System.out.println("输入"+n+"行文本,并存入磁盘:");while(line<=n){String s=reader.nextLine();byte buffer[]=s.getBytes();writefile.write(buffer,0,buffer.length);line++;}writefile.close();}catch(IOException e){System.out.println("Error "+e);}}}3.import java.io.*;public class ZuoYe9_3{public static void main(String args[ ]){int n=-1;CharArrayWriter out=new CharArrayWriter();for(char c='а';c<='я';c++){out.write(c);}CharArrayReader in=new CharArrayReader(out.toCharArray());try{ while((n=in.read())!=-1){if(n%2==0){System.out.printf("\n");}System.out.printf("\t位置%d,字符\'%c\'",n,(char)n);}}catch(IOException e){}}}4.import java.io.*;import java.util.*;public class ZuoYe9_4{public static void main(String args[]){try{FileOutputStream fos=new FileOutputStream("jerry.dat");DataOutputStream out_data=new DataOutputStream(fos);Scanner reader=new Scanner(System.in);for(int i=1;i<=10;i++){int x=reader.nextInt();out_data.writeInt(x);}out_data.close();}catch(IOException e){}try{FileInputStream fis=new FileInputStream("jerry.dat");DataInputStream in_data=new DataInputStream(fis);for(int i=1;i<=10;i++){int m=in_data.readInt();System.out.print(" "+m);}in_data.close();}catch(IOException e){}}}5.import java.io.*;import java.util.*;class Student implements Serializable{String name ;int number;Student(String name,int number){=name;this.number=number;}}public class ZuoYe9_5{public static void main(String args[]){List<Student> list=new LinkedList<Student>();List<Student> cloneList=null;for(int k=1;k<=12;k++)list.add(new Student("I am "+k,k));try{ FileOutputStream fileOut=new FileOutputStream("a.txt");ObjectOutputStream objectOut=new ObjectOutputStream(fileOut);objectOut.writeObject(list);FileInputStream fileIn=new FileInputStream("a.txt");ObjectInputStream objectIn=new ObjectInputStream(fileIn);cloneList=(List)objectIn.readObject();}catch(Exception event){System.out.println(event);}Iterator iter=cloneList.iterator();while(iter.hasNext()){Student te=(Student)iter.next();System.out.println(te.number+","+);}}}6.import java.io.*;public class ZuoYe9_6{ public static void main(String args[]){File f=new File("Xiti12_6.java");try{ RandomAccessFile random=new RandomAccessFile(f,"rw");random.seek(0);long m=random.length();while(m>=0){ m=m-1;random.seek(m);int c=random.readByte();if(c<=255&&c>=0){ System.out.print((char)c);}else{ m=m-1; //一个汉字占2个字节random.seek(m);byte cc[]=new byte[2];random.readFully(cc);System.out.print(new String(cc));}}random.close();}catch(IOException ee){}}}5.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_5{ public static void main(String args[]){ ComputerFrame fr=new ComputerFrame();fr.setTitle("计算");}}class ComputerFrame extends JFrame implements ActionListener{ JTextField text1,text2,text3;JButton button1,button2,button3,button4;JLabel label;public ComputerFrame(){setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(10);text3=new JTextField(10);label=new JLabel(" ",JLabel.CENTER);label.setBackground(Color.green);add(text1);add(label);add(text2);add(text3);button1=new JButton("加");button2=new JButton("减");button3=new JButton("乘");button4=new JButton("除");add(button1);add(button2);add(button3);add(button4);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);setSize(400,320);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); validate();}public void actionPerformed(ActionEvent e){ double n;if(e.getSource()==button1){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1+n2;text3.setText(String.valueOf(n));label.setText("+");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button2){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1-n2;text3.setText(String.valueOf(n));label.setText("-");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button3){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1*n2;text3.setText(String.valueOf(n));label.setText("*");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button4){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1/n2;text3.setText(String.valueOf(n));label.setText("/");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}validate();}}6.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_6{ public static void main(String args[]){ new WindowPanel();}}class Mypanel extends JPanel implements ActionListener { JButton button;JTextField text;Mypanel(){ button=new JButton(" ");text=new JTextField(12);add(button);add(text);button.addActionListener(this);}public void actionPerformed(ActionEvent e){ String name=text.getText();if(name.length()>0)button.setText(name);validate();}}class WindowPanel extends JFrame{ Mypanel panel1,panel2;WindowPanel(){ panel1=new Mypanel();panel2=new Mypanel();panel1.setBackground(Color.red);panel2.setBackground(Color.blue);add(panel1,BorderLayout.SOUTH);add(panel2,BorderLayout.NORTH);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}7.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_7{ public static void main(String args[]){ new WindowColor();}}class WindowColor extends JFrame{ JButton button;JTextField text;JComboBox list;WindowColor(){ setLayout(new FlowLayout());button=new JButton("hello");button.setBackground(Color.pink);button.setForeground(new Color(12,26,200));text=new JTextField("how are you");text.setBackground(Color.yellow);text.setForeground(new Color(200,26,20));list=new JComboBox();list.addItem("Hello");list.addItem("Java");list.setBackground(Color.cyan);list.setForeground(new Color(100,100,100));add(list);add(button);add(text);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}8.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Xiti8_8{ public static void main(String args[]){ MoveFrame f=new MoveFrame();f.setBounds(12,12,300,300);f.setVisible(true);f.setTitle("移动");f.validate();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}class MoveFrame extends JFrame implements ActionListener{ JButton controlButton,movedButton;public MoveFrame(){ controlButton=new JButton("单击我运动另一个按钮");controlButton.addActionListener(this);movedButton=new JButton();movedButton.setBackground(new Color(12,200,34));setLayout(null);add(controlButton);add(movedButton);controlButton.setBounds(10,30,180,30);movedButton.setBounds(100,100,20,20);}public void actionPerformed(ActionEvent e){ int x=movedButton.getBounds().x;int y=movedButton.getBounds().y;x=x+5;y=y+1;movedButton.setLocation(x,y);if(x>200){ x=100;y=100;}}}9.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E{ public static void main(String args[]){ JFrame fr=new JFrame();fr.add(new LP(),BorderLayout.CENTER);fr.setVisible(true);fr.setBounds(12,12,300,300);fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.validate();}}class LP extends JLayeredPane implements MouseListener,MouseMotionListener { JButton button[];JTextField text[];int x,y,a,b,x0,y0;LP(){ setLayout(new FlowLayout());button=new JButton[8];for(int k=0;k<button.length;k++){ button[k]=new JButton("用鼠标拖动我");add(button[k]);button[k].addMouseListener(this);button[k].addMouseMotionListener(this);}text=new JTextField[10];for(int k=0;k<text.length;k++){ text[k]=new JTextField("用鼠标拖动我");text[k].addMouseListener(this);add(text[k]);text[k].addMouseMotionListener(this);}addMouseMotionListener(this);}public void mousePressed(MouseEvent e){ Component com=null;com=(Component)e.getSource();setLayer(com,JLayeredPane.DRAG_LAYER);a=com.getBounds().x;b=com.getBounds().y;x0=e.getX(); //获取鼠标在事件源中的位置坐标y0=e.getY();}public void mouseReleased(MouseEvent e){ Component com=null;com=(Component)e.getSource();setLayer(com,JLayeredPane.DEFAULT_LAYER);Component component[]=this.getComponents();for(int k=0;k<component.length;k++){ Rectangle rect1=component[k].getBounds();Rectangle rect2=com.getBounds();if(rect1.intersects(rect2)&&com!=component[k]){ component[k].setVisible(false);//this.remove(component[k]);}}}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseClicked(MouseEvent e){}public void mouseMoved(MouseEvent e){}public void mouseDragged(MouseEvent e){ Component com=null;if(e.getSource() instanceof Component){ com=(Component)e.getSource();a=com.getBounds().x;b=com.getBounds().y;x=e.getX(); //获取鼠标在事件源中的位置坐标y=e.getY();a=a+x;b=b+y;com.setLocation(a-x0,b-y0);}}}10.import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E{ public static void main(String args[]){ JFrame fr=new JFrame();fr.add(new MoveButton(),BorderLayout.CENTER);fr.setVisible(true);fr.setBounds(12,12,300,300);fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr.validate();}}class MoveButton extends JLayeredPane implements KeyListener { JButton b[]=new JButton[8];int x,y;MoveButton(){ setLayout(new FlowLayout());for(int i=0;i<8;i++){ b[i]=new JButton(""+i);b[i].addKeyListener(this);add(b[i]);}}public void keyPressed(KeyEvent e){ int moveDistance=1;Component com=(Component)e.getSource();int x=(int)com.getBounds().x;int y=(int)com.getBounds().y;Component component[]=this.getComponents();if(e.getKeyCode()==KeyEvent.VK_UP)。
Java程序设计教程与实训(第2版):实训参考答案
实训参考答案【实训内容】见第十章。
【参考答案】10.1 //////////////////////////////////////////////////////////public class Exer10_1{public static void main(String [] args){//System.out.print("Hello "); //第一次运行//System.out.print("Hello \n"); //第二次运行System.out.print("Hello\n李明"); //第二次运行也可以这样写//System.out.print("李明");}}10.2 //////////////////////////////////////////////////////////public class Exer10_2 {public static void main (String args[ ]) {char chinaWord='你', japanWord='ぁ';int p1=20328,p2=12358;System.out.println("汉字\'你\'字在unicode表中的顺序位置:"+(int)chinaWord);System.out.println("日语\'ぁ\'字在unicode表中的顺序位置:"+(int)japanWord);System.out.println("unicode表中第20328位置上的字符是:"+(char)p1);System.out.println("unicode表中第12358位置上的字符是:"+(char)p2);}}10.3(1) //////////////////////////////////////////////////////////public class Exer10_3_1{public static void main(String[] args){int val1=5;int val2=6;int result=0;char op='-';switch(op){case '+' :result=val1+val2;break;case '-' :result=val1-val2;break;case '*' :result=val1*val2;break;case '/' :result=val1/val2;break;case '%' :result=val1%val2;default :System.out.println("没有找到匹配的操作符");}System.out.println("计算结果为:"+val1+op+val2+"="+result);}}(2) //////////////////////////////////////////////////////////class Exer10_3_2{public static void main(String args[]) {int sum=0,i,j;for( i=1;i<=50;i++){ //计算1+3+5+7+9…if(i%2==0){continue;}sum=sum+i;}System.out.println("sum="+sum);for( j=2;j<=50;j++){ //求50以内的素数for( i=2;i<=j/2;i++){if(j%i==0){break;}}if(i>j/2){System.out.println(""+j+"是素数");}}}}10.4 /////////////////////////////////////public class Exer10_4 {public static void main(String args[]) {System.out.println(dengcha(3));System.out.println(dengcha(5));System.out.println(dengcha(10));}public static int dengcha(int n) {return 1+(n-1)*4;}}10.5 ///////////////////////////////class Computer {private String pc_name; //计算机品牌private String pc_color; //计算机颜色private String pc_type; //CPU型号private String pc_ram; //内存容量private String pc_harddisk; //硬盘容量private int pc_price; //价格private String pc_state; //工作状态public Computer() //默认构造函数,不带参数{ pc_name=""; //计算机品牌pc_color=""; //计算机颜色pc_type=""; //CPU型号pc_ram=""; //内存容量pc_harddisk=""; //硬盘容量pc_price=0; //价格pc_state=""; //计算机状态}public Computer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//带参数的构造函数{ pc_name=aname; //计算机品牌初值pc_color=acolor; //计算机颜色初值pc_type=atype; //CPU型号初值pc_ram=aram; //内存容量初值pc_harddisk=aharddisk; //硬盘容量初值pc_price=aprice; //价格初值pc_state=astate; //计算机状态初值}void setcomputer(String aname,String acolor,String atype,String aram,String aharddisk,int aprice,String astate)//设置属性值的方法{ pc_name=aname; //计算机品牌pc_color=acolor; //计算机颜色pc_type=atype; //CPU型号pc_ram=aram; //内存容量pc_harddisk=aharddisk; //硬盘容量pc_price=aprice; //价格pc_state=astate; //计算机状态}void setstate(String astate) //设置状态属性的方法{ pc_state=astate;}void setram(String aram) //设置内存属性的方法{ pc_ram=aram;}public String pc_open() //定义计算机打开的方法{ setstate("打开");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println(" * ");System.out.println(" * * * ");System.out.println("* * * * *");System.out.println("-------------------");return pc_state;}public String pc_close() //定义计算机关闭的方法{ setstate("关闭");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("请稍后,正在关闭计算机");System.out.println("-------------------");return pc_state;}public String pc_hitch() //定义计算机挂起的方法{ setstate("挂起");System.out.println(pc_name+"_工作状态:"+pc_state);System.out.println("启动计算机请按Ctrl+Alt+Delete键");System.out.println("-------------------");return pc_state;}void printcomputer() //输出的方法{ if(pc_price>0)System.out.println("计算机品牌:"+pc_name+" 颜色:"+pc_color+" CPU型号:"+pc_type+" 内存容量:"+pc_ram+"\n硬盘容量:"+pc_harddisk+" 价格:"+pc_price+" 工作状态:"+pc_state);elseSystem.out.println("计算机品牌: 未知"+" 工作状态:"+pc_state);System.out.println("---------------------------------");}}class Mycomputer {public static void main(String[] args) {Computer stu1=new Computer(); //创建计算机类的对象stu1;//调用方法setcomputer设置计算机信息stu1.setcomputer("Dell","黑","PentiumⅣ","256k","20G",7096," 良好");stu1.printcomputer(); //输出计算机的信息Computer stu2=new Computer(); //创建计算机类的对象stu2;stu2.setcomputer("联想","黑","PentiumⅣ","512k","40G",7296," 良好");stu2.printcomputer(); //输出计算机的信息stu1.pc_open();stu2.pc_close();stu1.pc_hitch();stu2.setram("1024");stu1.printcomputer(); //输出计算机的信息stu2.printcomputer(); //输出计算机的信息Computer stu3=new Computer();stu3.setstate("打开");stu3.printcomputer(); //输出计算机的信息}}10.6 //////////////////////////////////package mypackage.factorial;class Factorial{private int n;public Factorial(int n){this.n=n;}private boolean testN(int n){if (n>=0){return true;}else{System.out.println("请输入非负数!");return false;}}public int Factorial(int n) {if (n==0) return 1;return n*Factorial(n-1);}public void print(){if (testN(n)) System.out.println(n+"!="+Factorial(n));}}////////////////////////////////////////////////////////////////////package mypackage.test;import mypackage.factorial.Factorial;class TestFactorial {public static void main(String [] args) {int n=Integer.parseInt(args[0]);Factorial f=new Factorial(n);f.print();}}10.7(1) //////////////////////////////////////////////////////////class Employee {int id;private String name;public void setId(int id) {this.id=id;}public void setName(String name) {=name;}}class Manager extends Employee{public void setId(byte id){this.id=id;}private int departmentID;public void setDepartmentID(int id) {departmentID=id;}}public class ExtendsExam1 {public static void main(String [] args) {Employee e=new Manager();}}(2) //////////////////////////////////////////////////////////class A{static int a=10;static int id=1;static String go(){return "20";}public static String fun(){return "20";}}class B extends A{}public class ExtendsExam2{public static void main(String [] args) {Employee e=new Manager();System.out.println("B.a="+B.a);System.out.println("B.id="+B.id);System.out.println("B.go()="+B.go());System.out.println("B.fun="+B.fun());}}(3) //////////////////////////////////////////////////////////class SuperClass {int x;SuperClass( ) {x=3;System.out.println("in SuperClass : x=" +x);}void doSomething( ){System.out.println(" in SuperClass.doSomething()");}}class SubClass extends SuperClass{int x;SubClass( ) {super( );x=5;System.out.println(" in SubClass :x=" +x);}void doSomething( ) {super.doSomething( );System.out.println(" in SubClass.doSomething()");System.out.println(" super.x="+super.x+" sub.x="+x);}}public class ExtendsExam3 {public static void main(String args[]) {SubClass sub=new SubClass();sub.doSomething();}}10.8(1) //////////////////////////////////////////////////////////class MethodOverload{void receive(int i) {System.out.println("excuted receive(int i)");}void receive(int x, int y) {System.out.println("excuted receive(int x, int y)");}void receive(double d) {System.out.println("excuted receive(double d)");}void receive(String s) {System.out.println("excuted receive(String s)");}}public class MethodOverloadExam1 {public static void main(String args[]) {MethodOverload mo=new MethodOverload();mo.receive(1);mo.receive(2,3);mo.receive(12.56);mo.receive("very interesting, isn’t it?");}}(2) //////////////////////////////////////////////////////////public class xEmployee { //一个构造函数使用另一个构造函数的某方面效果String name;int salary;public xEmployee(String s, int n) {name = s;salary = n;}public xEmployee(String s){this(s, 0);//……// this调用必须作为构造方法中第一个语句}public xEmployee(int n){this("Unknown", n);//……// this调用必须作为构造方法中第一个语句}public xEmployee(){this( "Unknown" );//……// this调用必须作为构造方法中第一个语句}public static void main(String [] args) {xEmployee s1=new xEmployee ("欧阳振国",5200);xEmployee s2=new xEmployee ("欧阳振国");xEmployee s3=new xEmployee (6000);xEmployee s4=new xEmployee ();System.out.println( +"---"+s1.salary);System.out.println( +"---"+s2.salary);System.out.println( +"---"+s3.salary);System.out.println( +"---"+s4.salary);}}(3) //////////////////////////////////////////////////////// 错误原因:SubClass中的fun() 无法覆盖SuperClass中的fun(),被覆盖的方法为final ////////////////////////////////////////////////////////////class SuperClass {int i=1;public final int fun() {return 1;}public void go() {System.out.println(fun());}}class SubClass extends SuperClass {int i=2;public int fun() {return 2;}}public class MethodOverrideExma{public static void main(String [] args) {SuperClass s=new SubClass();s.go();}}10.9(1) ///////////////////////////////////////////////interface A{}interface B{}interface C extends A{}interface D extends A,B,C{}(2) ///////////////////////////////////////////////interface V olume{double calculateV olume();}class Circle implements V olume{double r;public Circle(double r){this.r=r;}public double calculateV olume(){return 3.14*r*r*r;}}class Rectangle implements V olume{double l,w,h;public Rectangle(double l,double w,double h){this.l=l;this.w=w;this.h=h;}public double calculateV olume(){return l*w*h;}}class Test{public static void main (String [] args){Circle c=new Circle(2);System.out.println ("球的体积额为:"+c.calculateV olume());Rectangle r=new Rectangle(1,2,3);System.out.println ("长方体的体积为:"+r.calculateV olume());}}10.10 ///////////////////////////////////////////////class Employee{String name;int number;int age;int salary;public Employee(String name,int number,int age,int salary){ =name;this.number=number;this.age=age;this.salary=salary;}}class EmployeeTest{static Employee [] e=new Employee[5];public static int average(String type){int sum=0;for (int i=0;i<e.length;i++){if (type.equals("age")) sum=sum+e[i].age;if (type.equals("salary")) sum=sum+e[i].salary;}return sum/e.length;}public static int minimum(String type){int min=0;if (type.equals("age")){min=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age<min) min=e[i].age;}}if (type.equals("salary")){min=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary<min) min=e[i].salary;}}return min;}public static int maximum(String type){int max=0;if (type.equals("age")){max=e[0].age;for (int i=1;i<e.length;i++){if (e[i].age>max) max=e[i].age;}}if (type.equals("salary")){max=e[0].salary;for (int i=1;i<e.length;i++){if (e[i].salary>max) max=e[i].salary;}}return max;}public static void main(String [] args){e[0]=new Employee("张三",1,25,1500);e[1]=new Employee("李四",2,30,2800);e[2]=new Employee("王五",3,45,4500);e[3]=new Employee("刘六",4,28,2400);e[4]=new Employee("赵七",5,32,3000);if (args.length==2){if (args[0].equals("age")){ if(args[1].equals("min")) {System.out.println("最小年龄是"+minimum("age"));}else if(args[1].equals("max")) {System.out.println("最大年龄是"+maximum("age"));}else if(args[1].equals("avg")) {System.out.println("平均年龄是"+average("age"));}elseSystem.out.println("输入不正确,请正确输入!");}else if(args[0].equals("salary")){if(args[1].equals("min") ) {System.out.println("最低工资是"+minimum("salary"));}else if(args[1].equals("max")) {System.out.println("最高工资是"+maximum("salary"));}else if (args[1].equals("avg")) {System.out.println("平均工资是"+average("salary"));}elseSystem.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}else System.out.println("输入不正确,请正确输入!");}}10.11(1)///////////////////////////////////////////////class Exer10_11_1{public static void main (String [] args){String s1=args[0];String s2=args[1];if(s1.equals(s2)){System.out.println ("s1==s2");}else if(pareTo(s2)>0){System.out.println ("s1>s2");}else{System.out.println ("s1<s2");}}}(2)///////////////////////////////////////////////class Exer10_11_2{public static void main (String [] args){StringBuffer s=new StringBuffer("Hello java!");System.out.println ("原始字符串:"+s);s=s.replace(6,s.length(),"world!");System.out.println ("替换后:"+s);s=s.insert(6,"new ");System.out.println ("插入后:"+s);s=s.delete(6,10);System.out.println ("删除后:"+s);s=s.append(" Hello java!");System.out.println ("追加后:"+s);s=s.reverse();System.out.println ("翻转后:"+s);}}10.12(1)///////////////////////////////////////////////class Exer10_12_1{public static void main (String [] args){try {String s=args[0];}//此处可能产生的异常类,应该为ArrayIndexOutOfBoundsExceptioncatch (NumberFormatException ex) {System.out.println ("格式转换错误!");}}}// 使用如下的方式之一,可以捕获并处理异常// catch (ArrayIndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (IndexOutOfBoundsException ex) {// System.out.println ("格式转换错误!");// }///////////////// catch (Exception ex) {// System.out.println ("格式转换错误!");// }//ng.Object// ng.Throwable// ng.Exception// ng.RuntimeException// ng.IndexOutOfBoundsException// ng.ArrayIndexOutOfBoundsException(2)//////////////////////////////////////////////////class Exer10_12_2{public static void main (String [] args){try {int i=Integer.parseInt(args[0]);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}}}(3)//////////////////////////////////////////////////class Exer10_12_3{public static void main (String [] args){try {//System.exit(0); //在此处执行System.exit()方法,finally块无法执行String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");System.exit(0);//如果出现IndexOutOfBoundsException异常,会执行System.exit()方法//则finally块无法执行//return;}catch (NumberFormatException ex) {System.out.println ("请输入整数!");return;//如果出现NumberFormatException异常,会执行finally块}finally {System.out.println ("执行finally块!");}}}(4)//////////////////////////////////////////////////class Exer10_12_4{public static void main (String [] args){try {String s=args[0];int i=Integer.parseInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println ("请输入整数!");}catch(Exception ex){System.out.println ("产生其他异常!");}}}(5)//////////////////////////////////////////////////class Exer10_12_5{public static int getInt(String s) throws NumberFormatException{for(int i=0;i<s.length();i++){if(s.charAt(i)<'0' || s.charAt(i)>'9'){throw new NumberFormatException("请输入数值型数据!");}}int i=Integer.parseInt(s);return i;}public static void main (String [] args){try {String s=args[0];int i=getInt(s);}catch(IndexOutOfBoundsException ex){System.out.println ("请输入数据!");}catch (NumberFormatException ex) {System.out.println (ex.getMessage());}catch(Exception ex){System.out.println ("产生其他异常!");}}}10.13 //////////////////////////////////////////////////import java.io.*;import java.util.*;class Exer10_13{public static void main (String [] args){String dir;String cdate,size,name;int filecount=0,dircount=0;long allsize=0,longsize=0;try{dir=args[0]; //dir是已定义的String对象}catch(ArrayIndexOutOfBoundsException e){dir="./"; //考虑没有参数传入时,dir的值是当前目录}File f=new File(dir);if(!f.exists()){System.out.println("文件或目录不存在!");System.exit(0);}if(f.isFile()){long l=stModified();Date date=new Date(l);cdate=date.toLocaleString();long len =f.length();allsize+=len;name=f.getName();filecount++;System.out.println (cdate+" "+len+" "+name);}else{File [] list=f.listFiles();for(int i=0;i<list.length;i++){if(list[i].isDirectory()){long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();name=list[i].getName();dircount++;System.out.println (cdate+"\t<DIR>\t\t\t\t"+name);}else{long l=list[i].lastModified();Date date=new Date(l);cdate=date.toLocaleString();long len =list[i].length();allsize+=len;name=list[i].getName();filecount++;System.out.println (cdate+"\t\t\t"+len+"\t\t"+name);}}}longsize=allsize/1024;System.out.println ("\n"+filecount+"个文件"+longsize+"个字节");System.out.println (dircount+"个文件夹");}}10.14 //////////////////////////////////////////////////import java.io.*;class Exer10_14{static FileInputStream fis;static FileOutputStream fos;public static void main (String [] args){String source=args[0];String dest=args[1];int size=0,i=0;try {fis=new FileInputStream(source);fos=new FileOutputStream(dest);byte[] b=new byte[255];while((i=fis.read(b))!=-1){System.out.println (new String (b,0,i));size+=i;fos.write(b);}fis.close();fos.close();System.out.println ("复制文件完毕!共"+size+"字节!");}catch (Exception ex) {ex.printStackTrace();}finally { }}}10.15 //////////////////////////////////////////////////import java.io.*;class Exer10_15{public static void main (String [] args){try {int n=Integer.parseInt(args[0]);RandomAccessFile ra=new RandomAccessFile("student.dat","r");if(n*19>ra.length()) {System.out.println("记录号超出范围!");return;}ra.seek((n-1)*19);String sno=Integer.toString(ra.readInt());String name=ra.readUTF();int age=ra.readInt();char grade=ra.readChar();boolean sex=ra.readBoolean();System.out.println (sno+"\t"+name+"\t"+age+"\t"+grade+"\t"+sex);ra.close();} catch (Exception ex) {System.out.println ("产生错误!");System.out.println (ex.getMessage());}finally { }}}10.16 //////////////////////////////////////////////////(1)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_1 extends JFrame{JButton [] button;public Exer10_16_1(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));//this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_1();}}(2)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_2 extends JFrame{JButton [] button;public Exer10_16_2(){button =new JButton[5];for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);}this.getContentPane().setLayout(new BorderLayout());this.getContentPane().add(button[0],BorderLayout.NORTH);this.getContentPane().add(button[1],BorderLayout.WEST);this.getContentPane().add(button[2],BorderLayout.CENTER);this.getContentPane().add(button[3],BorderLayout.SOUTH);this.getContentPane().add(button[4],BorderLayout.EAST);this.setSize(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_2();}}(3)//////////////////////////////////////////////////import java.awt.*;import javax.swing.*;public class Exer10_16_3 extends JFrame{JButton [] button;public Exer10_16_3(){button =new JButton[13];this.getContentPane().setLayout(new GridLayout(4,4));// this.getContentPane().setLayout(new GridLayout(3,5));// this.getContentPane().setLayout(new GridLayout(5,3));// this.getContentPane().setLayout(new GridLayout(13,0));// this.getContentPane().setLayout(new GridLayout(0,13));for(int i=0;i<button.length;i++){button[i]=new JButton("Button"+i);this.getContentPane().add(button[i]);}this.setSize(400,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public static void main(String [] args){new Exer10_16_3();}}10.17(1)//////////////////////////////////////////////////import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Exer10_17_1 extends JFrame{JTextArea text=new JTextArea(15,20);JTextField tx=new JTextField(10);JButton button=new JButton("发送");public Exer10_17_1(){this.getContentPane().setLayout(new FlowLayout());this.getContentPane().add(text);this.getContentPane().add(tx);this.getContentPane().add(button);tx.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){if(e.getKeyCode()==KeyEvent.VK_ENTER){send();}}});button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){send();}});this.setSize(300,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}private void send(){text.append(tx.getText()+"\n");}public static void main (String [] args){new Exer10_17_1();}}(2)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;public class Exer10_17_2 extends JFrame{Exer10_17_2(){this.setSize(300,350);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setV isible(true);}public void paint(Graphics g){int x,y,i;g.drawLine(10,40,300,40); //从(10,40)开始到(300,40)画一条黑色直线g.setColor(Color.red);g.drawRect(10,50,50,30); //在(10,50)到(50,30)处画一个红色的矩形框g.drawOval(100,50,40,40); //在(100,50)处画一个半径为40的红色的圆形g.setColor(Color.blue);g.fillOval(170,50,90,40); //在(170,50)处画一个宽为90,高为40的蓝色的实心椭圆g.setColor(Color.pink); //绘制字符串Font fo=new Font("楷体_GB2312",Font.ITALIC|Font.BOLD,32);g.setFont(fo);g.drawString("我们都很快乐!",10,130);Image im=null; //显示图片im=getToolkit().getImage("b.jpg");g.drawImage(im,10,170,200,160,this);}public static void main(String args[]){new Exer10_17_2();}}(3)//////////////////////////////////////////////////import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Exer10_17_3 extends JFrame implements ActionListener{ // 类EventExample实现ActionListener接口,成为事件监听器JPanel p;JPanel p1;JTextField number;JTextField name;JTextField age;JTextArea summary;JButton ok;JButton cancel;public Exer10_17_3 (){super("ActionEvent事件演示示例");p=new JPanel();p1=new JPanel();number=new JTextField (5);name=new JTextField (18);age=new JTextField ("20");summary=new JTextArea("请在此输入个人简介!",4,20);ok=new JButton("确定");ok.addActionListener(this); //注册,添加监听器cancel=new JButton("取消");cancel.addActionListener(this); //注册,添加监听器p.add(new Label("学号:"));p.add(number);p.add(new Label("姓名:"));p.add(name);p.add(new Label("年龄:"));p.add(age);p.add(new Label("个人简介:"));p1.add(ok);p1.add(cancel);this.getContentPane().add(p,BorderLayout.NORTH);this.getContentPane().add(summary);this.getContentPane().add(p1,BorderLayout.SOUTH);this.setSize(600,300);this.setV isible(true);}public void actionPerformed(ActionEvent e){ //重写接口中的全部方法if ((JButton)e.getSource()==ok){ //判断是否为ok按钮发生的事件summary.setText("你输入的学号是:"+number.getText()+" 姓名是:"+name.getText()+" 年龄是:"+age.getText());}else{number.setText("");name.setText("");age.setText("");summary.setText("");}}public static void main(String [] args){new Exer10_17_3 ();}}10.18 ///////////////////////////////////////////////////*操作数据库程序DataBaseOperator.java*/import java.sql.*;class DataBaseOperator{static Connection stucn;static Statement stust;static ResultSet sturs;public static boolean ConnDB(String DSName,String UserName,String Password){ //连接数据库boolean ConnOk=false;try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");System.out.println ("数据库驱动程序加载成功......");stucn=DriverManager.getConnection("jdbc:odbc:"+DSName,UserName,Password);ConnOk=true;System.out.println ("数据库连接成功......");}catch (Exception ex) {System.out.println ("数据库连接失败......");}return ConnOk;}public static boolean searchTable(String SQLString){ //查询数据。
Java大学实用教程(第2版)ppt
7.动作标记useBean
该标记用来创建并使用一个 JavaBean,是非常重要的一个动作标 记,我们将在第5章详细讨论。Sun公 司倡导的是:用HTML完成JSP页面的 静态部分,用JavaBean完成动态部分, 实现真正意义上的静态与动态的分隔。
8. Tag文件与Tag标记 Tag文件是扩展名为 .tag的文本文件, 其结构几乎和JSP文件相同,只是扩展 名不同而已。 一个Tag文件对应一个标记,习惯 上称为Tag标记。若干个Tag标记可以 组成一个标记库,习惯上称为自定义 标记库。
1. 8080是Tomcat服务器的默认端 号口 2. 修改Tomcat服务器的conf目录 下的主配置文件server.xml可以 更改端口号.
5.端口号
6.JSP运行原理
当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首 先将JSP页面文件转译成一个java文件,并编译这个java文件生成字节码文 件,然后执行字节码文件响应客户的请求. (1)把JSP页面中的HTML标记符号(页面的静态部分)交给客户的浏
2. Tomcat服务器的安装与配置
将安装JSP引擎的计算机称作一个支持JSP的Web服务器。支持JSP的Web服 务器负责运行JSP,并将运行结果返回给用户. Tomcat是一个免费的开源JSP引擎,也称作Tomcat服务器。可以登录 /tomcat免费下载Tomcat5.5
3. JSP页面的成员变量和方法
1.在JSP页面的标记符“<%!”和“%>” 之间声明的变量称作JSP页面的成员变 量.
2. JSP页面在“<%!”和“%>”之间声明 定义 方法 .
4. Java程序片
在“<%”和“%>”之间插入Java程序片 程序片中声明的变量称为JSP页面的局部 变量 多个客户请求一个JSP页面时 , Java程序 片将被执行多次,分别在不同的线程中 执行 。
Java-2实用教程实验指导模版代码
J a v a-2实用教程实验指导模版代码-CAL-FENGHAI.-(YICAI)-Company One1上机实践1 初识JAVA ...................................................................................... 错误!未定义书签。
实验1一个简单的应用程序............................................................................ 错误!未定义书签。
实验2一个简单的J AVA A PPLET程序................................................................. 错误!未定义书签。
实验3联合编译................................................................................................ 错误!未定义书签。
上机实践2 基本数据类型与控制语句 ............................................................ 错误!未定义书签。
实验1输出希腊字母表.................................................................................... 错误!未定义书签。
实验2回文数.................................................................................................... 错误!未定义书签。
实验3猜数字游戏............................................................................................ 错误!未定义书签。
Java程序设计实用教程(第2版)第5章_子类与继承
例5-5 Example5_5.java 例5-5中,子类B重写了父类的computer()方法,运行效果如图5.5
例5-5中,如果子类如下重写方法computer将产生编译错误。
double computer(float x,float y) { return x*y;
}
其原因是,父类的方法computer的类型是float,子类的重写方 法computer没有和父类的方法computer保持类型一致,这样子 类就无法隐藏继承的方法,导致子类出现2个方法的名字相同, 参数也相同,这是不允许的。
2019/8/2 9
§5.2.4 继承关系(Generalization)的UML图
如果一个类是另一个 类的子类,那么UML通过 使用一个实线连接两个 类的UML图来表示二者之 间的继承关系,实线的 起始端是子类的UML图, 终点端是父类的UML图, 但终点端使用一个空心 的三角形表示实线的结 束。
2019/8/2 7
§5.2.2 子类和父类不在同一包中的继承性
如果子类和父类不在同一个包中,那么,子 类 继 承 了 父 类 的 protected、public 成 员 变 量 做 为子类的成员变量,并且继承了父类的 protected、public 方 法 为 子 类 的 方 法 , 继 承 的 成员或方法的访问权限保持不变。
2019/8/2 8
§5.2.3 protected的进一步说明 ( 选讲 )
一个类A中的protected成员变量和方法可以被它的直接子类 和间接子类继承,如B是A的子类,C是B的子类,D又是C的子类, 那么B、C和D类都继承了A类的protected成员变量和方法。
如果用D类在D中创建了一个对象,该对象总是可以通过“.” 运算符访问继承的或自己定义的protected变量和protected方法 的,但是,如果在另外一个类中,如在Other类中用D类创建了一个 对 象 object, 该 对 象 通 过 “ . ” 运 算 符 访 问 protected 变 量 和 protected方法的权限如所述。 ( 1 ) 对 于 子 类 D 中 声 明 的 protected 成 员 变 量 和 方 法 , 如 果 object要访问这些protected成员变量和方法,只要Other类和D 类在同一个包中就可以了。 (2)如果子类D的对象的protected成员变量或protected方法是 从父类继承的,那么就要一直追溯到该protected成员变量或方 法的“祖先”类,即A类,如果Other类和A类在同一个包中,那 么object对象能访问继承的protected变量和protected方法。
Java实用教程第二版课程设计
Java实用教程第二版课程设计1. 简介Java是一种跨平台的面向对象编程语言,已经成为当今最流行的编程语言之一。
而Java实用教程则是一本专注于教授Java编程的书籍。
本文旨在设计一套Java实用教程第二版课程,以帮助学生更好地掌握Java编程技能。
2. 课程目标本课程旨在让学生掌握Java编程的基本知识和技能,能够独立地完成基础Java编程任务。
具体目标如下:1.掌握Java基础语法和语言特性;2.熟悉Java面向对象编程思想;3.能够使用Java编写基本的应用程序、Web应用程序和数据库应用程序;4.掌握Java开发框架和工具,如Spring、Hibernate等。
3. 课程内容3.1 Java基础语法1.基本数据类型2.运算符3.控制流语句4.数组和字符串5.类和对象6.包和访问控制7.接口和抽象类3.2 面向对象编程1.继承和多态2.接口和抽象类3.内部类4.异常处理3.3 Java应用程序开发1.Java Swing用户界面编程2.Java标准I/O3.文件和目录操作4.网络编程5.多线程编程6.日期和时间API7.正则表达式8.JDBC编程3.4 Java Web应用程序开发1.Servlet API2.JSP API3.Web应用程序架构4.Spring MVC框架3.5 Java数据库应用程序开发1.JDBC编程2.Hibernate框架介绍3.Spring Data JPA介绍4. 课程设计本课程采用理论教学与实践训练相结合的教学模式。
具体设计如下:4.1 理论教学老师将学生分成若干个小组,每个小组都需要阅读Java实用教程第二版中的相关章节,并在课上与老师进行讨论。
同时,老师还会通过实例讲解来加深学生的理解,例如,对于Java多线程编程这一章节,老师可以通过编写一个多线程下载器的示例程序来进行讲解。
4.2 实践训练实践训练是本课程的重点,学生需要完成若干个实践项目来巩固所学知识。
5-类和对象-Java程序设计与实践教程(第2版)-杨丽萍-清华大学出版社
14
5.1.2 对象的创建
类、引用和对象之间的关系如图所示。
类
声明
创建
引用变 量
引用
对象
2021年3月26日星期五
Java程序设计与实践教程—清华大学出版社
15
5.1.3 对象的使用
myCust = new Cust("Tom",100,"12345",10000);
myCust 0x0012ff70
Cust myCust;
0x0012ff70 Tom name 100 ID 12345 PWD 10000 money
2021年3月26日星期五
Java程序设计与实践教程—清华大学出版社
}
2021年3月26日星期五
Java程序设计与实践教程—清华大学出版社
10
5.1.1 构造方法
说明:
一个类最少要有一个构造方法。
构造方法的定义
(1)显式定义:在类中自行书写构造方法的代码
(2)隐式定义。是指如果在一个类中没有显示定义构造方法,系统在 解释时会分配一个默认的构造方法,该构造方法没有参数,也没有 代码,类的所有属性系统将根据其数据类型赋缺省值。例如整型初 始化为0,浮点型初始化为0.0,字符型初始化为‘\u0000’,逻辑型 初始化为false,类对象初始化为null等。
2021年3月26日星期五
Java程序设计与实践教程—清华大学出版社
9
5.1.1 构造方法
【例5-1】定义“银行账户”类的构造方法,实现对银行账户属性 变量的赋值操作。
Cust(String newName, int newID, String newPWD, int newMoney){ name = newName; ID = newID; PWD = newPWD; money = newMoney;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.程序模板 按模板要求,将【代码1】~【代码7】替换为Java程序代码。
SaleExample.java
package test1; class TicketSeller // 负责卖票的类 { int fiveNumber=1,tenNumber=0,twentyNumber=0; public synchronized void sellTicket(int receiveMoney,int buyNumber) { if(receiveMoney==5) { fiveNumber=fiveNumber+1; System.out.printf("\n%s给我5元钱,这是您的1张入场 卷",Thread.currentThread().getName()); } else if(receiveMoney==10&&buyNumber==2)
作",boss.getName(),wangWorker.getName()); } } } else if(Thread.currentThread()==boss) { while(true) { zhangWorker.interrupt(); //【代码6】 // 吵醒 zhangWorker wangWorker.interrupt(); //【代码7】 // 吵醒wangWorker if(!(wangWorker.isAlive()||zhangWorker.isAlive())) { System.out.printf("%n%s下班",boss.getName()); return; } } } } } class ShopExample { public static void main(String args[]) { Shop1 shop=new Shop1(); shop.zhangWorker.start(); shop.wangWorker.start(); shop.boss.start(); } }
Java大学实用教程(第二版)实验
8.2.1 线程的状态
4.程序模板
按模板要求,将【代码1】~【代码1】替换为Java程序代码。 ThreadExample.java
class Tortoise extends Thread { int sleepTime=0,liveLength=0; Tortoise(int sleepTime,String name,int liveLength) { this.sleepTime=sleepTime; this.liveLength=liveLength; setName(“name”); //【代码1】 // 设置线程的名字为 name } public void run() { while(true) { liveLength--; System.out.printf("@"); try { Thread.sleep(sleepTime); //【代码2】 // 让线程调用 sleep方法进入中断状态,sleepTime毫秒后线程 // 重新排队,等待CUP资源 } catch(InterruptedException e) {
Bank bank=new Bank(); bank.zhang.start(); bank.keven.start(); } }
8.2.3 吵醒休眠的线程
4.程序模板 按模板要求,将【代码1】~【代码7】替换为Java程序代码。
ShopExample.java
package test; class Shop1 implements Runnable { Thread zhangWorker,wangWorker,boss; Shop1() { boss=new Thread(this);//【代码1】 // 创建boss,Shop对象为boss目 标对象 zhangWorker= new Thread(this);//【代码2】 // 创建 zhangWorker,Shop对象为boss目标对象 wangWorker= new Thread(this);//【代码3】 // 创建wangWorker, Shop对象为boss目标对象 zhangWorker.setName("张工"); wangWorker.setName("王工"); boss.setName("老板"); } public void run() { int i=0;
if(Thread.currentThread()==zhangWorker) { while(true) { try{ i++; System.out.printf("\n%s已搬运了%d箱苹果 \n",zhangWorker.getName(),i); if(i==3) return; Thread.sleep(10000);//【代码4】 // zhangWorker休眠10 秒(10000毫秒) } catch(InterruptedException e) { System.out.printf("\n%s让%s继续工 作",boss.getName(),zhangWorker.getName()); } } } else if(Thread.currentThread()==wangWorker) { while(true) { try{ i++; System.out.printf("\n%s已搬运了%d箱苹果 \n",wangWorker.getName(),i); if(i==3) return; Thread.sleep(10000);//【代码5】 // wangWorker休眠10 秒(10000毫秒) } catch(InterruptedException e) { System.out.printf("\n%s让%s继续工
8.2.2 使用Rannable接口
4.程序模板 按模板要求,将【代码1】~【代码10】替换为Java程序代码。
BankExample.java
class Bank implements Runnable { int money=100;//【代码1】 // 声明一个int型变量money,初 值为100 Thread zhang,keven; Bank() { zhang = new Thread(this); //【代码2】 // 创建zhang,Bank 对象为zhang的目标对象 zhang.setName(“会计”); //【代码3】 // 设置zhang线程的名 字为“会计” keven = new Thread(this); //【代码4】 // 创建keven,Bank 对象为keven的目标对象 keven.setName(“出纳”); //【代码5】 // 设置keven线程的名 字为“出纳” } public void run() { int i = 0; //【代码6】 // 声明一个int类型变量i,初值为0 while(true) { if(zhang.isAlive()) // 判断线程zhang是否正在占有CUP资 源 { i=i+1; money=money+1; System.out.printf("\n%s将money的值改 为%d\t",zhang.getName(),money); System.out.printf("%s的局部变量 i=%d\n",zhang.getName(),i); if(i>=6) { System.out.printf("%s线程进入死亡状态 \n",zhang.getName()); return; //【代码8】 // 使得线程zhang进入死亡状态 }
System.out.printf(getName()+"进入死亡状态\n"); return; // 【代码6】 // 结束run方法的语句 } } } } public class ThreadExample { public static void main(String args[ ]) { Rabbit rabit; rabit= new Rabbit(100, "rabit", 100); //【代码7】 // 新 建线程rabit Tortoise tortoise; tortoise= new Tortoise(200, "tortoise", 200); //【代码8】 // 新建线程tortoise tortoise.start(); //【代码9】 // 启动线程tortoise rabit.start(); //【代码10】 // 启动线程rabit } }
{ tenNumber=tenNumber+1; System.out.printf("\n%s给我10元钱,这是您的2张入场 卷",Thread.currentThread().getName()); } else if(receiveMoney==10&&buyNumber==1) { while(fiveNumber<1) //【代码1】// 给出线程需等待的条件 { try { System.out.printf("\n%30s靠边 等",Thread.currentThread().getName()); wait(); //【代码2】 // 线程进入等待状态 System.out.printf("\n%30s结束等待 \n",Thread.currentThread().getName()); } catch(InterruptedException e) { } } fiveNumber=fiveNumber-1; tenNumber=tenNumber+1; System.out.printf("\n%s给我10元钱,找您5元,这是您的1张入 场卷",Thread.currentThread().getName()); } else if(receiveMoney==20&&buyNumber==1) { while(fiveNumber<1||tenNumber<1) //【代码3】// 给出线程需等 待的条件 { try { System.out.printf("\n%30s靠边 等",Thread.currentThread().getName()); wait();//【代码4】 // 线程进入等待状态 System.out.printf("\n%30s结束等 待",Thread.currentThread().getName());