Java实验 常用系统类
JAVA实验报告

JA V A实验报告实验一 Java开发环境及基本语法一、实验目的1、掌握常用的Java 集成开发环境的使用,特别是Eclipse 和NetBeans。
2、掌握Java 基本语法,重点是面向对象的思想和语法。
3、掌握控制台下(应用程序)的输入输出方法,作为后续部分实验的基础。
二、实验类型设计型。
三、实验内容1、打开实验室计算机上的集成开发环境Eclipse 或NetBeans(重点是Eclipse)了解开发软件的各个菜单功能。
会创建java 项目(Project),会编辑和编译、运行项目代码。
、。
2,验证和学习所给的几个例子程序及其讲解。
然后自己编写一个至少由一个类构成的Java 程序,其功能是在运行后,能接收用户输入一个学生的姓名以及java 课的成绩(百分制),并输出对该学生成绩是否达到60 分的及格分的判断(可使用if 语句)。
例如,输入学生姓名李明,然后输入成绩50,则输出“ 李明的成绩为不及格”。
3、编写一个程序来表示长方体的长宽高等数据并有计算体积的函数可供调用,长方体类从矩形类继承而来。
程序运行时能接受输入任意的 3 个数作为长方体的长、宽和高,然后能够输出所输入的长宽高及所计算出的体积。
注意不能把代码全部写在main 函数里面,不能直接输出长宽高的乘积。
代码如下;第一个import java.util.Scanner;public class Test{public static void main(String[] args) {String str; // 定义一个字符串变量strint i; // 定义一个整型变量iScanner sc = new Scanner(System.in); // 定义一个Scanner对象,从System.in接受输入System.out.print("输入学生姓名");str = sc.next(); // 等待用户输入任意一个字符串,它会被存到str中System.out.println("姓名:" + str); // 输出字符串strSystem.out.print("输入学生的分数:");i = sc.nextInt(); // 等待用户输入任意一个整数,它会被存到i中if(i<60)System.out.print("他的JAVA不及格,成绩是" + i );elseSystem.out.println("他的JAVA成绩是:" + i); // 输出整数i}}第二个import java.util.Scanner;public class wwh {public static void main(String[] args) {int Long; // 矩形的长int wide; // 矩形的宽int High; // 长方体的高S canner sc = new Scanner(System.in);S ystem.out.print("输入长");L ong = sc.nextInt();S ystem.out.print("输入宽");w ide=sc.nextInt();S ystem.out.print("输入高");H igh=sc.nextInt();T j T=new Tj(Long,wide,High);T.show1();}}class Vehicle{int Long; // 矩形的长int wide; // 矩形的宽Vehicle(int Long,int wide){this.Long=Long;this.wide=wide;}int getArea(){r eturn Long*wide;}void show(){System.out.println("长:"+Long);System.out.println("宽:"+wide);System.out.println("矩形的面积为; "+this.getArea()); }} //class Tj extends Vehicle{int High; // 载人数Tj(int Long,int Wide,int High){super(Long,Wide); // 调用父类的构造函数,对从父类继承而来的成员变量进行初始化this.High=High;}int getTiji(){r eturn super.getArea()*High;}void show1(){s uper.show();// 调用父类方法S ystem.out.println("长方体的高为:"+High);System.out.println("长方体的体积;"+this.getTiji());}}实验二系统类和数组一、实验目的1、通过字符串处理类的应用,掌握系统类的使用方法。
Java实验三常用系统类的使用

实验三常用系统类的使用一、实验目的了解Java 常用的系统类,包括字符串类、输入输出流类、数学函数类、日期类、随机数类以及向量类(学习继承内容后做)等的基本使用方法。
理解Java 系统类的构成。
二、实验要求1.掌握不同类型的输入输出流类,标准数据流、文件流、数据输入输出流、对象流等。
2.掌握数学函数类的使用方法。
3.掌握日期类的使用方法。
4.掌握向量类的使用方法。
使用数学函数类Math 是一个最终类,含有基本数学运算函数,如指数运算、对数运算、求平方根、三角函数、随机数等,可以直接在程序中加Math.前缀调用。
1.创建使用Math 类的应用程序KY5_8.java,源程序如下。
import java.util.*;class KY5_8 {public static void main(String args[]) {Random r1=new Random(1234567890L);Random r2=new Random(1234567890L);boolean b=r1.nextBoolean(); // 随机数不为0 时取真值int i1=r1.nextInt(100); // 产生大于等于0 小于100 的随机数int i2=r2.nextInt(100); // 同上double i3=r1.nextDouble(); // 产生大于等于0.0 小于1.0 的随机数double i4=r2.nextDouble(); // 同上double d1=Math.sin(Math.toRadians(30.0));double d2=Math.log(Math.E);double d3=Math.pow(2.0, 3.0);int r=Math.round(33.6F);System.out.println("b 的随机数不为0 时"+b);System.out.println("i1 的随机数为"+i1);System.out.println("i2 的随机数为"+i2);System.out.println("d1 的随机数为"+i3);System.out.println("d2 的随机数为"+i4);System.out.println("30 弧度的正弦值:Math.sin(Math.toRadians(30.0))="+d1);System.out.println("E 的对数值:Math.log(Math.E)="+d2);System.out.println("2 的3 次方:Math.pow(2.0, 3.0)="+d3);System.out.println("33.6F 四舍五入:Math.round(33.6F)="+r);}}2.编译KY6_2.java 文件。
常用系统类

实验五常用系统类一.实验目的:1)了解Java 常用的系统类,包括Java Applet、字符串类、输入输出流类、数学函数类、日期类、随机数类以及向量类等的基本使用方法。
2)理解Java 系统类的构成。
二.实验要求1)进一步了解Applet 类。
2)掌握字符串类的使用方法。
3)掌握不同类型的输入输出流类,标准数据流、文件流、数据输入输出流、对象流等。
4)掌握数学函数类的使用方法。
5)掌握日期类的使用方法。
6)掌握向量类的使用方法三.实验内容3.1 了解Applet 的生命周期程序运行从开始到结束的过程称为程序的生命周期。
Application应用程序的生命周期从main()方法开始,直到运行结束。
而Applet 应用程序的生命周期与浏览器相关。
作为浏览器的一部分,Applet 程序何时运行,何时结束都由浏览器控制,Applet 对象只是作为浏览器窗口中运行的一个线程。
浏览器与Applet 具有如下关系。
●在浏览器中打开包含Applet 对象的页面时,创建并初始化其中的Applet 对象。
●显示Applet 时,启动Applet 线程运行。
●不显示Applet 时,停止 Applet 线程运行。
●在浏览器中关闭页面窗口时,销毁Applet 对象。
与此相应,Applet 类中声明了与生命周期相关的4 个方法:init()、start()、stop()、destroy()。
4 个方法代表Applet 的4 个活动阶段。
1.创建揭示Applet 生命周期的程序LX5_1.java。
(1)程序功能:本程序包含Applet的4个与生命周期相关的方法init()、start()、stop()、destroy()。
程序中创建了自定义方法addWords()来显示相应的字符串。
addWords 方法首先在标准输出即屏幕上显示字符串参数,然后将字符串添加到字符串缓冲区buffer,通过调用repaint 方法重画页面,首先自动调用updata 方法将当前画面清空,然后再调用paint 方法在指定位置显示字符串。
Java常用系统类

例7.4 字符串的翻转,如图所示。
import java.Applet.Applet; import java.awt.Graphics; public class StringReverse extends Applet { public void paint(Graphics g) { String str="This is a test string"; g.drawString("正常字符串:"+str, 30, 30); g.drawString("翻转字符串: "+reverse(str), 30, 60); }
Applet安全基础
Applet被设计为从远程站点下载然后 在本地执行,所以安全问题非常重要。 如果用户在游览器中启用了Java,那 么浏览器就会自动下载网页中的 Applet代码并执行。用户没有机会来 确认或者停止Applet的运行。 Applet的限制执行环境常常称作“沙 箱(sandbox )”。运行在沙箱中的 Applet不能更改或探查用户的系统。
7.1.2 Java和HTML的关系
HTML是网页设计语言,它采用一整套 标记来定义Web页。一个HTML文件可 定义一个Web页,文件的扩展名 为 .html或 .htm。 HTML可以没有Applet,但很多重要功 能将无法实现,而Applet有赖于HTML 才能运行。
7.1.2 Java和HTML的关系
Applet
Applet基本上是为部署在Web上 而设计的 Applet是通过扩展 java.applet.Applet 类创建的 Applet 通过appletviewer或在支 持Java的浏览器上运行 Applet 的执行从 init() 方法开始
java实验报告

java实验报告Java 实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解和掌握Java 语言的基本语法、面向对象编程的概念和方法,以及常用类库的使用。
同时,培养我们的问题解决能力、逻辑思维能力和代码规范意识,为今后的软件开发工作打下坚实的基础。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers3、 JDK 版本:JDK 18三、实验内容本次实验共包括以下三个部分:1、 Java 基本语法练习变量与数据类型运算符与表达式控制流语句(ifelse、for、while、dowhile)数组2、面向对象编程实践类与对象的定义和使用构造函数与方法重载封装、继承与多态抽象类与接口3、 Java 常用类库应用String 类与字符串操作集合框架(ArrayList、HashMap)文件输入输出(File、FileReader、FileWriter)四、实验步骤及代码实现1、 Java 基本语法练习变量与数据类型:```javapublic class VariableDataType {public static void main(String args) {int age = 20;double salary = 50005;String name ="张三";boolean isStudent = true;Systemoutprintln("年龄:"+ age);Systemoutprintln("工资:"+ salary);Systemoutprintln("姓名:"+ name);Systemoutprintln("是否是学生:"+ isStudent);}}```运算符与表达式:```javapublic class OperatorExpression {public static void main(String args) {int num1 = 10;int num2 = 5;int sum = num1 + num2;int difference = num1 num2;int product = num1 num2;int quotient = num1 / num2;int remainder = num1 % num2; Systemoutprintln("和:"+ sum);Systemoutprintln("差:"+ difference);Systemoutprintln("积:"+ product);Systemoutprintln("商:"+ quotient);Systemoutprintln("余数:"+ remainder);}}```控制流语句:```javapublic class ControlFlowStatement {public static void main(String args) {// ifelse 语句int score = 80;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}// for 循环for (int i = 1; i <= 5; i++){Systemoutprintln("第" + i +"次循环");}// while 循环int j = 1;while (j <= 5) {Systemoutprintln("第" + j +"次 while 循环");j++;}// dowhile 循环int k = 1;do {Systemoutprintln("第" + k +"次 dowhile 循环");k++;} while (k <= 5);}}```数组:```javapublic class ArrayExample {public static void main(String args) {//一维数组int numbers ={1, 2, 3, 4, 5};for (int num : numbers) {Systemoutprintln(num);}//二维数组int matrix ={{1, 2, 3},{4, 5, 6},{7, 8, 9}};for (int row : matrix) {for (int num : row) {Systemoutprint(num +"");}Systemoutprintln();}}}```2、面向对象编程实践类与对象的定义和使用:```javapublic class Person {private String name;private int age;public Person(String name, int age) {thisname = name;thisage = age;}public void showInfo(){Systemoutprintln("姓名:"+ name +",年龄:"+ age);}public static void main(String args) {Person person1 = new Person("张三", 20);person1showInfo();}}```构造函数与方法重载:```javapublic class ConstructorOverloading {private String name;private int age;public ConstructorOverloading(String name) {thisname = name;}public ConstructorOverloading(String name, int age) {thisname = name;thisage = age;}public void showInfo(){if (age == 0) {Systemoutprintln("姓名:"+ name);} else {Systemoutprintln("姓名:"+ name +",年龄:"+ age);}}public static void main(String args) {ConstructorOverloading person1 = new ConstructorOverloading("张三");person1showInfo();ConstructorOverloading person2 = new ConstructorOverloading("李四", 25);person2showInfo();}}```封装、继承与多态:```java//父类class Animal {private String name;public Animal(String name) {thisname = name;}public void eat(){Systemoutprintln(name +"正在吃东西");}}//子类继承父类class Dog extends Animal {public Dog(String name) {super(name);}public void bark(){Systemoutprintln(name +"在叫");}}public class InheritancePolymorphism {public static void main(String args) {Animal animal = new Dog("小黑");animaleat();//向下转型为 Dog 类型调用 bark 方法if (animal instanceof Dog) {Dog dog =(Dog) animal;dogbark();}}}```抽象类与接口:```java//抽象类abstract class Shape {abstract void draw();}//实现抽象类的子类class Circle extends Shape {@Overridevoid draw(){Systemoutprintln("画一个圆");}}//接口interface Moveable {void move();}//实现接口的类class Car implements Moveable {@Overridepublic void move(){Systemoutprintln("汽车在移动");}}public class AbstractInterfaceExample {public static void main(String args) {Shape shape = new Circle();shapedraw();Moveable car = new Car();carmove();}}```3、 Java 常用类库应用String 类与字符串操作:```javapublic class StringOperation {public static void main(String args) {String str1 ="Hello, ";String str2 ="World!";String str3 = str1 + str2;Systemoutprintln(str3);int length = str3length();Systemoutprintln("字符串长度:"+ length);char charAt = str3charAt(5);Systemoutprintln("第 5 个字符:"+ charAt);boolean contains = str3contains("World");Systemoutprintln("是否包含 World:"+ contains);}}```集合框架(ArrayList、HashMap):```javaimport javautilArrayList;import javautilHashMap;import javautilMap;public class CollectionFramework {public static void main(String args) {// ArrayListArrayList<String> names = new ArrayList<>();namesadd("张三");namesadd("李四");namesadd("王五");for (String name : names) {Systemoutprintln(name);}// HashMapHashMap<String, Integer> ages = new HashMap<>();agesput("张三", 20);agesput("李四", 25);agesput("王五", 30);for (MapEntry<String, Integer> entry : agesentrySet()){Systemoutprintln(entrygetKey()+"的年龄是" +entrygetValue());}}}```文件输入输出(File、FileReader、FileWriter):```javaimport javaioFile;import javaioFileReader;import javaioFileWriter;import javaioIOException;public class FileIOExample {public static void main(String args) {//写入文件try (FileWriter writer = new FileWriter("outputtxt")){writerwrite("这是写入文件的内容");} catch (IOException e) {eprintStackTrace();}//读取文件try (FileReader reader = new FileReader("outputtxt")){int character;while ((character = readerread())!=-1) {Systemoutprint((char) character);}} catch (IOException e) {eprintStackTrace();}}}```五、实验结果与分析1、 Java 基本语法练习变量与数据类型:能够正确定义和使用各种数据类型的变量,并进行基本的运算和输出。
66个java项目开发实例

66个java项目开发实例1. 网络爬虫,开发一个网络爬虫,用于从网站上获取数据并进行分析。
2. 电子商务平台,开发一个完整的电子商务平台,包括商品展示、购物车、订单管理等功能。
3. 学生信息管理系统,开发一个学生信息管理系统,包括学生信息录入、查询、修改和删除等功能。
4. 在线考试系统,开发一个在线考试系统,包括试题录入、考试安排、成绩统计等功能。
5. 医院挂号系统,开发一个医院挂号系统,包括医生排班、患者挂号、费用结算等功能。
6. 酒店管理系统,开发一个酒店管理系统,包括客房预订、入住管理、客户结账等功能。
7. 财务管理系统,开发一个财务管理系统,包括账目录入、报表生成、财务分析等功能。
8. 论坛/博客系统,开发一个论坛或博客系统,包括用户注册、发帖、评论等功能。
9. 在线聊天应用,开发一个基于Java的在线聊天应用,支持文字、图片、语音等多种形式的聊天。
10. 人事管理系统,开发一个人事管理系统,包括员工档案管理、考勤统计、薪资发放等功能。
11. 仓库管理系统,开发一个仓库管理系统,包括库存管理、出入库记录、盘点等功能。
12. 电影订票系统,开发一个电影订票系统,包括影片信息展示、选座购票、取票等功能。
13. 飞机票订购系统,开发一个飞机票订购系统,包括航班查询、订票、退改签等功能。
14. 音乐播放器,开发一个音乐播放器应用,支持音乐播放、列表管理、在线音乐服务等功能。
15. 餐厅点餐系统,开发一个餐厅点餐系统,包括菜单浏览、下单结账、评价反馈等功能。
16. 人脸识别系统,开发一个基于人脸识别技术的系统,用于身份验证、门禁管理等应用。
17. 考勤管理系统,开发一个考勤管理系统,包括打卡记录、考勤统计、异常处理等功能。
18. 健身房会员管理系统,开发一个健身房会员管理系统,包括会员信息管理、健身课程预约等功能。
19. 旅游预订系统,开发一个旅游预订系统,包括旅游线路展示、预订支付、行程管理等功能。
java实验报告:实验六

java实验报告:实验六一、实验目的本次实验的主要目的是深入理解和掌握 Java 中的一些关键概念和技术,包括面向对象编程的特性、异常处理机制以及文件操作等。
通过实际的编程实践,提高我们运用 Java 解决实际问题的能力。
二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,操作系统为 Windows 10。
三、实验内容(一)面向对象编程实践1、定义一个名为“Student”的类,包含学生的姓名、学号和成绩等属性,并实现相应的 getter 和 setter 方法。
2、在主函数中创建“Student”类的对象,并对其属性进行赋值和输出。
(二)异常处理1、编写一个方法,实现两数相除的运算。
如果除数为 0,抛出“ArithmeticException”异常。
2、在主函数中调用该方法,并使用trycatch 语句捕获并处理异常。
(三)文件操作1、创建一个文本文件,并向其中写入一些数据。
2、读取该文件中的数据,并将其输出到控制台。
四、实验步骤(一)面向对象编程实践1、首先,在 IntelliJ IDEA 中创建一个新的 Java 项目。
2、然后,创建“Student”类,代码如下:```javapublic class Student {private String name;private int studentId;private double score;public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentId(){return studentId;}public void setStudentId(int studentId) {thisstudentId = studentId;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```3、在主函数中创建“Student”类的对象,并对其属性进行赋值和输出,代码如下:```javapublic class Main {public static void main(String args) {Student student = new Student();studentsetName("张三");studentsetStudentId(1001);studentsetScore(905);Systemoutprintln("学生姓名:"+ studentgetName());Systemoutprintln("学生学号:"+ studentgetStudentId());Systemoutprintln("学生成绩:"+ studentgetScore());}}```(二)异常处理1、编写一个名为“divide”的方法,实现两数相除的运算,代码如下:```javapublic class ExceptionHandling {public static double divide(double num1, double num2) {if (num2 == 0) {throw new ArithmeticException("除数不能为 0");}return num1 / num2;}public static void main(String args) {try {double result = divide(10, 0);Systemoutprintln("结果:"+ result);} catch (ArithmeticException e) {Systemoutprintln("捕获到异常:"+ egetMessage());}}}```(三)文件操作1、创建一个名为“FileOperation”的类,用于实现文件的写入和读取操作,代码如下:```javaimport javaioBufferedWriter;import javaioFileWriter;import javaioIOException;import javaioBufferedReader;import javaioFileReader;public class FileOperation {public static void writeToFile(String filePath, String content) {try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))){writerwrite(content);} catch (IOException e) {eprintStackTrace();}}public static String readFromFile(String filePath) {StringBuilder content = new StringBuilder();try (BufferedReader reader = new BufferedReader(new FileReader(filePath))){String line;while ((line = readerreadLine())!= null) {contentappend(line)append("\n");}} catch (IOException e) {eprintStackTrace();}return contenttoString();}public static void main(String args) {String filePath ="testtxt";String data ="这是写入文件的内容";writeToFile(filePath, data);String readData = readFromFile(filePath);Systemoutprintln("读取到的文件内容:\n" + readData);}}```五、实验结果(一)面向对象编程实践成功创建了“Student”类的对象,并正确地对其属性进行了赋值和输出。
JAVA实验报告

JAVA实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解 Java 语言的基本语法、面向对象编程的概念以及常用类库的使用。
同时,培养自己解决实际问题的能力,提高编程的熟练程度和代码质量。
二、实验环境操作系统:Windows 10开发工具:EclipseJDK 版本:18三、实验内容及步骤(一)基本语法练习1、数据类型与变量定义不同类型的变量,如整数型(int)、浮点数型(float、double)、字符型(char)和字符串型(String),并进行赋值和输出操作。
了解不同数据类型的取值范围和精度,以及在实际编程中的应用场景。
2、控制结构编写使用 ifelse 语句、switch 语句进行条件判断的程序。
运用 for 循环、while 循环和 dowhile 循环实现重复执行的操作。
3、数组与字符串声明和初始化一维数组和二维数组,对数组元素进行访问和操作。
进行字符串的拼接、截取、查找等常见操作。
(二)面向对象编程实践1、类与对象定义一个简单的类,包含属性和方法。
创建该类的对象,并调用对象的方法来操作属性。
2、继承与多态建立父类和子类,实现继承关系。
在子类中重写父类的方法,展示多态性。
3、封装与抽象将类的属性设置为私有,并提供公共的访问方法(getter 和 setter),实现封装。
定义抽象类和抽象方法,体会抽象的概念和作用。
(三)常用类库的使用1、 Java 输入输出(IO)使用 Scanner 类实现从控制台读取用户输入的数据。
运用 File 类和相关的输入输出流类,实现文件的读取和写入操作。
2、集合框架熟悉 ArrayList、LinkedList 等线性集合的使用方法。
了解 HashSet、TreeSet 等集合的特点和应用场景。
3、异常处理在程序中加入可能引发异常的代码段,并使用 trycatch 语句捕获和处理异常。
四、实验结果与分析(一)基本语法练习1、数据类型与变量成功定义了各种数据类型的变量,并正确进行了赋值和输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六常用系统类【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.6与Jcreator4.0【实验目的】1.了解Java 常用的系统类,包括Java Applet、字符串类、输入输出流类、数学函数类、日期类、随机数类以及向量类等的基本使用方法。
2.理解Java 系统类的构成。
【实验要求】1. 进一步了解Applet 类。
2. 掌握字符串类的使用方法。
3. 掌握数学函数类的使用方法。
4. 掌握日期类的使用方法。
5. 掌握向量类的使用方法【实验内容】(一)了解Applet 的生命周期程序运行从开始大结束的过程称为程序的生命周期。
独立应用程序的生命周期从main ()方法开始,直到运行结束。
而Applet 应用程序的生命周期与浏览器相关。
作为浏览器的一部分,Applet 程序何时运行,何时结束都由浏览器控制,Applet 对象只是作为浏览器窗口中运行的一个线程。
浏览器与Applet 具有如下关系。
●在浏览器中打开包含Applet 对象的页面时,创建并初始化其中的Applet 对象。
●显示Applet 时,启动Applet 线程运行。
●不显示Applet 时,停止 Applet 线程运行。
●在浏览器中关闭页面窗口时,销毁Applet 对象。
与此相应,Applet 类中声明了与生命周期相关的4 个方法:init()、start()、stop()、destroy()。
4 个方法代表Applet 的4 个活动阶段。
1.创建揭示Applet 生命周期的程序LX5_1.java。
(1)程序功能:本程序包含Applet 的4 个与生命周期相关的方法init()、start()、stop()、destroy()。
程序中创建了自定义方法addWords()来显示相应的字符串。
addWords 方法首先在标准输出即屏幕上显示字符串参数,然后将字符串添加到字符串缓冲区buffer,通过调用repaint 方法重画页面,首先自动调用updata 方法将当前画面清空,然后再调用paint 方法在指定位置显示字符串。
(2)编写LX5_1.java 程序文件,源代码如下。
import java.applet.Applet;import java.awt.Graphics;public class LX5_1 extends Applet {StringBuffer buffer=new StringBuffer();public void init() {addWords("执行了初始化方法 init()...");}public void start() {addWords("执行了开始方法start()...");}public void stop() {addWords("执行了停止方法stop()...");}public void destroy() {addWords("执行了清除方法destroy()...");}void addWords(String s) {System.out.println(s);buffer.append(s);repaint();}public void paint(Graphics g) {g.drawString(buffer.toString(),5,15);}}2.编译LX5_1.java 文件。
3.编写显示LX5_1.class 的页面文件LX5_1.html,代码如下。
<html><applet codebase=e:/java/程序 code=LX5_1.class width=300 height=120></applet ></html>4.在命令提示符窗口调用小程序查看器浏览LX5_1.html 页面观察Applet 应用程序,其结果如图5.1 所示。
在图5.2 所示的命令提示符窗口可以看到,在打开LX5_1.html 时,出现了如图5.1 所示的情况,表示执行了初始化方法和开始方法。
当关闭LX5_1.html 时,在命令提示符窗口可以看到如图5.2 所示执行停止和销毁方法。
图5.15.程序分析:本程序不仅揭示了与生命周期相关的4 个方法,还揭示了Applet 显示和刷新的3个方法:paint()、repaint()和updata()方法。
Applet 的显示和刷新由一个独立线程控制,称为AWT 线程。
AWT 线程的处理机制有两种情况。
(1)自动执行paint 方法重新绘图如果程序中重写paint()方法,当浏览器运行时,AWT 线程将自动在Applet 上绘制图形;或者Applet 内容被覆盖,当其他窗口关闭或移开时,AWT 线程会自动调用paint 方法,重画曾被覆盖的部分。
(2)调用repaint 方法重新绘图程序中如果需要重新绘图,可以调用repaint 方法,AWT 线程会自动调用updata 方法首先清空当前页面,然后调用paint 方法重新绘制图形。
二.使用字符串与字符串类ng 有两个字符串类String 和StringBuffer,封装了字符串的全部操作。
其中String 用来处理创建以后不再改变的字符串,StringBuffer 用来处理可变字符串。
String 和StringBuffer 为最终类,不能派生子类,可以防止用户修改。
String 和StringBuffer 类在运行时要经历严格的边界条件检验,可以自动捕获异常,可以提高程序的健壮性。
1.创建使用String 和StringBuffer 类的程序(1)程序功能:实现字符串的翻转。
(2)编写LX5_2.java 程序文件,源代码如下。
import java.applet.Applet;import java.awt.Graphics;public class LX5_2 extends Applet {public void paint(Graphics g) {String str="这是一个字符串——This is a test string";g.drawString("正常字符串:"+str, 30, 30);g.drawString("翻转字符串:"+reverse(str), 30, 60);}public String reverse(String s) {int len=s.length();StringBuffer buffer=new StringBuffer(len);for (int i=len-1; i>=0; i--)buffer.append(s.charAt(i));return buffer.toString();}}2.编译LX5_2.java 程序文件。
3.编写显示LX5_2.class 的页面文件LX5_2.html,源代码如下。
<html><applet codebase=e:/java/程序 code=LX5_2.class width=400 height=120></applet ></html>4.在浏览器打开LX5_2.html 文件,结果如图5.3 所示。
5.程序分析:程序在paint 方法中首先定义一个String 类对象str,将"This is a test string" 将字符串常量赋给了str(实际的程序流程为Java 系统先为字符串常量创建一个无名字符串对象,然后再把字符串的引用赋给str)。
然后使用Graphics 的对象g,调用drawString 方法输出原始字符串,然后输出翻转后的字符串,对字符串的翻转操作使用自定义的reverse 方法实现。
在drawString 方法里有一个字符串表达式,将字符串常量和字符串变量进行了连接(+)运算,其结果仍为字符串对象,字符串连接是String 类的唯一运算操作。
drawString (字符串对象,x 坐标,y 坐标)方法将字符串按定义的位置在Applet 中显示出来。
在reverse 方法中,创建了StringBuffer 对象buffer,在创建时指定其长度为字符串参数s 的长度。
程序中使用了String 类的方法charAt(i)(可返回字符串的第i 个字符),使用了StringBuffer类的方法append 连接字符串(可将参数值添加到字符串尾部)。
在for 循环中,每次反向从字符串s中取出一个字符添加到buffer 的尾部。
循环完毕,buffer 中存放的就是翻转后的字符串。
因为reverse方法的返回值是String 类型,因此还调用了toString 方法将StringBuffer 类型转换成String 类型再返回。
三.使用数学函数类Math 是一个最终类,含有基本数学运算函数,如指数运算、对数运算、求平方根、三角函数、随机数等,可以直接在程序中加Math.前缀调用。
1.创建使用Math 类的应用程序LX5_8.java,源程序如下。
import java.util.*;class LX5_8 {public static void main(String args[]) {Random r1=new Random(1234567890L);Random r2=new Random(1234567890L);boolean b=r1.nextBoolean(); // 随机数不为0 时取真值int i1=r1.nextInt(100); // 产生大于等于0 小于100 的随机数int i2=r2.nextInt(100); // 同上double i3=r1.nextDouble(); // 产生大于等于0.0 小于1.0 的随机数double i4=r2.nextDouble(); // 同上double d1=Math.sin(Math.toRadians(30.0));double d2=Math.log(Math.E);double d3=Math.pow(2.0, 3.0);int r=Math.round(33.6F);System.out.println("b 的随机数不为0 时 "+b);System.out.println("i1 的随机数为 "+i1);System.out.println("i2 的随机数为 "+i2);System.out.println("d1 的随机数为 "+i3);System.out.println("d2 的随机数为 "+i4);System.out.println("30 弧度的正弦值:Math.sin(Math.toRadians(30.0))= "+d1);System.out.println("E 的对数值:Math.log(Math.E)= "+d2);System.out.println("2 的3 次方:Math.pow(2.0, 3.0)= "+d3);System.out.println("33.6F 四舍五入:Math.round(33.6F)= "+r);}}2.编译并运行程序,结果如图5.10 所示。