(一)学习总结
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:
只能输入一个选手的成绩,提示语句太少,不方便判断。
原因:只用简单的循环判断出了一个选手的平均成绩,加了一个大循环,输入五次才能输出每个选手的平均成绩。