java第二次作业

(一)学习总结

1.学习使用Eclipse关联jdk源代码,查看String类的equals()方法,截图,并学习其实现方法。举例说明equals方法和==的区别。

equals()方法

equals()方法是比较两个字符串内容是否相等,==是比较的是两个字符串的地址。

2.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?

构造方法是:方法的名字与定义的类名应完全相同,在创建对象时对其进行初始化,可以在主方法中直接调用。
构造方法的重载:方法的重载需要方法的名称相同,参数的类型和参数的个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用。

public class Test {
public static void main(String args[]) {
Foo obj = new Foo();
}
}
class Foo{
int value;
public Foo(int intValue){
value = intValue;
}
}
不能通过编译。因为里面的构造函数Foo()没有定义。

3.运行下列程序,结果是什么?查阅资料,分析为什么。


public class Test {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c) == 0.3){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}
}
运行结果为:不等于0.3
double是浮点型的,不能用二进制精度表示,超出精度范围,结果不准确。
可改为

4运行下列程序,结果是什么?分析原因,应如何修改。


没有进行实例化。

public class Test {
    public static void main(String[] args) {
    MyClass[] arr=new MyClass[3];
    arr[1].value=100;
    }
}
class MyClass{
    public int value=1;
    }

可改为

 public class Test {
public static void main(String[] args) {
    MyClass arr=new MyClass();
    arr.value=100;
    }
}
class MyClass{
    public int value=1;
    }

(二)实验总结

1.评分系统:一共10个评委,满分10分,假设有5个选手,分别由评委打分,去掉一个最高分和一个最低分后的平均分为该选手得分,将选手的得分从高到低进行输出。定义适当的方法。

程序设计思路:
一共有五个选手十个评委,先定义数组来存放评委给的分数,然后找出最大值最小值,把这两个地址设为0,去掉了最大值和最小值,求和,求平均值。
问题1:
一开始写完了没有错误提示,但就是不能运行。
原因:
后来发现是大小写问题,String S应该大写。

问题2:
只能输入一个选手的成绩,提示语句太少,不方便判断。
原因:只用简单的循环判断出了一个选手的平均成绩,加了一个大循环,输入五次才能输出每个选手的平均成绩。

(三)代码托管

链接:https://git.oschina.net/hebau_cs15/Java-CS02lc.git

posted on 2017-03-28 15:30  刘畅l  阅读(240)  评论(1)    收藏  举报

导航