学习java的第十七天,房贷简易计算器,三角形判断、面向对象重写方法的学习

一、房贷简易计算器

  • 这个案例是课本上的案例,主要的实现方法就是进行方法之间的调用,以及返回值的数据传递,难度不算大,但是也让我自己想了挺久,也是由两个类进行完成,一个数输出类,一个是功能类,下面看代码!

1、功能类Calculator2

public class Calculator2 {

    public double Interest; //定义类变量 总利息
    public double Repayment; //定义类变量 每月还款金额

    public String Yea3(double m,int y){   //获取金额,存放年数
        switch (y){
            case 3:   //如果客户输入的3年
                Interest = m*0.0603;   //3年总利息
                this.Repayment = (m+Interest)/36;  //计算每月还款
        break;
            case 5:
                Interest = m*0.0612; //20年总利息
                 this.Repayment = (m+Interest)/60;  //计算每月还款
        break;
            case 20:
                Interest = m*0.0639;   //5年总利息
                this.Repayment = (m+Interest)/240;  //计算每月还款
        break;
        }
        return y+"年借款的每个月供为:"+this.Repayment+"元";
    }

    public Calculator2() {
        System.out.println("请输入您的贷款金额:");
        Scanner Jine = new Scanner(System.in);
        double yonghu = Jine.nextDouble();  //获取用户输入的金额
        System.out.println("----------------------------------------");
        System.out.println("-------年限--------利率----------");
        System.out.println("\t3年(36个月)\t\t6.03%\t\t");
        System.out.println("\t5年(60个月)\t\t6.12%\t\t");
        System.out.println("\t20年(240个月)\t6.39%\t\t");
        System.out.println("请输入您的贷款年限(输入整数3、5、20):");
        int yonghu2 = Jine.nextInt();  //获取用户输入的年限
        String jie = Yea3(yonghu,yonghu2); //借款年限
        System.out.println(jie);

    }
}

这里主要总结一下:书本上的利率基本信息也都有了,主要是将用户输入的年份以及存款数额传递到功能的构造方法中,使用double以及int变量分别存储,然后里面switch控制流程就行计算,最终得出结果!

2、输出类CalculatorText


public class CalculatorText {
    public static void main(String[] args) {
        Calculator2 c2 = new Calculator2(); //直接输出无参构造方法!
    }
}

这里主要是用来实例化对象,然后输出默认的无参构造方法,也就是用户输入信息的方法,那里面也完成了信息的输出,所以这里相当于一个前端的接口!

二、三角形判断

这里我就不做过多的详解了,使用的都是一些简单的判断语句!还是跟上面一样,使用了两个类来进行输出以及调用!

1、功能类Triangle

package com.actual.sexth;

import java.util.Scanner;

public class Triangle {
    Scanner scanner = new Scanner(System.in);
    public boolean Trian(int a,int b,int c) {
        boolean flog = false;   //默认为假,则不为三角形!
        if ((a + b) < c || (a + c) < b || (b + c) < a) {  //判断是否属于三角形
            flog = false;
            System.out.println("这不是三角形!");
        } else {
            flog = true;
            if ((a * a) == ((b * b) + (c * c)) || (b * b) == ((a * a) + (c * c)) || (c * c) == ((a * a) + (b * b))) {
                System.out.println("这个是直角三角形!");
            }else if ((a * a)>((b * b) + (c * c)) || (b * b)>((a * a) + (c * c)) || (c * c)>((a * a) + (b * b))){

                System.out.println("这是钝角三角形!");
            }else {
                System.out.println("这个是锐角三角形!");
            }
        }
        System.out.println("是否继续?y/n");
        String j = scanner.next();  //获取用户输入的整数
        if (j.equals("y")){
            return shuchu();
        }else {
            System.out.println("感谢使用!");
        }
            return flog;
    }
        public boolean shuchu () {
            boolean a =false;
            System.out.println("请输入第1条边:");
            int i1 = scanner.nextInt();  //获取用户输入的整数
            System.out.println("请输入第2条边:");
            int i2 = scanner.nextInt();  //获取用户输入的整数
            System.out.println("请输入第3条边:");
            int i3 = scanner.nextInt();  //获取用户输入的整数
            System.out.println(Trian(i1, i2, i3));
            return a;
        }
    }

2、输出类

public class TriangleText {
    //输出类
    public static void main(String[] args) {
        Triangle ti = new Triangle();
        ti.shuchu();
    }
}

方法跟房贷简易计算器的基础差不多,只是我更多使用到的就是判断语句,代码还可以进行很多优化的!可以自己再去研究一下!

三、重写

  • 重写与重载,是有一定的区别的!这个千万不能搞混!
  • 重写需要有继承关系。子类重写父类的方法!
  • 方法名必须相同!
  • 参数列表必须相同!
  • 修饰符:范围可以扩大但是不能缩小!public - protected - default - rrivate
  • 抛出的异常:范围,可以被缩小,但不能扩大!
  • 重写,子类的方法和父类必要一致!方法体不同!

为什么要重写: 父类的功能,子类不一定需要,或者不一定满足!

代码示范一下!
父类

package com.actual.seventh;
//动物类
public class Animal {
   private String color;   //颜色
   private String type;   //类别
   private int age;   //年龄
    private int weight;   //体重

    //将方法进行封装
    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    public void info() {
        System.out.println("我是爸爸啊!");
    }
}


子类鸟

package com.actual.seventh;
//鸟类
public class Bird extends Animal{

    @Override
    public String getColor() {
        return super.getColor();
    }

    @Override
    public void setColor(String color) {
        super.setColor(color);
    }

    @Override
    public String getType() {
        return super.getType();
    }

    @Override
    public void setType(String type) {
        super.setType(type);
    }

    @Override
    public int getAge() {
        return super.getAge();
    }

    @Override
    public void setAge(int age) {
        super.setAge(age);
    }

    @Override
    public int getWeight() {
        return super.getWeight();
    }

    @Override
    public void setWeight(int weight) {
        super.setWeight(weight);
    }
    public void info(){  //重写父类的输出语句!
        System.out.println("我是一只"+getColor()+getType()+"!");
        System.out.println("我今年"+getAge()+"岁了!");
    }

}


子类鱼

package com.actual.seventh;
//鱼类   继承后全部重写父类的方法!
public class Fish extends Animal{
    @Override
    public String getColor() {
        return super.getColor();
    }

    @Override
    public void setColor(String color) {
        super.setColor(color);
    }

    @Override
    public String getType() {
        return super.getType();
    }

    @Override
    public void setType(String type) {
        super.setType(type);
    }

    @Override
    public int getAge() {
        return super.getAge();
    }

    @Override
    public void setAge(int age) {
        super.setAge(age);
    }

    @Override
    public int getWeight() {
        return super.getWeight();
    }

    @Override
    public void setWeight(int weight) {
        super.setWeight(weight);
    }
    public void info(){
        System.out.println("我是一只"+getWeight()+"斤重的"+getType()+"!");
        System.out.println("我今年"+getAge()+"岁了!");

    }
}

输出类

package com.actual.seventh;

public class Apploct {

    public static void main(String[] args) {
        //父类引用指向子类对象,把鸟类的对象复制到父类Animal上面!
        Animal animal = new Bird();
        animal.setType("鸟");
        animal.setAge(4);
        animal.setColor("红色");
        animal.info();

        Animal fish = new Fish();
        fish.setType("鱼");
        fish.setAge(2);
        fish.setColor("蓝色");
        fish.setWeight(5);
        fish.info();

    }
}

重写其实很简单,主要是理解前面继承的关系即可!


注:文章仅做个人学习日记,不做学习建议,学习来源:狂神说

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值