第08周实验 枚举 泛型 常用类Word文件下载.docx

上传人:b****5 文档编号:17911095 上传时间:2022-12-12 格式:DOCX 页数:18 大小:47.24KB
下载 相关 举报
第08周实验 枚举 泛型 常用类Word文件下载.docx_第1页
第1页 / 共18页
第08周实验 枚举 泛型 常用类Word文件下载.docx_第2页
第2页 / 共18页
第08周实验 枚举 泛型 常用类Word文件下载.docx_第3页
第3页 / 共18页
第08周实验 枚举 泛型 常用类Word文件下载.docx_第4页
第4页 / 共18页
第08周实验 枚举 泛型 常用类Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第08周实验 枚举 泛型 常用类Word文件下载.docx

《第08周实验 枚举 泛型 常用类Word文件下载.docx》由会员分享,可在线阅读,更多相关《第08周实验 枚举 泛型 常用类Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

第08周实验 枚举 泛型 常用类Word文件下载.docx

else

returnsummer;

/*还可以有构造方法*/

publicenumTemp{

/*通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错

*赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值

*如果不赋值则不能写构造器,赋值编译也出错*/

absoluteZero(-459),freezing(32),boiling(212),paperBurns(451);

privatefinalintvalue;

publicintgetValue(){

returnvalue;

//构造器默认也只能是private,从而保证构造函数只能在内部使用

Temp(intvalue){

this.value=value;

publicstaticvoidmain(String[]args){

/*

*枚举类型是一种类型,用于定义变量,以限制变量的赋值赋值时通过"

枚举名.值"

来取得相关枚举中的值

*/

ColorSelectm=ColorSelect.blue;

switch(m){

/*注意:

枚举重写了ToString(),说以枚举变量的值是不带前缀的

*所以为blue而非ColorSelect.blue

casered:

System.out.println("

colorisred"

);

break;

casegreen:

colorisgreen"

caseyellow:

colorisyellow"

caseblue:

colorisblue"

遍历ColorSelect中的值"

/*通过values()获得枚举值的数组*/

for(ColorSelectc:

ColorSelect.values()){

System.out.println(c);

}

System.out.println("

枚举ColorSelect中的值有:

"

+ColorSelect.values().length+"

个"

/*ordinal()返回枚举值在枚举中的索引位置,从0开始*/

System.out.println(ColorSelect.red.ordinal());

//0

System.out.println(ColorSelect.green.ordinal());

//1

System.out.println(ColorSelect.yellow.ordinal());

//2

System.out.println(ColorSelect.blue.ordinal());

//3

/*枚举默认实现了java.lang.Comparable接口*/

System.out.println(ColorSpareTo(ColorSelect.green));

System.out.println(Season.getBest());

for(Tempt:

Temp.values())

{

/*通过getValue()取得相关枚举的值*/

System.out.println(t+"

的值是"

+t.getValue());

}

要求:

(1)分析该程序,写出运行结果

【实验结果与分析】

 

2、编辑、编译、运行下面java程序

classGen<

T>

{

privateTob;

//定义泛型成员变量

publicGen(Tob){

this.ob=ob;

publicTgetOb(){

returnob;

publicvoidsetOb(Tob){

publicvoidshowTyep(){

T的实际类型是:

"

+ob.getClass().getName());

publicclassGenDemo

publicstaticvoidmain(String[]args){

//定义泛型类Gen的一个Integer版本

Gen<

Integer>

intOb=newGen<

(88);

intOb.showTyep();

inti=intOb.getOb();

value="

+i);

----------------------------------"

//定义泛型类Gen的一个String版本

String>

strOb=newGen<

("

HelloGen!

strOb.showTyep();

Strings=strOb.getOb();

+s);

要求:

_________________________________________________________________________________

3、编辑并运行下面程序,理解Date、SimpleDateFormat类的使用

用Data类不带参数的构造方法创建日期,要求日期的输出格式是:

星期小时分秒

importjava.util.*;

importjava.text.*;

classTestDateDemo

publicstaticvoidmain(Stringargs[])

Date时间=newDate();

SimpleDateFormats=newSimpleDateFormat("

EHH时mm分ss秒"

System.out.println(s.format(时间));

}

运行程序,给出正确的程序运行结果,理解正规式的使用。

________________________________________________________________________________

4、编辑并运行下面程序,理解Calendar类的使用

importjavax.swing.JOptionPane;

publicclassTestDateDemo

publicstaticvoidmain(String[]agrs){

Stringstr=JOptionPane.showInputDialog("

输入第一个年份:

intfirstYear=Integer.parseInt(str);

str=JOptionPane.showInputDialog("

输入月份:

intfirstMonth=Integer.parseInt(str);

日期:

intfirstDay=Integer.parseInt(str);

输入第二个年份:

intsecondYear=Integer.parseInt(str);

intsecondMonth=Integer.parseInt(str);

intsecondDay=Integer.parseInt(str);

Calendarcalendar=Calendar.getInstance();

calendar.set(firstYear,firstMonth,firstDay);

longtimeOne=calendar.getTimeInMillis();

System.out.println(timeOne);

calendar.set(secondYear,secondMonth,secondDay);

longtimeTwo=calendar.getTimeInMillis();

Datedate1=newDate(timeOne);

Datedate2=newDate(timeTwo);

if(date2.equals(date1)){

两个日期相同"

}elseif(date2.after(date1)){

第二个日期大"

}elseif(date2.before(date1)){

第一个日期大"

longdays=(timeOne-timeTwo)/(1000*60*60*24);

System.out.println(firstYear+"

年"

+firstMonth+"

月"

+firstDay+"

日"

System.out.println(secondYear+"

+secondMonth+"

+secondDay+"

相隔天数"

+days);

运行程序,给出正确的程序运行结果,分析程序的功能。

5、编辑并运行下面程序,理解BigInteger类的使用

importjava.math.BigInteger;

classTestNumDemo

publicstaticvoidmain(String[]args)

{

longa=2222321,b=2462355,c=16;

BigIntegerx,y,z,ans;

x=BigInteger.valueOf(a);

y=BigInteger.valueOf(b);

z=BigInteger.valueOf(c);

x="

+x+"

\ty="

+y+"

\tz="

+z);

ans=x.add(y);

//加运算

x+y="

+ans);

ans=x.subtract(y);

//减运算

x-y="

ans=x.multiply(y);

//乘运算

x*y="

ans=z.divide(y);

//除运算

z/y="

ans=x.mod(z);

//模运算

zmody="

if(pareTo(x)==0)

1"

newTestNumDemo().dis();

staticvoiddis()

BigIntegerans;

BigIntegerx=newBigInteger("

1212434623673632"

//BigInteger(intnumBits,Randomrnd)

//构造一个随机产生的大整数,范围在0到2^numBits–1之间

Randomrr=newRandom();

intnumBits=100;

BigIntegery=newBigInteger(numBits,rr);

rr=newRandom();

BigIntegerz=newBigInteger(100,10,rr);

//BigInteger(intbitLength,intcertainty,Randomrnd)

//构造一个随机产生的,正的,指定长度的,可能是素数的大整数,参数certainty指明要进行多少次素数测试

(1)运行程序,给出正确的程序运行结果,分析程序的功能。

(2)参考上面程序,编写程序验证大实数BigDecimal类,常常用在商业运算中,用来获取高精度数据

6、根据下面的要求,编辑编译程序,并对所编写的出进行测试

假定银行的一个存取款系统有两类客户,一类是现金用户,一类是信用卡用户。

银行对每个客户都要登记其姓名name,并为之分配一个唯一的账户号码id,现金用户还要记录其卡的类型(工资卡、借记卡、理财卡),而信用卡用户则根据其信用级别有一定的透支限额lineOfCredit(A级10000元、B级5000元、C级2000元、D级1000元)。

每种客户都可以实现存deposit、取withdraw、和查询余额getBalance,信用卡用户还可以查询透支情况findOverdraw。

对于现金用户,每次取款操作只能在账户实际额度balance内操作,允许现金用户改变自己的帐户类型。

(1)分析有哪些属性和方法可以作为两个子类的共同属性和方法,写出抽象类Account定义。

abstractclassAccount{

privateStringname;

publicStringid;

privatedoublebalance;

publicvoidsetBalance(doublebalance){

this.balance=balance;

publicdoublegetBalance(){

returnbalance;

publicAccount(Stringname,Stringid,doublebalance){

super();

this.name=name;

this.id=id;

publicAccount(Stringname,Stringid){

publicvoiddeposit(doubleamount){

this.balance+=amount;

abstractvoidwithdraw(doubleamount);

(2)分析CashAccount有那些新增的属性和方法,定义一个继承于Account的子类CashAccount。

publicclassCashAccountextendsAccount{

publicStringcashsort;

publicStringgetCashsort(){

returncashsort;

publicvoidsetCashsort(Stringcashsort){

this.cashsort=cashsort;

publicCashAccount(Stringname,Stringid,doublebalance,Stringcashsort){

super(name,id,balance);

publicvoidwithdraw(doubleamount){

if(this.getBalance()>

=amount){

this.setBalance(this.getBalance()-amount);

else{

System.out.println("

错误"

(3)分析CreditAccount有那些新增的属性和方法,然后定义一个继承于Account的子类CreditAccount,添加增加的属性和方法。

publicclassCreditAccountextendsAccount{

doublestaticoverdraw;

doubleoverdraw;

publicCreditAccount(Stringname,Stringid,doublebalance,

doublestaticoverdraw,doubleoverdraw){

this.staticoverdraw=staticoverdraw;

this.overdraw=overdraw;

publicvoidfindOverdraw(){

if(this.getBalance()<

0){

System.out.print("

透支"

overdraw=-(this.getBalance());

else{

未透支"

if(this.getBalance()+staticoverdraw>

(4)请按照要求编写一个程序Test,用你所定义的类完成下列业务操作。

A、用Account作为类型定义两个变量credit和debit,分别引用CreditAccount和CashAccount的对象,并完成存款500元的操作。

B、每个对象完成取款200元的操作后再次取款400元,请输出各自的余额。

C、可以通过credit查看引用对象的透支额吗,如果不能,怎样修改可以查看?

publicclassTest{

Accountcredit=newCreditAccount("

zqq"

"

20094070149"

0,500,0);

Accountdebit=newCashAccount("

zsq"

20094070101"

0,"

借记卡"

credit.deposit(500);

debit.deposit(500);

credit.withdraw(200);

debit.withdraw(200);

credit.withdraw(400);

debit.withdraw(400);

creditbalance"

+credit.getBalance());

cashbalance"

+debit.getBalance());

}}

编辑上面的程序,给出运行结果,并对程序进行分析,理解掌握类、抽象类和继承的概念与应用。

______________________________________________________________________________________________

7、定义一个Teacher类,该类提供教师的工号、姓名、职称信息,再定义一个课程类Course,描述了课程的编号、课程名称、理论课时和实验课

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

当前位置:首页 > 人文社科 > 军事政治

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

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