JAVA程序员笔记 第009篇—jar包、不定项参数、final、对象创建、内部类

23 篇文章 0 订阅
20 篇文章 0 订阅

今天先添加一个常用插件
点俺点俺
完成验证码后,搜索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新特性只做了解在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值