JavaSE复习(一)继承多态与常用API

继承与多态

  1. 在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:
    • 直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找
    • 间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找
  2. 从Java 8 开始,接口里允许定义默认方法
    • 格式

        public default 返回值类型 方法名称(参数列表){
            方法体
        }
    • 备注:接口当中的默认方法,可以解决接口升级的问题

    从Java 9 开始,接口中允许定义私有方法

  3. 多态的代码中,成员变量和成员方法的访问规则
    • 成员变量:编译看左边,运行还看左边
    • 成员方法:编译看左边,运行看右边
  4. 多态

    体现多态性:父类引用指向子类对象

    好处:无论右边new的时候换成哪个子类对象,等号左边调用方法都不会变化

  5. 内部类

    • 成员内部类

      内用外,随意访问;外用内,需要内部类对象

      使用方式:

      1. 间接方式:在外部类的方式当中,使用内部类;然后调用外部类的方法
      2. 直接方式,公式:

        【外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();】

    • 局部内部类(包含匿名内部类)

      要访问所在方法的局部变量,那么这个局部变量必须是【有效final】的。

      从Java 8 开始,只要局部变量事实不变,那么final关键字可以省略

    • 权限修饰符规则:
      1. 外部类:public、(default)
      2. 成员内部类:public、protected、(default)、private
      3. 局部内部类:什么都不写

常用API

String

  1. String和int相互转换

    1. int--->String

      • num + "" 低效
      • String.valueOf(num)
      • Integer.toString(num)
    2. String--->int

      • Integer.parseInt(str)
      • Integer.valueOf(str).intValue()
  2. 双引号直接写的字符串在常量池当中,new出来的不在池中
  3. 常量.equals字符串时建议把常量放前面,避免因字符串为空导致的空指针异常
  4. 分割字符串的split()方法的参数是一个正则表达式,以"."分割是要写成" \\. "
  5. 输出一维数组:Arrays.toString(arr)

    输出二维数组:Arrays.deepToString(str)

  6. String 为什么是 final 的

    1. 实现字符串池:不可变才能实现字符串池,如果字符串是可变的,那么一个引用操作改变了对象的值,对其他引用会有影响

    2. 安全性:这些核心类的内部方法的实现并不是Java本身编写的,好多都是调用的操作系统本地的API,如果String可以被继承重写,就有可能被恶意的重写其中的方法,造成安全隐患;同时因为不可变,使得String是多线程安全的

    3. 效率:如果已经存在这个字符串常量便不会再创建,直接拿来用

转载于:https://www.cnblogs.com/yxmhl/p/10696237.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值