内部类&Lambda&常用API

1.内部类: 在一个类中定义另一个类
位置不同分为: 成员内部类 局部内部类
成员内部类 访问特点: 能访问类中成员便变量 private修饰的也可以访问
即使类 又是成员
Outer.Inner oi = new Outer.new Inner(); //不推荐
成员内部类会私有化 不让直接访问
采用方式 method{Innner in = new Inner(0  in.show())}
2.局部内部类 访问特点: 能访问类中成员便变量也可以访问方法中的变量 private修饰的也可以访问
必须在方法中创建对象才能被访问
3.匿名内部类(重点): 是一个特殊的局部内部类 定义在方法中
作用: 将 继承 / 实现 方法重写 创建对象写在了一行
useInter(new Inter(){
    @override
    public void show(){
        sout("匿名内部类");
    }
}).show();
4.函数式编程: 拿参数做操作/逻辑
5.Lambda表达式
三要素:
1.():重写方法的参数列表
2.-> 箭头 指向要去做的代码块
3.{} 具体要操作的逻辑代码
6.Lambda表达式省略规则
1.参数只有一个时 ()可以省略 但是无参不能省
2.参数类型可以省略 要么都省 要么都不省
3.{}代码只有一行 可以省略{}; retrun

useFlyable(s -> sout(s));
useAddable((x,y) -> x + y); //return省略
7.System 和 Math 都是工具类 
构造器私有化 提供static修饰的静态方法供外界访问
System.exit(0); //退出虚拟机
System.currentMillesTime(); //秒表 
System.arrayCope("源数组",srcIndex,"目标数组",destIndex,拷贝个数);
8.Object 是所有Java类的直接或者间接父类 
继承中super() 因为Object只有空参构造
自定义的引用数据类型 Student 默认继承Object
如果直接打印stu 会去调用Object.toString() // 包名 + 类名 @ 地址值
但是可以进行toString()重写 //重写后 编译看左运行看右 打印的是属性值
没有重写 默认使用的是Object.equals(); //底层 this == obj 比较的是地址值
重写之后 比较的是属性值是否相等 
自定义对象更推荐重写equals() 和 toString();
9.面试题
String类已经重写了equals() 所以比较的是值是否相等
StringBuilder没有重写equals() 用的是父类Object中的equals() 比较的是地址值是否相等

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值