今天先添加一个常用插件
点俺点俺
完成验证码后,搜索lombok,下载
然后打开IDEA,新建一个包叫 lib,将下载好的jar包直接粘贴进去ctrl + V
最后右键选中lib包,点击Add as Library
注解:
例如我们在编写属性雷时,可以将@Setter,@Getter注解 写在类的上面
@Getter
@Setter
public class Student{
private String name;
}
然后我们可以在测试类中,直接调用name的get、set方法。
类似的注解还有很多,无参构造、有参构造、get set方法 toString、NonNull等等
常用的有:
@Data(getter、setter、ToString、@EqualsAndHashCode)
@AllArgsConstructor
@NoArgsConstructor
@NonNull
不定项参数(rest)
不定项参数,必须出现在 所有参数 的后面
不定项参数,用来接收 剩余的(rest) 所有参数
不定项参数,如果和 定义的某个方法,在某种场合下,冲突,那么优先使用 最正确的方法,而非不定项式。
不定项参数,如果没有接收到任何数据,会默认是一个 空数组,而非null
public class MethodRestArgsTest {
public static void main(String[] args) {
int s= sum(1,2);
}
public static int sum(int a ,int b){
return a+b;
}
public static int sum(int... c){
System.out.println("c最少设置几个" + c.length);
return Arrays.stream(c).sum();
}
}
final关键字
final可以修饰属性,方法,类,局部变量
final 修饰属性,代表属性 不允许 修改,是一个常量
final 修饰属性,代表属性是一个常量,常量一旦赋值,不可被修改。
a) final 修饰的 属性 没有默认值
b)必须 赋初值
1)声明并赋值
2)代码块中赋值
3)构造方法中 对final修饰的属性 赋值c)修饰静态属性
1)声明并赋值
2)在静态代码块中 赋值final修饰的属性名要 全部大写
final 修饰方法,代表方法 不允许 被重写
final 修饰类,代表 类不允许被继承
final 修饰局部变量,代表是一个常量(一般配合内部类)
对象的创建过程
1.分配空间
2.读取 属性,方法
3.读取代码块中的数据
4.调用构造方法,完成对象的创建this代表 当前对象
在静态方法中 不能使用this
内部类
成员内部类:
创建银行类,在里面声明一个名叫 ATM 的 内部类
public class ICBCBank {
public void getMoney(int money) {
if (money <= 100000) {
System.out.println("请移步ATM机取款,柜台不办理额度小于100000");
return;
}
System.out.println("在柜台取钱,人民币为" + money + "元");
}
public class ATM {
public void getMoney(int money) {
if
(money > 100000) {
System.out.println("请移步柜台进行业务办理,ATM机最多不从超过100000元");
return;
}
System.out.println("在ATM机取款,人民币为" + money + "元");
}
}
}
测试
public class BankTest {
public static void main(String[] args) {
ICBCBank atm = new ICBCBank();//创建bank对象
ICBCBank.ATM atm2 = new ICBCBank().new ATM();//创建内部类对象
atm.getMoney(50000000);
atm2.getMoney(5000);
}
}
静态内部类:
在Bank类中,将 内部类ATM 改为 静态内部类
public class ATM ——>public static class ATM
声明静态内部类的对象:
ICBCBank.ATM atm = new ICBCBank.ATM();
局部内部类:
声明ACBC对象去取钱。
去取钱的时候才声明一个内部类ATM 然后再ACBC里声明ATM对象atm,调atm的getMonay方法,完成取钱操作。
public class ABCBank {
public void getMoney(int Money){
class ATM{
public int getMoney(int Money){
return Money;
}
}
ATM atm = new ATM();
int m = atm.getMoney(Money);
System.out.println("取钱:" + m);
}
public static void main(String[] args) {
ABCBank bank = new ABCBank();
bank.getMoney(500000);
}
}
records 类
JDL-14新特性只做了解