第3章 类与对象例题.docx
- 文档编号:25657114
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:20
- 大小:17.05KB
第3章 类与对象例题.docx
《第3章 类与对象例题.docx》由会员分享,可在线阅读,更多相关《第3章 类与对象例题.docx(20页珍藏版)》请在冰豆网上搜索。
第3章类与对象例题
第3章类与对象
【例3.1】
classRect
{
intheight;//定义成员变量
intwidth;
voidshowArea()//定义成员方法
{
System.out.println("面积="+height*width);
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr=newRect();//创建Rect类的对象r
r.height=100;//使用点操作符(.)操作成员变量
r.width=50;
r.showArea();//使用点操作符(.)操作成员方法
}
}
【例3.2】
classRect
{
intheight;//定义成员变量
intwidth;
voidshowArea()//定义成员方法
{
intarea=height*width;//局部变量area
System.out.println("面积="+area);
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr=newRect();//创建Rect类的对象r
r.height=100;//使用点(.)操作符操作成员变量
r.width=50;
System.out.println(area);//错误,超出area的有效范围
}
}
【例3.3】
classRect
{
intheight;
intwidth;
intarea;//增加成员变量area
voidshowArea()
{
intarea=height*width;//局部变量area
System.out.println("局部变量area="+area);//局部变量area
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr=newRect();
r.height=100;
r.width=50;
r.showArea();
System.out.println("成员变量area="+r.area);//成员变量area
}
}
【例3.4】
classRect
{
intheight;//定义成员变量
intwidth;
Rect(inta,intb)//构造函数
{
height=a;
width=b;
}
voidshowArea()//定义成员方法
{
System.out.println("Area="+height*width);
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr=newRect(2,3);//创建对象r时自动调用构造方法
r.showArea();
}
}
【例3.5】
classRect
{
intheight;//定义成员变量
intwidth;
Rect(inta,intb)
{
height=a;
width=b;
}
voidshowArea()//定义成员方法showArea
{
System.out.println("面积="+height*width);
}
voidshowArea(inta)//定义成员方法showArea,方法重载
{
System.out.println("面积="+(height*width-a));
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr=newRect(2,3);//创建对象r时自动调用构造方法
r.showArea();
r.showArea(4);
}
}
【例3.6】
classRect
{
intheight;//定义成员变量
intwidth;
Rect()
{
height=5;
width=5;
}
Rect(inta,intb)
{
height=a;
width=b;
}
voidshowArea()//定义成员方法
{
System.out.println("面积="+height*width);
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr1=newRect(2,3);
//自动调用有参构造方法r1.height=2,r1.width=3
r1.showArea();
Rectr2=newRect();
//自动调用无参构造方法r2.height=5,r2.width=5
r2.showArea();
}
}
【例3.7】
classRect
{
intheight;//定义成员变量
intwidth;
Rect(inta,intb)
{
height=a;
width=b;
}
intarea()//定义成员方法
{
returnheight*width;
}
booleanequal(Rectr)//参数是Rect类的对象r
{
if(r.area()==area())
returntrue;
else
returnfalse;
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr1=newRect(2,3);
Rectr2=newRect(6,1);
System.out.println(r1.equal(r2));
//比较r1.area()与r2.area()值是否相同
}
}
【例3.8】
classRect
{
intheight;//定义成员变量
intwidth;
Rect(inta,intb)
{
height=a;
width=b;
}
Rect(Rectr)//对象做构造方法的参数
{
height=r.height;
width=r.width;
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr1=newRect(2,3);
Rectr2=newRect(r1);
System.out.println(r2.height);
System.out.println(r2.width);
}
}
【例3.9】
classTest
{
inta;
intb;
Test(inti,intj)
{
a=i;
b=j;
}
voidswap(inti,intj)
{
i=2*i;
j=2*j;
}
voidswap(Testt)
{
t.a=2*t.a;
t.b=2*t.b;
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Testtt=newTest(2,3);
intm=10,n=20;
System.out.println("before"+m+""+n);
tt.swap(m,n);
//m和n的副本i和j发生了变化,但m和n的值不变
System.out.println("after"+m+""+n);
System.out.println("before"+tt.a+""+tt.b);
tt.swap(tt);
//对象tt引用的实体发生了变化
System.out.println("after"+tt.a+""+tt.b);
}
}
【例3.10】
classRect
{
intheight;//定义成员变量
intwidth;
Rect(inta,intb)
{
height=a;
width=b;
}
Rectget()//get方法返回值类型是Rect,即返回一个对象
{
returnnewRect(height+10,width+10);
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr1=newRect(2,3);
Rectr2=r1.get();
System.out.println(r2.height);
System.out.println(r2.width);
}
}
【例3.11】
classRect
{
intheight;//定义成员变量
intwidth;
Rect()
{
height=5;
width=5;
}
Rect(inta,intb)
{
height=a;
width=b;
}
voidshowArea()//定义成员方法
{
System.out.println("Area="+height*width);
}
}
publicclassEx
{
publicstaticvoidmain(Stringargs[])
{
Rectr[]=newRect[3];//定义和创建数组
r[0]=newRect();//初始化数组元素
r[1]=newRect(7,8);
r[2]=newRect(9,10);
for(inti=0;i r[i].showArea(); } } 【例3.12】 classRect { publicintheight;//定义public成员变量 publicintwidth; publicvoidshowArea()//定义public成员方法 { System.out.println("面积="+height*width); } } publicclassEx { publicstaticvoidmain(Stringargs[]) { Rectr=newRect(); r.height=5;//在Rect类外通过点运算符修改r对象的成员变量 r.width=5; r.showArea(); } } 【例3.13】 classRect { privateintheight;//定义private成员变量 privateintwidth; publicvoidset(inth,intw) //定义public成员方法修改private成员变量 { height=h; width=w; } publicvoidshowArea()//定义public成员方法 { System.out.println("Area="+height*width); } } publicclassEx { publicstaticvoidmain(Stringargs[]) { Rectr=newRect(); r.set(5,5); //r.height=5;编译错误,height是private的,不可在类外访问 r.showArea(); } } 【例3.14】 classRect { privateintheight=1; privateintwidth=1; publicstaticintcount;//定义静态变量count publicvoidset(intheight,intwidth) { this.height=height; this.width=width; count++; } } publicclassEx { publicstaticvoidmain(Stringargs[]) { Rectr1=newRect(),r2=newRect(); r1.set(2,3); r2.set(5,6); System.out.println(r1.count+""+r2.count+""+Rect.count);} } 【例3.15】 classRect { privateintheight=1; privateintwidth=1; publicstaticintcount;//定义静态变量count publicstaticvoidset() { //this.height=5;非静态变量height不可以出现在静态方法中 //this.width=6;//同上 count++; } } publicclassEx { publicstaticvoidmain(Stringargs[]) { Rectr1=newRect(),r2=newRect(); r1.set();//静态方法可以通过对象调用 r2.set(); Rect.set();//静态方法可以通过类名调用 System.out.println(r1.count+""+r2.count+""+Rect.count); } } 【例3.16】 classTest { staticintx=10;//定义静态变量i并初始化为10 staticinty; publicstaticvoidshow()//静态方法show() { System.out.println("x="+x); System.out.println("y="+y); } static//static块 { System.out.println("static块被执行"); y=x+5; } } publicclassEx { publicstaticvoidmain(Stringargs[]) { Test.show(); } } 【例3.17】 classA { privateintx; A() { x=5; } voidshowX() { System.out.println("x="+x); Bb=newB(); b.showY();//外嵌类A可以访问内部类B的公有和默认成员 } classB { privateinty; B() { y=x;//内部类B可以使用外嵌类A的私有成员变量x } voidshowY() { System.out.println("y="+y); } } } publicclassEx { publicstaticvoidmain(Stringargs[]) { Aa=newA(); a.showX(); } } 【例3.18】 classA { privateintx; A() { this.x=5; } voidshowX() { System.out.println("x="+x); classB//内部类B定义在外嵌类A的方法中 { privateintx; B() { this.x=x+10;//类B中使用类A私有成员变量x } voidshowY() { System.out.println("y="+x); } } Bb=newB(); b.showY();//外嵌类A的方法可以访问内部类B的公有和默认成员 } } publicclassEx { publicstaticvoidmain(Stringargs[]) { Aa=newA(); a.showX(); } } 【例3.19】 publicclassEx { publicstaticvoidmain(Stringargs[]) { for(inti=0;i System.out.println(args[i]); } } 【例3.20】 classA { } publicclassEx { publicstaticvoidmain(Stringargs[]) { Aa1=newA(); Aa2=newA(); System.out.println(a1.equals(a2)); System.out.println(a1.toString()); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 类与对象例题 对象 例题