第一题:
1. 编写一个圆环类Ring的Java程序。圆环类有3个数据成员,分别是内半径innerRadius,
外半径outerRadius和颜色color,这些属性可以查看get也可以重新设置set。另外,圆环还可以返回其面积。程序运行效果如下图所示:
实验要求:
A. 现将下面的源程序补充完整
B. 现在将Ring ring = new Ring(5,8,\改成Ring ring = new Ring();编译运行有错误
发生吗?分析错误的原因
C. 为程序添加一个默认构造函数,看一下运行结果
Public Ring(){
innerRadius=1.0; outerRadius=2.0; color=\}
D. 把程序中的如下语句:
System.out.println(\圆环的内半径: \
System.out.println(\圆环的外半径: \改成:
System.out.println(\圆环的内半径: \
System.out.println(\圆环的外半径: \
编译运行,其结果如何?应如何修改这个错误?
E. 请为该圆环类再添加两个方法以便能返回内圆和外圆的周长,然后在main()函数中
分别创建两个对象ring1,ring2以显示周长。 F. 注:源代码Ring.java public class Ring {
private double innerRadius; private double outerRadius; public String color;
public Ring(double iRadius, double oRadius, String c) {
innerRadius = iRadius; //初始化外半径
color = c; }
public double getInnerRadius( ) {
//返回内半径 }
public double getOuterRadius( ) {
return outerRadius; }
public void setInnerRadius(double iRadius) {
innerRadius = iRadius; }
public void setOuterRadius(double oRadius) {
outerRadius = oRadius; }
public void setColor(String c) {
//设置颜色 }
public double getArea() {
return (outerRadius * outerRadius - innerRadius * innerRadius) * 3.1415; }
public static void main(String[] args) {
Ring ring = new Ring(5,8,\ System.out.println(\圆环的内半径: \ System.out.println(\圆环的外半径: \ System.out.println(\圆环的颜色: \
System.out.println(\圆环的面积: \
ring.setInnerRadius(4); //设置圆环ring的外半径为6 ring.setColor(\ System.out.println(\圆环的内半径: \ System.out.println(\圆环的外半径: \ System.out.println(\圆环的颜色: \ System.out.println(\圆环的面积: \ } }
第二题:
2. 编写一个圆类Circle,其中有圆周率、半径和圆对象个数,其中圆周率和圆对象个数为
static成员。此外,Circle中还有两个static方法分别是设置圆周率和显示当前圆对象个数,其余都是实例成员,仔细体会静态成员与实例成员的差别和使用方法。程序运行效果如下: 实验要求:
A. 请将程序中的语句:
System.out.println(\圆周率是: \cir1.displayNo(); 改成
System.out.println(\圆周率是: \Circle.displayNo();
修改后编译运行,程序会报错吗?为什么?接着如果将语句cir1.setRadius(10);改成Circle.setRadius(10);情况又会怎样呢?
B. 现在将圆周率Pi的static去掉,修改后编译运行,会报错吗?产生错误的原因是什
么?
C. 程序中的数据成员objectNo为什么要设置成static类型?它的作用是什么? D. 注:源代码StaticTest.java class Circle {
static double pi = 3.14; static int objectNo = 0; int radius;
Circle(int r) {
radius=r; objectNo++; }
Circle( ) {
radius = 2; objectNo++; }
double getArea( ) {
return pi*radius*radius; }
static void setPI(double p) {
pi = p; }
void setRadius(int r) { radius = r; }
static void displayNo( ) { System.out.println(\当前圆对象个数是: \ } }
public class StaticTest {
public static void main( String args[] ) {
Circle cir1 = new Circle(5);
System.out.println(\圆周率是: \ System.out.println(\的半径是: \
System.out.println(\的面积是: \ cir1.displayNo(); cir1.setRadius(10); Circle cir2 = new Circle( );
cir2.setPI(3.1415); System.out.println(\圆周率是: \ System.out.println(\的半径是: \ System.out.println(\的半径是: \ System.out.println(\的面积是: \ cir2.displayNo(); } }
第三题:
3. 查看如下源程序: 实验要求:
A. 请先分析程序的运行结果,然后再运行该源代码:
程序结果分析: B. 将程序中的语句//z=20;前面的注释符去掉,编译会报错吗?为什么?
C. 程序中有两个方法setx()与setm(),它们分别是对类中的数据x和m进行设置。现
在将在方法setm()中的ScopeTest.m=m;改成this.m=m,编译程序是否会报错?如果确实会报错,再将setm()方法前面的static修饰符去掉,看是否能编译成功,并解释其中的原因。
D. 在程序中方法show()中定义了一个循环语句,在这个循环语句块里声明了一个变量
z,现将这个变量z的名字改成y,编译程序,看其运行情况 E. 源代码:ScopeTest.java class ScopeTest {
int x;
static int m=0;
void show( ) { int x=8, y; for (y=0; y<2; y++) { int z=5; System.out.println(\ z = 10;
System.out.println(\
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第3章-面向对象程序设计-上机实验要求 (1)在线全文阅读。
相关推荐: