阿里巴巴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); } }
还没有进行优化,但是需求可以做出来了,过一阵子再优化一下