Java语言程序设计6Word文档下载推荐.docx
《Java语言程序设计6Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计6Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
实验内容:
1.构造函数的继承与重载。
(1)第一预测以下程序的运行结果,然后编译、执行以验证你的预测:
publicclassJLab0503{
publicstaticvoidmain(Stringargs[]){
"
创建父类对象:
"
);
SuperClasssc0=newSuperClass();
\n创建第一个子类对象:
SubClasssc1=newSubClass();
\n创建第二个子类对象:
SubClasssc2=newSubClass
(1);
}
}
classSuperClass{
SuperClass(){
父类的构造函数"
}
classSubClassextendsSuperClass{
SubClass(){
子类的第一个构造函数"
}
SubClass(inti){
子类的第二个构造函数"
运行结果:
(2)去掉SubClass的所有构造函数,然后将JLab0503类中main方式的最后两行语句删除。
预测修改后程序的运行结果,并进行验证。
代码:
packagexuxiaojun;
publicclassJLab0503{
publicstaticvoidmain(Stringargs[]){
SuperClasssc0=newSuperClass();
SubClasssc1=newSubClass();
classSuperClass{
SuperClass(){
classSubClassextendsSuperClass{
2.抽象类与接口。
(1)试改写实验指导手册(5)中第3题的Pet类,其中move与speak方式概念为抽象方式。
概念一个Pet类的子类Cat类。
在Cat类中实现move和Speak方式。
其中move方法返回值为“run”,speak方式返回值为“miaomiao”。
(2)编写含有主方式的公共类JLab0504A,在其主方式中创建一个名为myCat的Cat的实例。
并依照实验指导手册(5)中的类JLab0501主方式中的相应格式输出结果。
abstractclassPet{
protectedStringname;
publicPet(Stringn){
name=n;
publicStringgetName(){
returnname;
publicStringtoString(){
return"
Mypet"
+name;
abstractStringmove();
abstractStringspeak();
classCatextendsPet{
publicCat(Stringn){
super(n);
Stringmove(){
run"
;
Stringspeak(){
miao,miao"
publicclassJLab0504A{
publicstaticvoidmain(String[]args){
CatmyCat=newCat("
Kitty"
+"
\n"
Speak:
+
()+"
+()+"
()+"
(2)若是将Pet概念为接口,即所有相应方式全数为抽象方式,那么Cat类该如何改动?
试改写相关代码,并验证你的结果。
interfacePet1{
finalStringname="
HelloKitty"
publicabstractStringgetName();
publicabstractStringmove();
publicabstractStringspeak();
publicabstractStringtoString();
classCat1implementsPet1{
publicStringgetName(){
publicStringmove(){
publicStringspeak(){
}
publicStringtoString(){
Mypet"
publicclassJLab0504A2{
Cat1myCat=newCat1();
3.包的概念和利用。
A.
(1)在C:
\javalab目录下新建目录mypg;
利用记事本程序编辑以下程序并将其保C:
\javalab\mypg\
packagemypg;
publicclassMyPackage{
publicMyPackage(){
createMyPackageobject"
(2)编辑以下代码,并将其保留为C:
\javalab\
publicclassJLab0505{
MyPackagempg=newMyPackage();
(3)别离编译上述两个java源程序,并执行JLab0505。
观看相应结果。
(4)试将C:
\javalab\mypg\文件移动(剪切、粘贴)到C:
\javalab\目录下。
再次运行JLab0505,观看结果并试探缘故。
缘故:
两个类不在同一个包中,不能直接访问。
B.在寄存源程序的文件夹中成立一个子文件夹Mypackage。
例如,在“E:
\java\程序”文件夹当中创建一个与包同名的子文件夹Mypackage(E:
\java\程序\Mypackage),并将编译过的class文件放入该文件夹中。
注意:
包名与文件夹名大小写要一致。
(1)在包中创建类。
程序功能:
在源程序中,第一声明利用的包名Mypackage,然后创建YMD类,该类具有计算今年的年份,能够输出一个带有年月日的字符串的功能。
(2)编写利用包Mypackage中YMD类的程序。
给定某人姓名与诞生日期,计算该人年龄,并输出该人姓名,年龄,诞生日期。
源代码:
packageMyPackage;
;
publicclassYMD{
privateintyear,month,day;
publicstaticvoidmain(String[]arg3){}
publicYMD(inty,intm,intd){
year=y;
month=(((m>
=1)&
(m<
=12))?
m:
1);
day=(((d>
(d<
=31))?
d:
publicYMD(){
this(0,0,0);
publicstaticintthisyear(){
return().get;
//返回昔时的年份
publicintyear(){
returnyear;
//返回年份
returnyear+"
-"
+month+"
+day;
//返回转化为字符串的年-月-日
import;
//引用Mypackage包中的KY4_1_YMD类
publicclassKY4_2
{
privateStringname;
privateYMDbirth;
publicstaticvoidmain(Stringargs[])
KY4_2a=newKY4_2("
许小军"
1988,9,29);
();
publicKY4_2(Stringn1,YMDd1)
name=n1;
birth=d1;
publicKY4_2(Stringn1,inty,intm,intd)
this(n1,newYMD(y,m,d));
//初始化变量与对象
publicintage()//计算年龄
return()-();
//返回当前年与诞生年的差即年龄
publicvoidoutput()
姓名:
+name);
诞生日期:
+());
今年年龄:
+age());
运行结果:
4.综合实验。
概念抽象类Shape表示一样二维图形。
Shape具有抽象方式area和perimeter
别离计算形状的面积和周长。
试概念一些二维形状类(如矩形、三角形、圆形、椭圆形等),这些类均为Shape类的子类。
完成相关类的概念后,概念含有main方式的类JLab0506来利用这些类的相应付象,输出相关信息:
如对象所代表图形形状、大体数据(半径、长宽高等等)和面积、周长等计算值。
packagexuxiaojun;
abstractclassShape{
abstractdoublearea();
abstractdoubleperimeter();
classRectangleextendsJLab05061{
publicdoublewidth,length;
Rectangle(doublelength,doublewidth){
=length;
=width;
doublearea(){
returnwidth*length;
doubleperimeter(){
return2*length*width;
classTriangleextendsJLab05061{
publicdoublea,b