继承与多态

  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. 效率:如果已经存在这个字符串常量便不会再创建,直接拿来用

JavaSE复习(一)继承多态与常用API的更多相关文章

  1. JavaSE复习日记 : 继承关系和super关键字以及继承关系中方法的覆写

    /* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复 ...

  2. JavaSE 复习_4 接口多态和内部类

    △abstract不可以修饰成员变量 △一个类可以没有抽象方法,可以定义为抽象类,这样的目的是不能让其他类建立本类对象,交给子类完成. △abstract和static(可以被类名调用方法,但是抽象方 ...

  3. JavaSE复习_3 继承

    △先默认初始化,在显示初始化,在构造函数初始化 △继承的弊端:代码的耦合性增加了. △子类不能继承父类的构造方法. △子类会拥有父类的私有成员变量,但是必须通过get,set方法访问. △super不 ...

  4. JavaSE环境Shiro的搭建及常用API

    通过shiroAPI来进行角色的管理 模拟用户是否登录: 模拟用户是否具有相应的权限:

  5. python oop常用术语 继承 多态 封装

    面向对象优点 1.通过封装明确了内外 2.通过继承+多态在语言层面支持了归一化设计 抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现 ...

  6. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  7. 【repost】Javascript操作DOM常用API总结

    Javascript操作DOM常用API总结 文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认 ...

  8. JavaSE学习笔记(8)---常用类

    JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...

  9. 常用API【2】

    常用API 1.Math类 1.1 Math类概述 Math包含执行基本数字运算的方法 没有构造方法,如何使用类中的成员呢? 看类的成员是否是静态的,如果是,可以通过类名直接调用 1.2Math类的常 ...

随机推荐

  1. linq 和lambda查询

    EF 查询的两种 写法. linq 方法 或者 lambda方法 其中 ,只有tolist()的时候,才会真正的 在数据库中执行. 如果没有 tolist 方法,那么province1是 iqueab ...

  2. AVR446_Linear speed control of stepper motor步进电机曲线分析

    1.1.  单片机代码处理 // 定义定时器预分频,定时器实际时钟频率为:72MHz/(STEPMOTOR_TIMx_PRESCALER+1) #define STEPMOTOR_TIM_PRESCA ...

  3. 手动创建maven项目+cmd+webapp+tomcat

    1.创建文件夹 2.在刚刚创建的文件夹目录下:创建一个scr文件夹和pom.xml文件 3.在pom.xml配置 <?xml version="1.0" encoding=& ...

  4. redis事务中的WATCH命令和基于CAS的乐观锁

    转自:http://blog.sina.com.cn/s/blog_ae8441630101cgy3.html 在Redis的事务中,WATCH命令可用于提供CAS(check-and-set)功能. ...

  5. 批量删除xml文件中的<?xml version="1.0" ?>

    #!/bin/shcd 'home/usrname/'ls cd '/home/usrname/VOC2007/Annotations/' for file in `ls /home/usrname/ ...

  6. 在jdbc基础上进阶一小步的C3p0 连接池(DBCP 不能读xml配置文件,已淘汰) 和DBUtils 中两个主要类QueryRunner和ResultSetHandler的使用

    首先看C3p0这个连接池,最大优势可以自动读取默认的配置文件 <?xml version="1.0" encoding="UTF-8"?> < ...

  7. tcp文件下载客户端+服务端

    客户端: import socket if __name__ == '__main__': # 创建tcp客户端socket tcp_client_socket = socket.socket(soc ...

  8. linux下,把屏幕竖起来

    xrandr -o left 向左旋转90度 xrandr -o right 向右旋转90度 xrandr -o inverted 上下翻转 xrandr -o normal 回到正常角度

  9. python_字符串_常用处理

    1. 输出原序列的反向互补序列 in1 = open("brca1.fasta", "r") out1 = open("re_brca1.fasta& ...

  10. Linux平台下安装MySQL

    1.下载RPM包 http://dev.mysql.com/downloads/mysql/5.5.html#downloads 选择[Red Hat & Oracle Enterprise ...