JavaSE复习(一)继承多态与常用API
继承与多态
在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:
- 直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找
- 间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找
从Java 8 开始,接口里允许定义默认方法
格式
public default 返回值类型 方法名称(参数列表){
方法体
}
备注:接口当中的默认方法,可以解决接口升级的问题
从Java 9 开始,接口中允许定义私有方法
多态的代码中,成员变量和成员方法的访问规则
- 成员变量:编译看左边,运行还看左边
- 成员方法:编译看左边,运行看右边
多态
体现多态性:父类引用指向子类对象
好处:无论右边new的时候换成哪个子类对象,等号左边调用方法都不会变化
内部类
成员内部类
内用外,随意访问;外用内,需要内部类对象
使用方式:
间接方式:在外部类的方式当中,使用内部类;然后调用外部类的方法
直接方式,公式:
【外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();】
局部内部类(包含匿名内部类)
要访问所在方法的局部变量,那么这个局部变量必须是【有效final】的。
从Java 8 开始,只要局部变量事实不变,那么final关键字可以省略
权限修饰符规则:
- 外部类:public、(default)
- 成员内部类:public、protected、(default)、private
- 局部内部类:什么都不写
常用API
String
String和int相互转换
int--->String
num + ""低效String.valueOf(num)Integer.toString(num)
String--->int
Integer.parseInt(str)Integer.valueOf(str).intValue()
双引号直接写的字符串在常量池当中,new出来的不在池中
常量.equals字符串时建议把常量放前面,避免因字符串为空导致的空指针异常
分割字符串的
split()方法的参数是一个正则表达式,以"."分割是要写成"\\."输出一维数组:
Arrays.toString(arr)输出二维数组:
Arrays.deepToString(str)String 为什么是 final 的
实现字符串池:不可变才能实现字符串池,如果字符串是可变的,那么一个引用操作改变了对象的值,对其他引用会有影响
安全性:这些核心类的内部方法的实现并不是Java本身编写的,好多都是调用的操作系统本地的API,如果String可以被继承重写,就有可能被恶意的重写其中的方法,造成安全隐患;同时因为不可变,使得String是多线程安全的
效率:如果已经存在这个字符串常量便不会再创建,直接拿来用
JavaSE复习(一)继承多态与常用API的更多相关文章
- JavaSE复习日记 : 继承关系和super关键字以及继承关系中方法的覆写
/* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复 ...
- JavaSE 复习_4 接口多态和内部类
△abstract不可以修饰成员变量 △一个类可以没有抽象方法,可以定义为抽象类,这样的目的是不能让其他类建立本类对象,交给子类完成. △abstract和static(可以被类名调用方法,但是抽象方 ...
- JavaSE复习_3 继承
△先默认初始化,在显示初始化,在构造函数初始化 △继承的弊端:代码的耦合性增加了. △子类不能继承父类的构造方法. △子类会拥有父类的私有成员变量,但是必须通过get,set方法访问. △super不 ...
- JavaSE环境Shiro的搭建及常用API
通过shiroAPI来进行角色的管理 模拟用户是否登录: 模拟用户是否具有相应的权限:
- python oop常用术语 继承 多态 封装
面向对象优点 1.通过封装明确了内外 2.通过继承+多态在语言层面支持了归一化设计 抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现 ...
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- 【repost】Javascript操作DOM常用API总结
Javascript操作DOM常用API总结 文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认 ...
- JavaSE学习笔记(8)---常用类
JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...
- 常用API【2】
常用API 1.Math类 1.1 Math类概述 Math包含执行基本数字运算的方法 没有构造方法,如何使用类中的成员呢? 看类的成员是否是静态的,如果是,可以通过类名直接调用 1.2Math类的常 ...
随机推荐
- first 和firstordefault的用法 简介
https://www.cnblogs.com/1312mn/p/9212325.html
- P1024 一元三次方程求解
P1024 一元三次方程求解 #include<cstdio> #include<iostream> #include<algorithm> using names ...
- 页面跳转,A跳到B,B再返回A时自动定位到离开A时的位置
<template> <div class="hello" @scroll="scrollLoad" id="myScrollBox ...
- javaWeb css图文混排
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- C#基础学习笔记(个人整理)
学习笔记 第一章:c#基础 一.程序设计语言的发展及历史 1.程序设计语言? 通俗也叫编程语言,实现人与机器交互的工具 2.历史 1)机器语言 : 0,1 2)汇编语言 : 包含一些机器语言,同时增加 ...
- 懒下载软件,一行代码连接wifi^_^
按键盘的windows+R,输入cmd,回车键 设置语句netsh wlan set hostednetwork mode=allow ssid=user key=possword 按回车键 启动语句 ...
- datatable 单元格默认文本
在列字段中添加属性:"defaultContent": "-"
- JSONArray.fromObject不执行且不报错问题的解决
今天在写javaweb工程的时候需要向前台传json格式的数据,用到了json-lib-2.4-jdk15.jar等一系列包,然而却出现如下状况: CityBean是一个javaBean,我们看到,控 ...
- python__系统 : 线程
线程之间,全局变量可以共享,但是局部变量依然是不共享的,线程的创建方式: threading.Thread(),还可以定义一个类继承Thread,重写他的run方法,具体和进程的写法一样. 那么,线程 ...
- Python__关于列表的引用 以append操作为例
对于列表这样的可变类型来说,对它操作是不会改变内存地址的. 若列表里面存的元素是整数这样的不可变类型,若修改这个元素那地址还是会改变,如: >>> a = [,,] >> ...