java第一次作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向过程
1 、利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

2、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

面向对象
1、分析程序
public class Ring {
private double innerRadius;
private double outerRadius;
public String color;
public Ring(double iRadius, double oRadius, String c) {
innerRadius = iRadius;
代码1 //初始化外半径
color = c;
}
public double getInnerRadius( ) {
代码2 // 返回内半径
}
public double getOuterRadius( ) {
return outerRadius;
}
public void setInnerRadius(double iRadius) {
innerRadius = iRadius;
}
public void setOuterRadius(double oRadius) {
outerRadius = oRadius;
}
public void setColor(String c) {
代码3 // 设置颜色
}
public double getArea() {
return (outerRadius * outerRadius -
innerRadius * innerRadius) * 3.1415;
}
public static void main(String[] args) {
Ring ring = new Ring(5,8,"red");
System.out.println("圆环的内半径: " + ring.getInnerRadius( ));
System.out.println("圆环的外半径: " + ring.getOuterRadius( ));
System.out.println("圆环的颜色: " + ring.color);
System.out.println("圆环的面积: " + ring.getArea() + "\n");
ring.setInnerRadius(4);
代码4 //设置圆环ring的外半径为6
ring.setColor("blue");
System.out.println("圆环的内半径: " + ring.getInnerRadius( ));
System.out.println("圆环的外半径: " + ring.getOuterRadius( ));
System.out.println("圆环的颜色: " + ring.color);
System.out.println("圆环的面积: " + ring.getArea());
}
}
模仿练习:
练习2、
实验任务 :
编写一个圆类 Circle, 其中有圆周率 , 半径和圆对象个数 , 其中圆周率和圆对象个数为 static 成员 , 此外 ,Circle 中还有两个 static 方法分别是设置圆周率和显示当前圆对象个数的 , 其余都是实例成员 , 仔细体会静态成员与实例成员的使用方法和区别。

实验步骤 :
(l) 打开文本编辑器 , 按程序清单 1-2输入源程序 StaticTestJava。

程序清单 1-2
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("当前圆对象个数是: " + objectNo);
}
}
public class StaticTest {
public static void main( String args[] )
{
Circle cir1 = new Circle(5);
System.out.println("cir1圆周率是: " + cir1.pi);
System.out.println("cir1的半径是: " + cir1.radius);
System.out.println("cir1的面积是: " + cir1.getArea());
cir1.displayNo();
cir1.setRadius(10);
Circle cir2 = new Circle( );
cir2.setPI(3.1415);
System.out.println("cir1圆周率是: " + cir1.pi);
System.out.println("cir1的半径是: " + cir1.radius);
System.out.println("cir2的半径是: " + cir2.radius);
System.out.println("cir2的面积是: " + cir2.getArea());
cir2.displayNo();
}
}
(2) 编辑源程序并保存,然后在JBuilder 2005 环境中形成两个 class 文件,StaticTest.class 和 Circle.class, 编译运行主类 StaticTest.class, 观察程序运行结果。

思考
(l) 请将程序中的语句 :
System.out.printin("cirl 圆周率是 :"+Cid-pi),
Cid.displayNo();
改成
System.out.println("cirl 圆周率是 :"+Circle-pi);
Circle.displayNo();
修改后编译运行 , 程序会报错吗 ? 为什么 ? 接着如果将语句 Cirl.setRadius(10) 改成Circle.setRadius(10) 情况又会怎样呢 ?
(2) 现在请将圆周率pi的 static 修饰符去掉 , 使之成为实例变量 , 修改后编译运行 , 会报错吗 ? 产生错误的原因是什么 ? 可以试着同时将方法 setPI(double p) 前面的 static 也去掉 , 看编译是否仍有错误 ?
(3) 程序中的数据成员 objectNo 为什么要设置成 static 类型 , 它的作用是什
么 ?
(4) 现在请在主方法 main() 中声明并创建一个 Circle 类型的对象数组 cirs, 然后调用 displayNo() 方法 , 观察程序运行的结果。

Circle[]cirs=new Circle[5]
for (int i=0;i<cirs.length;i++){
cirs[i]=new Circle();
点评这个程序很好地揭示了实例成员与静态成员的区别 , 静态变量可以在类的所有对象之间共享 , 如同本例中的 objectNo 和 Pi, 其中 objectNo 始终记录着当前该类的对象个数 , 而对静态变量 Pi 的修改则会影响到该类的所有对象。

此外 , 对于静态成员可以直接用类名来访问。

相关文档
最新文档