Java语言程序设计课后习题答案全集.docx
《Java语言程序设计课后习题答案全集.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计课后习题答案全集.docx(85页珍藏版)》请在冰豆网上搜索。
Java语言程序设计课后习题答案全集
指出JAVA语言的主要特点和JAVA程序的执行过程。
答:
(1)强类型;
(2)编译和解释;
(3)自动无用内存回收功能;
(4)面向对象;
(5)与平台无关;
(6)安全性;
(7)分布式计算;
(8)多线程;
程序执行过程如图所示:
编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。
说出开发与运行JAVA程序的重要步骤。
(1)编写源文件:
使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;
(2)编译Java源文件:
使用Java编译器编译源文件得到字节码文件;
(3)运行Java程序:
Java程序分为两类——Java应用程序必须通过Java解释器来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。
如何区分应用程序和小应用程序?
应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口;小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。
说出JAVA源文件的命名规则。
源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。
JAVA语言使用什么字符集?
共有多少个不同的字符?
Java语言使用Unicode字符集,共有65535个字符。
JAVA语言标识符的命名规则是什么?
(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成
(2)限定标识符的第一个字符不能是数字字符
(3)不能和关键字重名
(4)长度不能超过255个字符
JAVA有那些基本数据类型,它们的常量又是如何书写的?
数据类型
关键字
字节数
默认值
常量举例
范围
逻辑类型
布尔型
boolean
1
false
false,true
字符型
char
2
0
a,我,ぽ
0~65535
整数类型
字节性
byte
12,13,45
-128~127
短整型
short
-32768~32767
整型
int
8
-2E31~2E31-1
长整型
long
0L
12L,13L,45L
-2E63~2E63-1
浮点类型
单精度浮点
float
4
0F
,
-10E38~-10E-38
10E-38~10E38
双精度浮点
double
0D
-10E308~-10E-308
10E-308~10E308
指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。
整型常量:
4)0xABCL,8)003,10)077,12)056L
浮点数类型常量:
3)-1E-31,5).32E3113)0.,14).0
两者都不是:
1),2),6),7),9),11)
第二章运算和语句
Java的字符能参加算术运算吗?
可以。
(1)字符与整型数据运算,结果为整型数据,只能赋给整型变量,如果附给字符型变量会损失精度,需要强制类型装换;
(2)字符与字符运算,结果为字符型数据,可以直接赋给字符型或整型变量。
占字节多的变量能直接赋值给占字节少的变量么?
不能直接赋值,需要强制类型转换。
试用Java语言表达式描述以下数学计算式或逻辑条件:
1)
解:
V=3)**(r,3);
2)
R=/R1+R2);
3)
y=(x,5)+(x,3)+6;
4)
F=*M1*M2/(R*R);
5)
(x)/a*x+((π*x/2));
6)0解:a>0&&a<107)条件x=1与y=2有且只有一个成立.解:(x==1&&y!=2)||(x!=1&&y==2)设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。1)解:a=5;b=16;2);解:a=5;c=10若一个数恰好等于它的因子之和,则这个数称为“完全数”。编写程序求1000之内的所有完全数。分析:若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。例如6=1+2+3;28=1+2+4+7+14程序运行结果:/***@author段智敏*/publicclassWork2_6{publicstaticvoidmain(String[]args){StringresultString="1000以内,完全数有:";;/***输入正整数n,输出由n行n列星号字符组成的三角形图案。*@author段智敏*/publicclassWork2_8{publicstaticvoidmain(Stringargs[]){ScannerconsoleScanner=newScanner;"请输入正整数n:");Stringstr=();intn=-1;try{n=(str);}catch(NumberFormatExceptione){"输入非法字符,程序结束!!!");return;}if(n<1)"输入的数不是正实数,程序结束!!!");else{for(inti=0;i{for(intj=0;j{"");}for(intk=0;k{"*");}}}}}设有整型变量x和y的值分别为5和110。试指出执行了以下循环语句后,变量x和y的值分别多少?1)while(x<=y)x*=2; 解:x=160;y=110;2)do{x=y/x;y=y-x;}while(y>=1); 解:x=18;y=0;求小于999的所有水仙花数。程序运行结果:源代码文件:/***求小于999的所有水仙花数*@author段智敏*/publicclassWork2_10{publicstaticvoidmain(String[]args){StringresultString=newString("1000之前的所有水仙花数有:");..../***按公式计算:e=1+1/1!+1/2!+1/3!+1/4!+......*@author段智敏*/publicclassWork2_12{publicstaticvoidmain(Stringargs[]){intn=1000;.程序运行结果:源代码文件:/***圆周率计算*@author段智敏*/publicclassWork2_13{publicstaticvoidmain(Stringargs[]){intnum=1000000;例变量名被实例方法,构造方法访问类变量直接分配内存各个对象之间共享这段已经分配完的内存对象名.类变量名;类名.类变量名被实例方法,类方法,构造方法访问成员方法实例方法不分配入口地址共享一个入口地址对象名.实例方法名实例变量、类变量,实例方法、类方法类方法直接分配入口地址共享这个入口地址对象名.类方法名;类名.类方法名类变量、类方法子类能继承超类的哪些成员变量和方法? 同包继承不同包继承(import进来的)私有(private)不继承不继承友好(缺省默认)继承不继承受保护(protected)继承继承共有(public)继承继承子类在什么情况下能隐藏超类的成员变量和方法?解:子类重载父类的成员变量、方法时候。在子类中是否允许有一个方法和超类的方法名字相同,而类型不同?解:不允许。方法重写是指:子类中定义一个方法,并且这个方法的名字、返回类型、参数个数、和类型与从父类继承的方法完全相同。以下程序有什么错误?解:类方法main()调用了类的实例变量,main方法是类方法,不能调用类的实例变量a,导致错误!声明一个复数类Complex。实现其基本功能。复数类:/***复数类*@author段智敏*/publicclassComplex{privatedoublereal;ength,而确定一个String对象的长度用对象名.length()用toUpperCase()和toLowerCase()方法实现大小写转换答:publicclassUpperAndLowerTest{publicstaticvoidmain(Stringargs[]){Strings1=("ABCdefgHIJkhl123"),s2,s3;"未转换时的字符串s1="+s1);bytet1[]=();{arrayInt[index]=i;index++;}}}/***打印数组元素*/publicStringprintArray(){Stringresult="";for(inti=0;i<;i++){if(arrayInt[i]!=0)result+=arrayInt[i]+"";}returnresult;}publicstaticvoidmain(String[]args){Work4_10w=newWork4_10(100);}}编写实现从两个字符串中找出最长的相同字符列的代码。程序运行结果:/***找出两个字符串中,最长的相同字符列*@author段智敏*/publicclassWork4_11{publicstaticvoidmain(String[]args){Stringstr1="0000abcdef0000";Stringstr2="123ab4567cdef789abcdef";Stringstr3=getLongSameString(str1,str2);"str1="+str1);"str2="+str2);"最长的相同字符串为:"+str3);}publicstaticStringgetLongSameString(Stringstr1,Stringstr2){Stringtemp="";Stringsame="";StringlongSame="";for(inti=0;i<();i++){for(intj=i+1;j<=();j++){temp=(i,j);if(temp)>0){same=temp;if()<()){longSame=temp;}}}}returnlongSame;}}整理字符串,将字符串的前导空白符和后随空白符删去,并将字符串中非空白字符之间的连接的多个空白符只保留一个,而去掉多余的空白符。程序运行结果:publicclassWork4_12{publicstaticvoidmain(Stringargs[]){Stringstr="ILoveYou";str=();StringTokenizers=newStringTokenizer(str);StringnewStr="";while()){newStr=newStr+""+();}"旧字符串:"+str);"处理后新字符串:"+newStr);}}编写用数组实现大整数的类,提供大整数的加、减、乘等运算。程序运行结果:大整数类源文件:/***大整数类*@author段智敏*/publicclassMyBigInteger{/**能存储的最大位数*/publicstaticfinalintMAXLENGTH=100;/**正负号标识*/privateintsignum=1;/**实际存储用的数组*/privateintdataArray[];/***将参数的十进制字符串表示形式转换为BigInteger。*@paramval-要转换的十进制字符串表示形式。*/publicMyBigInteger(Stringval){(val);}/***声明一个MAXLENGTH位的,空的大整数类*/publicMyBigInteger(){dataArray=newint[];}/***根据十进制字符串表示形式转换为MyBigInteger的数据*@paramstr-十进制字符串表示形式。*/publicvoidsetData(Stringstr){dataArray=newint[];try{intend=0;signum=1;if(0)=='-'){signum=-1;end=1;}intindex=0;for(inti=()-1;i>=end;i--){dataArray[index++]=(i)));}}catch(NumberFormatExceptione){();}}/***加法,返回其值为(this+val)的BigInteger。*@paramval-将添加到此BigInteger中的值。*@return-this+val*/publicMyBigIntegeradd(MyBigIntegerval){MyBigIntegerresult=newMyBigInteger();if>0&&<0)ubtract());}ength()<().length())ength()==().length())oString().length();}/***检查进位,做加法时检测*@parami*/privatevoidcarryBit(inti){if(i<-1)[i+1]+=[i]/10;[i]=[i]%10;}/***检查借位,做减法时检测*/privatevoidborrowBit(inti){if(i<-1){if[i]<0){[i]=[i]+10;[i+1]--;}}}} 大整数类测试类源文件:import*大整数测试类*@author段智敏*/publicclassTestBigInteger{publicstaticvoidmain(String[]args){Stringa="";Stringb="57";MyBigIntegerm1=newMyBigInteger(a);MyBigIntegerm2=newMyBigInteger(b);MyBigIntegerm3;BigIntegerb1=newBigInteger(a);;import.*;/***创建一个有文本框和三个按钮的程序。当按下某个按钮时,使不同的文字显示在文本框中。*@author段智敏*/publicclassWork5_7extendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privateJTextFieldtext;privateJButtonbutton1,button2,button3,exit_button;privateJPanelpanel;publicWork5_7(){text=newJTextField(10);button1=newJButton("刘德华");button2=newJButton("张学友");button3=newJButton("蔡依林");exit_button=newJButton("退出");(this);(this);(this);(this);panel=newJPanel();(button1);(button2);(button3);(newFlowLayout());(text);(panel);(exit_button);(300,200);(true);;}publicvoidactionPerformed(ActionEvente){if()==exit_button){(0);}else{());}}publicstaticvoidmain(Stringargs[]){newWork5_7();}}编写一个有两个文本框的小应用程序,在第一个文本框输入英语单词,在第二个文本框会自动显示汉语解释;在第一个文本框输入汉语单词,在第二个文本框中显示英语解释。设英语单词表只有少许几个。程序运行结果:源文件:import.*;import.*;/***@author段智敏*/publicclassWork5_8extendsJFrameimplementsActionListener,KeyListener{privatestaticfinallongserialVersionUID=1L;privateJTextFieldinput_English,input_Chinese;privateJLabellabel1,label2;privateJPanelpanel1,panel2;privateString[]word_English={"moon","star","sun"};;import.*;import.*;/****@author段智敏*/publicclassWork5_9extendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privateJLabelresult_label;privateJTextAreainput_textArea;privateJTextFieldshowResult_textField;privateJButtonsum_button,average_button,clear_button;privateJPanelpanelNorth,panelSouth;publicWork5_9(){result_label=newJLabel("请选择你的操作");showResult_textField=newJTextField(12);input_textArea=newJTextArea();sum_button=newJButton("求 和");average_button=newJButton("平均值");clear_button=newJButton("清空");panelNorth=newJPanel();panelSouth=newJPanel();(this);(this);(this);(sum_button);(average_button);(result_label);(showResult_textField);(clear_button);(panelNorth,;(newJScrollPane(input_textArea),;(panelSouth,;(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){
a>0&&a<10
7)条件x=1与y=2有且只有一个成立.
(x==1&&y!
=2)||(x!
=1&&y==2)
设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。
a=5;b=16;
;
a=5;c=10
若一个数恰好等于它的因子之和,则这个数称为“完全数”。
编写程序求1000之内的所有完全数。
分析:
若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。
例如6=1+2+3;28=1+2+4+7+14
程序运行结果:
/**
*@author段智敏
*/
publicclassWork2_6{
publicstaticvoidmain(String[]args){
StringresultString="1000以内,完全数有:
";
;
*输入正整数n,输出由n行n列星号字符组成的三角形图案。
publicclassWork2_8
{
publicstaticvoidmain(Stringargs[])
ScannerconsoleScanner=newScanner;
"请输入正整数n:
");
Stringstr=();
intn=-1;
try
n=(str);
}
catch(NumberFormatExceptione)
"输入非法字符,程序结束!
!
return;
if(n<1)
"输入的数不是正实数,程序结束!
else
for(inti=0;i{for(intj=0;j{"");}for(intk=0;k{"*");}}}}}设有整型变量x和y的值分别为5和110。试指出执行了以下循环语句后,变量x和y的值分别多少?1)while(x<=y)x*=2; 解:x=160;y=110;2)do{x=y/x;y=y-x;}while(y>=1); 解:x=18;y=0;求小于999的所有水仙花数。程序运行结果:源代码文件:/***求小于999的所有水仙花数*@author段智敏*/publicclassWork2_10{publicstaticvoidmain(String[]args){StringresultString=newString("1000之前的所有水仙花数有:");..../***按公式计算:e=1+1/1!+1/2!+1/3!+1/4!+......*@author段智敏*/publicclassWork2_12{publicstaticvoidmain(Stringargs[]){intn=1000;.程序运行结果:源代码文件:/***圆周率计算*@author段智敏*/publicclassWork2_13{publicstaticvoidmain(Stringargs[]){intnum=1000000;例变量名被实例方法,构造方法访问类变量直接分配内存各个对象之间共享这段已经分配完的内存对象名.类变量名;类名.类变量名被实例方法,类方法,构造方法访问成员方法实例方法不分配入口地址共享一个入口地址对象名.实例方法名实例变量、类变量,实例方法、类方法类方法直接分配入口地址共享这个入口地址对象名.类方法名;类名.类方法名类变量、类方法子类能继承超类的哪些成员变量和方法? 同包继承不同包继承(import进来的)私有(private)不继承不继承友好(缺省默认)继承不继承受保护(protected)继承继承共有(public)继承继承子类在什么情况下能隐藏超类的成员变量和方法?解:子类重载父类的成员变量、方法时候。在子类中是否允许有一个方法和超类的方法名字相同,而类型不同?解:不允许。方法重写是指:子类中定义一个方法,并且这个方法的名字、返回类型、参数个数、和类型与从父类继承的方法完全相同。以下程序有什么错误?解:类方法main()调用了类的实例变量,main方法是类方法,不能调用类的实例变量a,导致错误!声明一个复数类Complex。实现其基本功能。复数类:/***复数类*@author段智敏*/publicclassComplex{privatedoublereal;ength,而确定一个String对象的长度用对象名.length()用toUpperCase()和toLowerCase()方法实现大小写转换答:publicclassUpperAndLowerTest{publicstaticvoidmain(Stringargs[]){Strings1=("ABCdefgHIJkhl123"),s2,s3;"未转换时的字符串s1="+s1);bytet1[]=();{arrayInt[index]=i;index++;}}}/***打印数组元素*/publicStringprintArray(){Stringresult="";for(inti=0;i<;i++){if(arrayInt[i]!=0)result+=arrayInt[i]+"";}returnresult;}publicstaticvoidmain(String[]args){Work4_10w=newWork4_10(100);}}编写实现从两个字符串中找出最长的相同字符列的代码。程序运行结果:/***找出两个字符串中,最长的相同字符列*@author段智敏*/publicclassWork4_11{publicstaticvoidmain(String[]args){Stringstr1="0000abcdef0000";Stringstr2="123ab4567cdef789abcdef";Stringstr3=getLongSameString(str1,str2);"str1="+str1);"str2="+str2);"最长的相同字符串为:"+str3);}publicstaticStringgetLongSameString(Stringstr1,Stringstr2){Stringtemp="";Stringsame="";StringlongSame="";for(inti=0;i<();i++){for(intj=i+1;j<=();j++){temp=(i,j);if(temp)>0){same=temp;if()<()){longSame=temp;}}}}returnlongSame;}}整理字符串,将字符串的前导空白符和后随空白符删去,并将字符串中非空白字符之间的连接的多个空白符只保留一个,而去掉多余的空白符。程序运行结果:publicclassWork4_12{publicstaticvoidmain(Stringargs[]){Stringstr="ILoveYou";str=();StringTokenizers=newStringTokenizer(str);StringnewStr="";while()){newStr=newStr+""+();}"旧字符串:"+str);"处理后新字符串:"+newStr);}}编写用数组实现大整数的类,提供大整数的加、减、乘等运算。程序运行结果:大整数类源文件:/***大整数类*@author段智敏*/publicclassMyBigInteger{/**能存储的最大位数*/publicstaticfinalintMAXLENGTH=100;/**正负号标识*/privateintsignum=1;/**实际存储用的数组*/privateintdataArray[];/***将参数的十进制字符串表示形式转换为BigInteger。*@paramval-要转换的十进制字符串表示形式。*/publicMyBigInteger(Stringval){(val);}/***声明一个MAXLENGTH位的,空的大整数类*/publicMyBigInteger(){dataArray=newint[];}/***根据十进制字符串表示形式转换为MyBigInteger的数据*@paramstr-十进制字符串表示形式。*/publicvoidsetData(Stringstr){dataArray=newint[];try{intend=0;signum=1;if(0)=='-'){signum=-1;end=1;}intindex=0;for(inti=()-1;i>=end;i--){dataArray[index++]=(i)));}}catch(NumberFormatExceptione){();}}/***加法,返回其值为(this+val)的BigInteger。*@paramval-将添加到此BigInteger中的值。*@return-this+val*/publicMyBigIntegeradd(MyBigIntegerval){MyBigIntegerresult=newMyBigInteger();if>0&&<0)ubtract());}ength()<().length())ength()==().length())oString().length();}/***检查进位,做加法时检测*@parami*/privatevoidcarryBit(inti){if(i<-1)[i+1]+=[i]/10;[i]=[i]%10;}/***检查借位,做减法时检测*/privatevoidborrowBit(inti){if(i<-1){if[i]<0){[i]=[i]+10;[i+1]--;}}}} 大整数类测试类源文件:import*大整数测试类*@author段智敏*/publicclassTestBigInteger{publicstaticvoidmain(String[]args){Stringa="";Stringb="57";MyBigIntegerm1=newMyBigInteger(a);MyBigIntegerm2=newMyBigInteger(b);MyBigIntegerm3;BigIntegerb1=newBigInteger(a);;import.*;/***创建一个有文本框和三个按钮的程序。当按下某个按钮时,使不同的文字显示在文本框中。*@author段智敏*/publicclassWork5_7extendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privateJTextFieldtext;privateJButtonbutton1,button2,button3,exit_button;privateJPanelpanel;publicWork5_7(){text=newJTextField(10);button1=newJButton("刘德华");button2=newJButton("张学友");button3=newJButton("蔡依林");exit_button=newJButton("退出");(this);(this);(this);(this);panel=newJPanel();(button1);(button2);(button3);(newFlowLayout());(text);(panel);(exit_button);(300,200);(true);;}publicvoidactionPerformed(ActionEvente){if()==exit_button){(0);}else{());}}publicstaticvoidmain(Stringargs[]){newWork5_7();}}编写一个有两个文本框的小应用程序,在第一个文本框输入英语单词,在第二个文本框会自动显示汉语解释;在第一个文本框输入汉语单词,在第二个文本框中显示英语解释。设英语单词表只有少许几个。程序运行结果:源文件:import.*;import.*;/***@author段智敏*/publicclassWork5_8extendsJFrameimplementsActionListener,KeyListener{privatestaticfinallongserialVersionUID=1L;privateJTextFieldinput_English,input_Chinese;privateJLabellabel1,label2;privateJPanelpanel1,panel2;privateString[]word_English={"moon","star","sun"};;import.*;import.*;/****@author段智敏*/publicclassWork5_9extendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privateJLabelresult_label;privateJTextAreainput_textArea;privateJTextFieldshowResult_textField;privateJButtonsum_button,average_button,clear_button;privateJPanelpanelNorth,panelSouth;publicWork5_9(){result_label=newJLabel("请选择你的操作");showResult_textField=newJTextField(12);input_textArea=newJTextArea();sum_button=newJButton("求 和");average_button=newJButton("平均值");clear_button=newJButton("清空");panelNorth=newJPanel();panelSouth=newJPanel();(this);(this);(this);(sum_button);(average_button);(result_label);(showResult_textField);(clear_button);(panelNorth,;(newJScrollPane(input_textArea),;(panelSouth,;(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){
for(intj=0;j{"");}for(intk=0;k{"*");}}}}}设有整型变量x和y的值分别为5和110。试指出执行了以下循环语句后,变量x和y的值分别多少?1)while(x<=y)x*=2; 解:x=160;y=110;2)do{x=y/x;y=y-x;}while(y>=1); 解:x=18;y=0;求小于999的所有水仙花数。程序运行结果:源代码文件:/***求小于999的所有水仙花数*@author段智敏*/publicclassWork2_10{publicstaticvoidmain(String[]args){StringresultString=newString("1000之前的所有水仙花数有:");..../***按公式计算:e=1+1/1!+1/2!+1/3!+1/4!+......*@author段智敏*/publicclassWork2_12{publicstaticvoidmain(Stringargs[]){intn=1000;.程序运行结果:源代码文件:/***圆周率计算*@author段智敏*/publicclassWork2_13{publicstaticvoidmain(Stringargs[]){intnum=1000000;例变量名被实例方法,构造方法访问类变量直接分配内存各个对象之间共享这段已经分配完的内存对象名.类变量名;类名.类变量名被实例方法,类方法,构造方法访问成员方法实例方法不分配入口地址共享一个入口地址对象名.实例方法名实例变量、类变量,实例方法、类方法类方法直接分配入口地址共享这个入口地址对象名.类方法名;类名.类方法名类变量、类方法子类能继承超类的哪些成员变量和方法? 同包继承不同包继承(import进来的)私有(private)不继承不继承友好(缺省默认)继承不继承受保护(protected)继承继承共有(public)继承继承子类在什么情况下能隐藏超类的成员变量和方法?解:子类重载父类的成员变量、方法时候。在子类中是否允许有一个方法和超类的方法名字相同,而类型不同?解:不允许。方法重写是指:子类中定义一个方法,并且这个方法的名字、返回类型、参数个数、和类型与从父类继承的方法完全相同。以下程序有什么错误?解:类方法main()调用了类的实例变量,main方法是类方法,不能调用类的实例变量a,导致错误!声明一个复数类Complex。实现其基本功能。复数类:/***复数类*@author段智敏*/publicclassComplex{privatedoublereal;ength,而确定一个String对象的长度用对象名.length()用toUpperCase()和toLowerCase()方法实现大小写转换答:publicclassUpperAndLowerTest{publicstaticvoidmain(Stringargs[]){Strings1=("ABCdefgHIJkhl123"),s2,s3;"未转换时的字符串s1="+s1);bytet1[]=();{arrayInt[index]=i;index++;}}}/***打印数组元素*/publicStringprintArray(){Stringresult="";for(inti=0;i<;i++){if(arrayInt[i]!=0)result+=arrayInt[i]+"";}returnresult;}publicstaticvoidmain(String[]args){Work4_10w=newWork4_10(100);}}编写实现从两个字符串中找出最长的相同字符列的代码。程序运行结果:/***找出两个字符串中,最长的相同字符列*@author段智敏*/publicclassWork4_11{publicstaticvoidmain(String[]args){Stringstr1="0000abcdef0000";Stringstr2="123ab4567cdef789abcdef";Stringstr3=getLongSameString(str1,str2);"str1="+str1);"str2="+str2);"最长的相同字符串为:"+str3);}publicstaticStringgetLongSameString(Stringstr1,Stringstr2){Stringtemp="";Stringsame="";StringlongSame="";for(inti=0;i<();i++){for(intj=i+1;j<=();j++){temp=(i,j);if(temp)>0){same=temp;if()<()){longSame=temp;}}}}returnlongSame;}}整理字符串,将字符串的前导空白符和后随空白符删去,并将字符串中非空白字符之间的连接的多个空白符只保留一个,而去掉多余的空白符。程序运行结果:publicclassWork4_12{publicstaticvoidmain(Stringargs[]){Stringstr="ILoveYou";str=();StringTokenizers=newStringTokenizer(str);StringnewStr="";while()){newStr=newStr+""+();}"旧字符串:"+str);"处理后新字符串:"+newStr);}}编写用数组实现大整数的类,提供大整数的加、减、乘等运算。程序运行结果:大整数类源文件:/***大整数类*@author段智敏*/publicclassMyBigInteger{/**能存储的最大位数*/publicstaticfinalintMAXLENGTH=100;/**正负号标识*/privateintsignum=1;/**实际存储用的数组*/privateintdataArray[];/***将参数的十进制字符串表示形式转换为BigInteger。*@paramval-要转换的十进制字符串表示形式。*/publicMyBigInteger(Stringval){(val);}/***声明一个MAXLENGTH位的,空的大整数类*/publicMyBigInteger(){dataArray=newint[];}/***根据十进制字符串表示形式转换为MyBigInteger的数据*@paramstr-十进制字符串表示形式。*/publicvoidsetData(Stringstr){dataArray=newint[];try{intend=0;signum=1;if(0)=='-'){signum=-1;end=1;}intindex=0;for(inti=()-1;i>=end;i--){dataArray[index++]=(i)));}}catch(NumberFormatExceptione){();}}/***加法,返回其值为(this+val)的BigInteger。*@paramval-将添加到此BigInteger中的值。*@return-this+val*/publicMyBigIntegeradd(MyBigIntegerval){MyBigIntegerresult=newMyBigInteger();if>0&&<0)ubtract());}ength()<().length())ength()==().length())oString().length();}/***检查进位,做加法时检测*@parami*/privatevoidcarryBit(inti){if(i<-1)[i+1]+=[i]/10;[i]=[i]%10;}/***检查借位,做减法时检测*/privatevoidborrowBit(inti){if(i<-1){if[i]<0){[i]=[i]+10;[i+1]--;}}}} 大整数类测试类源文件:import*大整数测试类*@author段智敏*/publicclassTestBigInteger{publicstaticvoidmain(String[]args){Stringa="";Stringb="57";MyBigIntegerm1=newMyBigInteger(a);MyBigIntegerm2=newMyBigInteger(b);MyBigIntegerm3;BigIntegerb1=newBigInteger(a);;import.*;/***创建一个有文本框和三个按钮的程序。当按下某个按钮时,使不同的文字显示在文本框中。*@author段智敏*/publicclassWork5_7extendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privateJTextFieldtext;privateJButtonbutton1,button2,button3,exit_button;privateJPanelpanel;publicWork5_7(){text=newJTextField(10);button1=newJButton("刘德华");button2=newJButton("张学友");button3=newJButton("蔡依林");exit_button=newJButton("退出");(this);(this);(this);(this);panel=newJPanel();(button1);(button2);(button3);(newFlowLayout());(text);(panel);(exit_button);(300,200);(true);;}publicvoidactionPerformed(ActionEvente){if()==exit_button){(0);}else{());}}publicstaticvoidmain(Stringargs[]){newWork5_7();}}编写一个有两个文本框的小应用程序,在第一个文本框输入英语单词,在第二个文本框会自动显示汉语解释;在第一个文本框输入汉语单词,在第二个文本框中显示英语解释。设英语单词表只有少许几个。程序运行结果:源文件:import.*;import.*;/***@author段智敏*/publicclassWork5_8extendsJFrameimplementsActionListener,KeyListener{privatestaticfinallongserialVersionUID=1L;privateJTextFieldinput_English,input_Chinese;privateJLabellabel1,label2;privateJPanelpanel1,panel2;privateString[]word_English={"moon","star","sun"};;import.*;import.*;/****@author段智敏*/publicclassWork5_9extendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privateJLabelresult_label;privateJTextAreainput_textArea;privateJTextFieldshowResult_textField;privateJButtonsum_button,average_button,clear_button;privateJPanelpanelNorth,panelSouth;publicWork5_9(){result_label=newJLabel("请选择你的操作");showResult_textField=newJTextField(12);input_textArea=newJTextArea();sum_button=newJButton("求 和");average_button=newJButton("平均值");clear_button=newJButton("清空");panelNorth=newJPanel();panelSouth=newJPanel();(this);(this);(this);(sum_button);(average_button);(result_label);(showResult_textField);(clear_button);(panelNorth,;(newJScrollPane(input_textArea),;(panelSouth,;(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){
"");
for(intk=0;k
"*");
设有整型变量x和y的值分别为5和110。
试指出执行了以下循环语句后,变量x和y的值分别多少?
1)while(x<=y)x*=2;
x=160;y=110;
2)do{x=y/x;y=y-x;}while(y>=1);
x=18;y=0;
求小于999的所有水仙花数。
源代码文件:
*求小于999的所有水仙花数
publicclassWork2_10
StringresultString=newString("1000之前的所有水仙花数有:
....
*按公式计算:
e=1+1/1!
+1/2!
+1/3!
+1/4!
+......
publicclassWork2_12
intn=1000;.
*圆周率计算
publicclassWork2_13
intnum=1000000;
例变量名
被实例方法,构造方法访问
类变量
直接分配内存
各个对象之间共享这段已经分配完的内存
对象名.类变量名;类名.类变量名
被实例方法,类方法,构造方法访问
成员方法
实例方法
不分配入口地址
共享一个入口地址
对象名.实例方法名
实例变量、类变量,实例方法、类方法
类方法
直接分配入口地址
共享这个入口地址
对象名.类方法名;类名.类方法名
类变量、类方法
子类能继承超类的哪些成员变量和方法?
同包继承
不同包继承(import进来的)
私有(private)
不继承
友好(缺省默认)
继承
受保护(protected)
共有(public)
子类在什么情况下能隐藏超类的成员变量和方法?
子类重载父类的成员变量、方法时候。
在子类中是否允许有一个方法和超类的方法名字相同,而类型不同?
不允许。
方法重写是指:
子类中定义一个方法,并且这个方法的名字、返回类型、参数个数、和类型与从父类继承的方法完全相同。
以下程序有什么错误?
类方法main()调用了类的实例变量,main方法是类方法,不能调用类的实例变量a,导致错误!
声明一个复数类Complex。
实现其基本功能。
复数类:
*复数类
publicclassComplex
privatedoublereal;
ength,而确定一个String对象的长度用对象名.length()
用toUpperCase()和toLowerCase()方法实现大小写转换
publicclassUpperAndLowerTest{
publicstaticvoidmain(Stringargs[]){
Strings1=("ABCdefgHIJkhl123"),s2,s3;
"未转换时的字符串s1="+s1);
bytet1[]=();
arrayInt[index]=i;
index++;
*打印数组元素
publicStringprintArray()
Stringresult="";
for(inti=0;i<;i++)
if(arrayInt[i]!
=0)
result+=arrayInt[i]+"";
returnresult;
publicstaticvoidmain(String[]args)
Work4_10w=newWork4_10(100);
编写实现从两个字符串中找出最长的相同字符列的代码。
*找出两个字符串中,最长的相同字符列
publicclassWork4_11
Stringstr1="0000abcdef0000";
Stringstr2="123ab4567cdef789abcdef";
Stringstr3=getLongSameString(str1,str2);
"str1="+str1);
"str2="+str2);
"最长的相同字符串为:
"+str3);
publicstaticStringgetLongSameString(Stringstr1,Stringstr2)
Stringtemp="";
Stringsame="";
StringlongSame="";
for(inti=0;i<();i++)
for(intj=i+1;j<=();j++)
temp=(i,j);
if(temp)>0)
same=temp;
if()<())
longSame=temp;
returnlongSame;
整理字符串,将字符串的前导空白符和后随空白符删去,并将字符串中非空白字符之间的连接的多个空白符只保留一个,而去掉多余的空白符。
publicclassWork4_12
Stringstr="ILoveYou";
str=();
StringTokenizers=newStringTokenizer(str);
StringnewStr="";
while()){
newStr=newStr+""+();
"旧字符串:
"+str);
"处理后新字符串:
"+newStr);
编写用数组实现大整数的类,提供大整数的加、减、乘等运算。
大整数类源文件:
*大整数类
publicclassMyBigInteger
/**能存储的最大位数*/
publicstaticfinalintMAXLENGTH=100;
/**正负号标识*/
privateintsignum=1;
/**实际存储用的数组*/
privateintdataArray[];
*将参数的十进制字符串表示形式转换为BigInteger。
*@paramval-要转换的十进制字符串表示形式。
publicMyBigInteger(Stringval)
(val);
*声明一个MAXLENGTH位的,空的大整数类
publicMyBigInteger()
dataArray=newint[];
*根据十进制字符串表示形式转换为MyBigInteger的数据
*@paramstr-十进制字符串表示形式。
publicvoidsetData(Stringstr)
intend=0;
signum=1;
if(0)=='-')
signum=-1;
end=1;
intindex=0;
for(inti=()-1;i>=end;i--)
dataArray[index++]=(i)));
();
*加法,返回其值为(this+val)的BigInteger。
*@paramval-将添加到此BigInteger中的值。
*@return-this+val
publicMyBigIntegeradd(MyBigIntegerval)
MyBigIntegerresult=newMyBigInteger();
if>0&&<0)ubtract());
ength()<().length())ength()==().length())oString().length();
*检查进位,做加法时检测
*@parami
privatevoidcarryBit(inti)
if(i<-1)
[i+1]+=[i]/10;
[i]=[i]%10;
*检查借位,做减法时检测
privatevoidborrowBit(inti)
if[i]<0)
[i]=[i]+10;
[i+1]--;
大整数类测试类源文件:
import*大整数测试类
publicclassTestBigInteger
Stringa="";
Stringb="57";
MyBigIntegerm1=newMyBigInteger(a);
MyBigIntegerm2=newMyBigInteger(b);
MyBigIntegerm3;
BigIntegerb1=newBigInteger(a);
import.*;
*创建一个有文本框和三个按钮的程序。
当按下某个按钮时,使不同的文字显示在文本框中。
publicclassWork5_7extendsJFrameimplementsActionListener
privatestaticfinallongserialVersionUID=1L;
privateJTextFieldtext;
privateJButtonbutton1,button2,button3,exit_button;
privateJPanelpanel;
publicWork5_7()
text=newJTextField(10);
button1=newJButton("刘德华");
button2=newJButton("张学友");
button3=newJButton("蔡依林");
exit_button=newJButton("退出");
(this);
panel=newJPanel();
(button1);
(button2);
(button3);
(newFlowLayout());
(text);
(panel);
(exit_button);
(300,200);
(true);
publicvoidactionPerformed(ActionEvente)
if()==exit_button)
(0);
());
newWork5_7();
编写一个有两个文本框的小应用程序,在第一个文本框输入英语单词,在第二个文本框会自动显示汉语解释;在第一个文本框输入汉语单词,在第二个文本框中显示英语解释。
设英语单词表只有少许几个。
源文件:
publicclassWork5_8extendsJFrameimplementsActionListener,KeyListener
privateJTextFieldinput_English,input_Chinese;
privateJLabellabel1,label2;
privateJPanelpanel1,panel2;
privateString[]word_English={"moon","star","sun"};
*
publicclassWork5_9extendsJFrameimplementsActionListener
privateJLabelresult_label;
privateJTextAreainput_textArea;
privateJTextFieldshowResult_textField;
privateJButtonsum_button,average_button,clear_button;
privateJPanelpanelNorth,panelSouth;
publicWork5_9()
result_label=newJLabel("请选择你的操作");
showResult_textField=newJTextField(12);
input_textArea=newJTextArea();
sum_button=newJButton("求 和");
average_button=newJButton("平均值");
clear_button=newJButton("清空");
panelNorth=newJPanel();
panelSouth=newJPanel();
(sum_button);
(average_button);
(result_label);
(showResult_textField);
(clear_button);
(panelNorth,;
(newJScrollPane(input_textArea),;
(panelSouth,;
(newWindowAdapter()
publicvoidwindowClosing(WindowEvente)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1