其他分享
首页 > 其他分享> > 2022-07-30 第四小组 王星苹 学习笔记

2022-07-30 第四小组 王星苹 学习笔记

作者:互联网

                                                学习心得

阿里巴巴Java开发手册,再一次学习一下Java命名风格,常量定义,还有如何写格式,集合,并发,控制语句,日期时间注释规约。

                                                            掌握情况:需要多看,不然就忘了

新涉及到的知识:

关于基本数据类型与包装数据类型的使用标准如下:
1 【强制】所有的 POJO 类属性必须使用包装数据类型。
2 【强制】RPC 方法的返回值和参数必须使用包装数据类型。
3 【推荐】所有的局部变量使用基本数据类型。

定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。

POJO 类必须写 toString 方法。使用 IDE 中的工具:source> generate toString
时,如果继承了另一个 POJO 类,注意在前面加一下 super.toString。

类内方法定义的顺序依次是:公有方法或保护方法 > 私有方法 > getter / setter方法

final 可以声明类、成员变量、方法、以及本地变量,下列情况使用 final 关键字:
1 .不允许被继承的类,如:String 类。
2 .不允许修改引用的域对象,如:POJO 类的域变量。
3 .不允许被覆写的方法,如:POJO 类的 setter 方法。
4 .不允许运行过程中重新赋值的局部变量。
5. 避免上下文重复使用一个变量,使用 final 可以强制重新定义一个变量,方便更好地进行重构

// 获取今年的天数
int daysOfThisYear = LocalDate.now().lengthOfYear();
// 获取指定某年的天数
LocalDate.of(2011, 1, 1).lengthOfYear();

 

练习:

*  创建一个员工类
* 属性
* 编号 姓名 年龄 工资 身份证号 员工人数 工资总额
*
* 构造器
* 1.如果年龄小于18抛出年龄低异常,大于60抛出年龄高异常,如果姓名为null或""抛出空异常
* 2.设置工资,设置身份证号,如果工资低于1800,抛出工资低异常
*
* 方法:
* 涨工资 addSalary()钱???工资高过工资总额,抛出工资高异常
* 降工资 subSalary() 降完工资低于1800抛出工资低异常
*
* 显示员工工资总额的方法,如果总额是0,抛出空异常
* 显示员工人数如果是0,抛出空异常
*
* 显示员工信息:编号 姓名 年龄 工资 生日
*
* 空异常 年龄低异常 年龄高异常 工资高异常 工资低异常 身份证号非法异常
* 键盘输入String

员工类:
import java.math.BigDecimal;


public class Employee {

    private String empNo;
    private String name;
    private Integer age;
    private String idCard;
    BigDecimal bigDecimal = new BigDecimal("1000");
    private BigDecimal salary;

    private Integer totalPeople;
    private BigDecimal totalSalary= bigDecimal;

    public String getEmpNo() {
        return empNo;
    }

    public void setEmpNo(String empNo) {
        this.empNo = empNo;
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = IdCardUtils.genAge(getIdCard());
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public BigDecimal getSalary() {
        return salary;
    }

    public void setSalary(BigDecimal salary) {
        this.salary = salary;
    }

    public Integer getTotalPeople() {
        return totalPeople;
    }

    public void setTotalPeople(Integer totalPeople) {
        this.totalPeople = totalPeople;
    }

    public BigDecimal getTotalSalary() {
        return totalSalary;
    }

    public void setTotalSalary(BigDecimal totalSalary) {
        this.totalSalary = totalSalary;
    }

    public Employee() {
    }

    Employee(String empNo, String name, Integer age) {
        if(age >= 18&&age<=60){
            this.age = age;
        }else if(age<18){
            throw new LowAgeException("年龄低异常");
        } else if (age>60) {
            throw new HighSalaryException("年龄高异常");
        }else if(name==null||name=="") {
            throw new NullException("输入名字不合法!姓名空异常");
        }
        this.empNo = empNo;
        this.name = name;
    }

    public Employee(String empNo, String name, Integer age, String idCard, BigDecimal salary) {
        this(empNo,name,age);
        if (idCard.length()!=18){
            throw new idCardException("身份证号长度异常");
        }else{
            this.idCard = idCard;
        }
        this.salary = salary;
    }


    public void show() {
        // 显示员工信息
        System.out.println("姓名:" + name + ",年龄:" + IdCardUtils.genAge(idCard) + ",生日:" + IdCardUtils.genBir(idCard));
    }

    public Integer showTotalPeople() {
        if(totalPeople == 0){
            throw new NullException("人数空异常");
            // 抛异常
        }
        return totalPeople;
    }

    public BigDecimal showTotalSalary() {
        if(totalSalary.compareTo(new BigDecimal("0")) == 0){
            throw new NullException("工资空异常");
            // 抛异常
        }
        return totalSalary;
    }

    public void addSalary(BigDecimal salary) {
        if((this.salary.add(salary).compareTo(totalSalary)) == 1){
            // 工资超了,抛异常
            throw new HighSalaryException("工资高异常");
        }
        // 如果工资没有超出总工资
        // 1.涨工资成功,
        this.salary = this.salary.add(salary);
        this.totalSalary = this.totalSalary.add(salary);
    }
    public void subSalary(BigDecimal salary){
        BigDecimal bigDecimal = new BigDecimal("1800");
        if((this.salary.subtract(salary).compareTo(bigDecimal)) == -1){
            // 工资低了,抛异常
            throw new LowSalaryException("工资低异常");
        }
    }

    public static void main(String[] args) {
        BigDecimal bigDecimal = new BigDecimal("-10");
        System.out.println(bigDecimal.compareTo(new BigDecimal("0")));

    }

}

测试:

import java.math.BigDecimal;
import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {

                System.out.println("请输入信息:");
                Employee employee = new Employee("1","a",19);
                BigDecimal bigDecimal = new BigDecimal("1000");
                employee.setSalary(bigDecimal);
                employee.addSalary(bigDecimal);
            }

        }

还没有进行优化,但是需求可以做出来了,过一阵子再优化一下





标签:salary,07,BigDecimal,30,name,2022,new,public,String
来源: https://www.cnblogs.com/wxp0909/p/16535718.html