java_1122

1、同桌匹配题

源代码如下:

package org.jsoft.test_1;

public class Student {// 创建学生类并设定各种属性以及构造函数以便初始化时便赋值
    private String name;
    private double height;
    private double weight;

    Student() {
    }

    Student(String name, double height, double weight) {
        this.name = name;
        this.height = height;
        this.weight = weight;

    }

    String getName() {
        return name;
    }

    void setName(String name) {
        this.name = name;
    }

    double getHeight() {
        return height;
    }

    void setHeight(double height) {
        this.height = height;
    }

    double getWeight() {
        return weight;
    }

    void setWeight(double weight) {
        this.weight = weight;
    }

    @Override
 public boolean equals(Object obj) {// 此时学生类创建对象被当作参数传入,此处含有隐式向上转化,//类似于数据类型的转换,如int与double计算一般
            // ,下面的转回Object其子类Student
        // (转回Student类才能调用Student类的属性进行比较)也同理,转换从下到上是隐式转换是自动的,而从上到下是需要强制转换的,所以
        boolean b = false;// 创建布尔型局部变量并赋初值
        if (obj == null) {// 判断此对象是否为空
            b = false;
        } else if (obj instanceof Student) {// 判断obj是不是属于Student类....类似使用
                                            // 父类引用指向子类创建对象,具有子类特征,如子类的函数重写调用
            Student s = (Student) obj;// 将其强制转换回Student类,以便调用数据进行比对
            if (this.name.equals(s.name) && this.weight == s.weight
                    && this.height == s.height)// 属性比对
                b = true;
        }

        return b;// 返回结果
    }

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return "姓名:" + name + '\n' + "体重:" + weight + '\n' + "身高:" + height;
    }// toString 函数的重写,显示全部属性的字符串型表示形式

    public static void main(String[] args) {

        Student s1 = new Student("杨锐科", 59, 177);//调用有参构造函数,创建对象同时并赋初始值
        Student s2 = new Student("蔡立欣", 55, 172);
       Student s3 = new Student("杨锐科", 59, 177);//此处s3与s1相同,以便后面调用验证重写的equals //函数的正确性
        System.out.println(s1);//由toString函数遇到Syste.out.print..将自动调用,此处即为输出对象s1

//各项属性
        System.out.println(s2);
        System.out.println(s3);
        System.out.println("学生s1和其同桌s2是否为同一人判定结果:");
        System.out.println(s1.equals(s2));//判断s1与与s2是否相同
        System.out.println("学生s1和其同桌s3是否为同一人判定结果:");
        System.out.println(s1.equals(s3));//判断s1与与s3是否相同
    }
}

执行效果:

170809_KPkI_3715016.png

 

2、

170838_QrYL_3715016.png

 

源代码如下:

package org.jsoft.test_1;

import java.util.Scanner;

public class MyException1 extends Exception {

    public MyException1() {
        super("Java作业还没写完,还不能玩王者荣耀!");
    }// 默认构造函数

    public MyException1(String reason) {
        super(reason);
    }// 有参构造函数

    public void Check(int i) throws MyException1 {
        if (i == 1) {
            System.out.println("恭喜,你可以玩游戏了!");
        } else {
            throw new MyException1("不能玩游戏的详细原因是作业还没写完,作业优先级比较高");// 因为Super是调用父类的构造函数。而重写的构造函数里面参数类型是String
                                                                    // ,所以此处即为构造函数重载,此处即为有参函数的初始化
        }// 此处的内容即为有参构造函数的reason
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        MyException1 m1 = new MyException1();
        System.out.println("请输入作业检查情况:1-完成,2-未完成");
        while (true) {
            int i = in.nextInt();
            try {
                m1.Check(i);
            } catch (MyException1 e) {
                // TODO Auto-generated catch block

                e.printStackTrace();
            } finally {
                System.out.println("此轮评定已经结束!");
            }
        }

    }

}
 

package org.jsoft.test_1;

import java.util.Scanner;

public class MyException2 extends RuntimeException {

    public MyException2() {
        super("课还没上完不能玩游戏不能睡觉");

    }

    public MyException2(String reason) {
        super(reason);
    }

    public void check(int i) {
        if (i == 1) {
            System.out.println("恭喜,你可以去玩游戏了!");
        } else {
            throw new MyException2("学什么学,学习有什么意思,走咱们开黑去,今晚上王者");
        }
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        MyException2 m2 = new MyException2();
        System.out.println("请输入作业检查情况:1-完成,2-未完成");
        while (true) {
            int i = in.nextInt();
            m2.check(i);

        }

    }

}
 

执行效果:

MyException1:

无构造函式重载情况下(即为红色字部分不写):

190413_mmCJ_3715016.png

调用有参构造函数重载情况下(输入 String reason部分 ):

190545_6vTW_3715016.png

 

MyException2:

同MyException1;

无重载

190805_lGbm_3715016.png

重载:

191003_hhLf_3715016.png

 

 

 

转载于:https://my.oschina.net/u/3715016/blog/1577532

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值