实验207 类与对象精品文档Word文档格式.docx
- 文档编号:16157022
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:15
- 大小:777.68KB
实验207 类与对象精品文档Word文档格式.docx
《实验207 类与对象精品文档Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验207 类与对象精品文档Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
System.out.println("
创建一个默认初值的矩形:
"
);
r=newRectangle();
\t"
+r);
修改具有默认初值矩形的宽为10,高为20:
r.setWidth(10);
r.setHeight(20);
修改所有矩形对象的颜色为红色"
Rectangle.setColor("
红色"
创建一个宽10,高30的矩形"
r=newRectangle(10,30);
创建一个边长为1的正方形:
r=newRectangle
(1);
}
2.一副牌Deck有52张扑克Card组成(不含王牌),每张牌有自己的牌型suit(用char类型)和点数rank(用String类型),补充完整下面的类的定义。
publicclassCard{
charsuit;
Stringrank;
publicCard(charsuit,Stringrank){
this.suit=suit;
this.rank=rank;
publicStringtoString(){
returnsuit+rank;
//红10黑3
publicstaticvoidmain(String[]args){
Cardc=newCard('
黑'
"
10"
System.out.println(c.toString());
}
3.程序运行后的输出是什么?
classTestReference{
publicstaticvoidmain(String[]args){
intx=2;
TestReferencetr=newTestReference();
System.out.print(x);
tr.change(x);
publicvoidchange(intnum){
num=num+1;
22num是局部变量,运行后,被回收了。
4.写出程序运行结果
publicclassFoo{
publicstaticvoidmain(String[]args){
StringBuffera=newStringBuffer(“A”);
StringBufferb=newStringBuffer(“B”);
operate(a,b);
//调用了Foo类的一个类方法
System.out.println(a+“,”+b);
staticvoidoperate(StringBufferx,StringBuffery){
x.append(y);
y=x;
结果:
AB,B,输出AB是因为调用的是StringBuffer类的一个方法,而b的值不变是因为调用的是FOO类的方法,y为局部的变量,运行后被回收。
5.解释下面的程序运行结果输出为什么是null
publicclassMy{
Strings;
publicvoidMy(){
s="
Constructor"
;
publicvoidgo(){
System.out.println(s);
publicstaticvoidmain(Stringargs[]){
Mym=newMy();
m.go();
没有调用构造函数,则默认的是null;
6.给出下面的类,找出后面的5个声明中,哪些是重载后的构造函数
publicclassConstOver{
publicConstOver(intx,inty,intz){
A.ConstOver(){}
B.ProtectedintConstOver(){}
C.PrivateConstOver(intz,inty,bytex){}
D.PublicObjectConstOver(intx,inty,intz){}
E.PublicvoidConstOver(bytex,bytey,bytez){}
AC
7.给出下面的类,找出后面的5个声明中,哪些是重载后的setVar函数
publicclassMethodOver{
publicvoidsetVar(inta,intb,floatc){
A.PrivatevoidsetVar(inta,floatc,intb){}
B.ProtectedvoidsetVar(inta,intb,floatc){}
C.PublicintsetVar(inta,floatc,intb){returna;
D.PublicintsetVar(inta,intb,floatd){returna;
E.ProtectedfloatsetVar(inta,intb,floatc){returnc;
8.下列程序有错误,调试、写出错误原因并改正。
publicclassVariableScope{b
publicstaticvoidmain(Stringargs[]){
inti=10;
{
intk=10;
i="
+i);
k="
+k);
}
K是局部变量只能在方法中定义,把k定义为全局变量;
把Inti=0中的括号去掉
9.输入下面的类,结合题2中的Card类,完成下面的要求
publicclassJLab1201{
staticfinalcharsuits[]={'
H'
'
S'
D'
C'
};
staticfinalStringranks[]={"
A"
2"
3"
4"
5"
6"
7"
8"
9"
J"
Q"
K"
staticCard[]cards=newCard[52];
publicstaticvoidinit(){
for(inti=0;
i<
suits.length;
i++){
for(intj=0;
j<
ranks.length;
j++){
cards[i*ranks.length+j]=newCard(suits[i],ranks[j]);
}
publicstaticvoidswap1(Cardc1,Cardc2){
Cardc=c1;
c1=c2;
c2=c;
publicstaticvoidswap1(inti,intj){
Cardc=cards[i];
cards[i]=cards[j];
cards[j]=c;
publicstaticvoidswap2(Cardc1,Cardc2){
chars=c1.suit;
c1.suit=c2.suit;
c2.suit=s;
Stringr=c1.rank;
c1.rank=c2.rank;
c2.rank=r;
publicstaticvoidmain(finalString[]args){
init();
//任取两张牌
Cardc1=cards[10];
Cardc2=cards[12];
第11张牌是:
+c1+"
\t第13张牌是:
+c2);
//添加代码之处:
1)在main方法中,添加下面几行语句,写出并分析结果
swap1(c1,c2);
System.out.println("
执行swap1(c1,c2)后"
c1引用的牌是:
\tc2引用的牌是:
+cards[10]+"
+cards[12]);
HJ第13张牌是:
HK
执行swap1(c1,c2)后
HJc2引用的牌是:
解析:
调用swap1函数后,传入的是对象,方法中新建对象c是局部变量,只在方法中起作用,方法执行结束后,系统自动回收对象,故牌并没有交换
2)在main方法中,去掉刚才添加的语句,添加下面几行语句,写出并分析结果
swap1(10,12);
执行swap1(10,12)后"
执行swap1(10,12)后
HK第13张牌是:
HJ
传入方法中的参数是下标,在方法中通过下标将两张牌对换了,结束后,下标被回收,但是两张牌已经对换了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验207 类与对象精品文档 实验 207 对象 精品 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)