实验三 内部类常用类及异常类用法Word格式.docx

上传人:b****6 文档编号:21394101 上传时间:2023-01-30 格式:DOCX 页数:24 大小:512.17KB
下载 相关 举报
实验三 内部类常用类及异常类用法Word格式.docx_第1页
第1页 / 共24页
实验三 内部类常用类及异常类用法Word格式.docx_第2页
第2页 / 共24页
实验三 内部类常用类及异常类用法Word格式.docx_第3页
第3页 / 共24页
实验三 内部类常用类及异常类用法Word格式.docx_第4页
第4页 / 共24页
实验三 内部类常用类及异常类用法Word格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

实验三 内部类常用类及异常类用法Word格式.docx

《实验三 内部类常用类及异常类用法Word格式.docx》由会员分享,可在线阅读,更多相关《实验三 内部类常用类及异常类用法Word格式.docx(24页珍藏版)》请在冰豆网上搜索。

实验三 内部类常用类及异常类用法Word格式.docx

Productproduct=(Product)o;

returnnewInteger(getPrice()).compareTo(product.getPrice());

publicabstractvoidoutput(Productp);

publicStringgetName(){

returnname;

publicvoidsetName(Stringname){

this.name=name;

publicintgetPrice(){

returnprice;

publicvoidsetPrice(intprice){

this.price=price;

privateStringname;

privateintprice;

publicProduct(){

}

publicProduct(Stringname,intprice){

super();

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

}

Mp3Player类

publicclassMp3PlayerextendsProduct{

publicMp3Player(Stringn,intp){

super(n,p);

publicvoidoutput(Productp)

{

System.out.println(Mp3Player.class.toString());

Mobile类

publicclassMobileextendsProduct{

publicvoidoutput(Productp)

System.out.println(Mobile.class.toString());

publicMobile(Stringn,intp)

{

super(n,p);

Store类

packagecn.edu.nwsuaf.jp.p4;

importcn.edu.nwsuaf.jp.p4.data.Mobile;

importjava.util.Arrays;

importcn.edu.nwsuaf.jp.p4.data.Product;

importcn.edu.nwsuaf.jp.p4.data.Mp3Player;

importjavax.swing.JOptionPane;

publicclassStore{

staticintcount=0;

Mp3Playerp1=newMp3Player("

MeizoX3(256MB)"

399);

Mp3Playerp2=newMp3Player("

MeizoE5(512MB)"

580);

Mp3Playerp3=newMp3Player("

XliveXMMp3Play(256MB)"

930);

Mobilem1=newMobile("

E365onChinaMobile"

1780);

Mobilem2=newMobile("

E3330onChinaMobile"

1450);

Product[]product1={p1,p2,p3,m1,m2};

Arrays.sort(product1);

Stringtext="

"

for(inti=product1.length-1;

i>

=0;

i--)

text+=product1[i]+"

\n"

count++;

}

JOptionPane.showMessageDialog(null,"

Theproductsare:

\n\n"

+text+"

\nThereare"

+count+"

products."

);

 

实验题2用StringBuilertext="

替换Stringtext="

然后通过循环使用StringBuiler类的append方法向text中把数组中的成员(按价格有序)添加到text中,修改方法JOptionPane.showMessageDialog()的参数以显示text。

运行结果如图3-1所示。

图3-1

思考问题:

对比分析StringBuiler与String的区别。

答:

一个String对象的长度是固定的,不能改变它的内容,或者是附加新的字符至String对象中。

您也许会使用+来串联字符串以达到附加新字符或字符串的目的,但+会产生一个新的String实例。

而使用StringBuiler类中的append方法则是将新的字符串添加到已经开辟的内存中,不会增加新的内存来存放新增的字符串。

使用StringBuiler类中的append方法效率比较高,并且使用StringBuiler类中的append方法可以完全替代String类。

Mp3Playerp1=newMp3Player("

Mp3Playerp3=newMp3Player("

Product[]product1={p1,p2,p3,m1,m2};

Arrays.sort(product1);

StringBuffertext=newStringBuffer();

text.append(product1[i]).append("

count++;

JOptionPane.showMessageDialog(null,"

\nThereare"

+count+"

实验题3从网上加载一个门户网站首页文件,用所学正则表达式知识,提取出其中所有邮箱地址。

提示:

读取文件的语句为

BufferedReaderbr=newBufferedReader(newFileReader("

d:

\\shared\xxx.html"

));

while((line=br.readLine())!

=null)

parse(line);

基本要求:

编写parse方法,完成上述功能。

Mail类

packageproj3;

importjava.io.BufferedReader;

importjava.io.FileNotFoundException;

importjava.io.FileReader;

importjava.io.IOException;

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;

publicclassMail{

privatestaticvoidparse(Stringtext){

Stringregex="

[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"

Patternp=Ppile(regex);

Matcherm=p.matcher(text);

while(m.find()){

Stringresult=m.group();

System.out.println(result);

}

try{

BufferedReaderbr=newBufferedReader(newFileReader("

\\1.txt"

Stringtext="

while((text=br.readLine())!

=null){

parse(text);

}catch(FileNotFoundExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(IOExceptione){

实验题4修改实验二实验题4,在Product类中添加销售日期属性及销售额属性,在sell方法中对其初始化,比较Date类与Calender类的用法,最后使用SimpleDateFormat类对销售日期进行格式化;

用类DecimalFormat的相关方法格式化属性sales,熟悉DecimalFormat的用法。

运行结果如图3-2所示。

图3-2

importjava.util.Date;

publicStringgetDate(){

returndate;

publicvoidsetDate(Stringdate){

this.date=date;

publicStringgetSale(){

returnsale;

publicvoidsetSale(Stringsale){

this.sale=sale;

Stringdate;

Stringsale;

publicProduct(Stringdate,Stringsale,Stringname,intprice){

RMB"

+"

dateandtimeofsale:

+getDate()+"

sales:

+getSale()+"

¥"

publicintcompareTo(Objecto){

Productproduct=(Product)o;

returnnewInteger(getPrice()).compareTo(product.getPrice());

publicabstractvoidoutput(Productp);

publicabstractvoidsell();

publicProduct(){

importjava.text.DecimalFormat;

importjava.text.SimpleDateFormat;

publicMobile(Stringd,Strings,Stringn,intp)

super(d,s,n,p);

publicvoidsell()

Datedatetime=newDate();

Stringpat1="

yyyy年MM月dd日HH时mm分ss秒SSS毫秒"

;

Stringpat2="

yyyy-MM-ddHH:

mm:

ss.SSS"

SimpleDateFormatsdf1=newSimpleDateFormat(pat1);

SimpleDateFormatsdf2=newSimpleDateFormat(pat2);

datetime=null;

try{

datetime=sdf1.parse(date);

}catch(Exceptione){

e.printStackTrace();

//打印异常信息

date=sdf2.format(datetime);

//将日期变为新的格式

Stringpattern="

######,###"

DecimalFormatdf=null;

df=newDecimalFormat(pattern);

intvalue=Integer.parseInt(sale,10);

sale=df.format(value);

publicMp3Player(Stringd,Strings,Stringn,intp)

SimpleDateFormatsdf2=newSimpleDateFormat(pat2);

2013年5月14日22时03分41秒054毫秒"

106800"

2013年5月15日22时03分41秒054毫秒"

2013年5月16日22时03分41秒054毫秒"

2013年5月17日22时03分41秒054毫秒"

2013年5月18日22时03分41秒054毫秒"

product1[i].sell();

实验题5编写一个程序,输入一个班某门课程成绩,统计及格人数、不及格人数平均分。

为此设计一个异常类,当输入的成绩小于0分或大于100分时,抛出异常,程序将捕捉这个异常,并作出相应处理。

基本要求:

编写完整程序

Grade代码:

packageedu;

importjava.util.Scanner;

publicclassGrade{

public

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1