JAVA第二次实验作业__计科1501_胡伟

====================

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


构 造 方 法 :创建的一个可以在程序中重复调用的代码段
构造方法重载:通过对同一种方法的参数的个数及类型的修改以完成不同功能的方法调用
加载如下程序:

public class Test {
    public static void main(String args[]) { 
       Foo obj = new Foo();       
    }     
}
class Foo{
    int value;
    public Foo(int intValue){
        value = intValue;
    }
}

运行程序报错:构造函数Foo()未定义
产生错误原因:函数Foo()缺少参数
修改方案:

Foo obj = new Foo();       

↓↓↓

Foo obj = new Foo(1);       


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


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
原因:计算机在将0.1由十进制转为二进制时由于精度问题无法用有限的二进制数表示0.1,因此该式实际计算为三个近似0.1的数值相加,得到结果为近似0.3的数值而非0.3
修改方案:

double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c) == 0.3){

↓↓↓

BigDecimal a=new BigDecimal("0.1");
BigDecimal b=new BigDecimal("0.1");
BigDecimal c=new BigDecimal("0.1");
if((a.add(b).add(c).doubleValue())==0.3){

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


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

运行程序报错
错误原因:没有按照数组的方式定义MyClass
修改方案:

MyClass[] arr=new MyClass[3];

↓↓↓

MyClass arr=new MyClass[3];

实验总结


评分系统:一共5个评委,为选手打分,去掉一个最高分和一个最低分后的平均分为该选手得分
设计思路:建立一维数组记录五个评委打分,通过建立变量比较最高分与最低分并排除在外

邮箱与身份证因为代码仍存在错误所以未提交


5、代码

代码误删,附代码截图

====================