继承多态接口异常

170 阅读7分钟

在就业班的几天内 学到了很多东西,继承,多态,接口,异常等等。

day01

继承的概念
概念 :面向对象得三大基本特征之一,使子类可以拥有父类得属性和方法
继承的格式
public class 子类 extends 父类
继承的优点
提高了代码的复用性
提高了代码的维护性
继承的缺点
使子类与父类强耦合(紧密联系在一起)在一起,使子类会无条件继承父类得属性和方法,降低了子类得独立性
继承中变量的访问特点
规律:就近原则 局部优先原则
子类的局部变量
子类的成员变量
父类的成员变量
super关键字在访问成员变量时的用法
super.变量名---->访问父类得成员变量
this.变量名----->访问本类得成员变量
继承中构造方法的访问特点(super调用构造方法)
super();调用父类得构造方法,应该是首行非注释代码
this(); 调用本来得构造方法,应该是首行非注释代码
继承中成员方法的访问特点(super调用成员方法)
super. 方法名(); 父类的成员方法
this. 方法名(); 本类的成员方法
方法重写
子类中出现了与父类相同的方法
方法重写注意事项
不能重写private的方法
private--默认---protected--public:子类中重写的方法的访问范围要大于等于父类中方法的访问范围
继承的注意事项
单继承体系
多层继承
package的概念
文件夹
import的概念
导入不同包下的java类
导包时使用通配符: import cn.itcat.*;
权限修饰符
权限修饰符
同一个类
同包子类无关类
不同包子类
不同包无关类

private可以
默认可以可以
protected可以可以可以
public可以可以可以可以

15.final修饰符
修饰方法,代表当前方法不可以被重写
修饰变量,变量就变成常量
修饰类,不允许被继承
16.static修饰符
修饰变量:1.类名.变量名 2.类得多个对象共享一个变量得值
修饰方法 类名.方法名() 注意点:只能访问本来得静态属性和静态方法
day02

多态的概念
概念:同一段代码不同时刻表现出不同得执行状态
多态的前提
继承
方法得重写
父类得引用指向子类得对象
多态中成员访问特点
成员变量:编译看左边,运行看左边
成员方法: 编译看左边,运行看右边
多态的优点和缺点
优点:提高了代码得拓展性
缺点:父类得引用无法调用子类特有得方法
多态中的向上转型和向下转型
向上转型:父类得类名 父类引用=new 子类得对象(); 自动类型转换
向下转型:子类得类名 子类得引用=(子类得类名)父类引用;强制类型转换
抽象类的概念
通过abstract修饰得类为抽象类
抽象方法的概念
通过abstract修饰得方法为抽象方法,抽象方法没有方法体得方法
抽象类的特点
抽象类和抽象方法必须通过abstract关键字修饰
抽象类不一定会有抽象方法,但是一旦有了抽象方法必须是抽象类
抽象类不能实例化对象
抽象类得子类必须重写抽象方法或者自己也变为抽象类
抽象类的成员特点
成员变量 变量/常量
构造方法 无参/有参
方法 抽象/普通
接口的概述
特殊得抽象类,接口中全部都是抽象方法,行为规范
接口的特点
接口是通过 interface关键字修饰
类与接口之间是实现关系,通过implments 关键字实现
接口不可以实例化对象
接口得实现类要么重写抽象方法要么自己也变成抽象类
接口成员的特点
静态常量
抽象方法
类和接口的关系
类与类之间关系:继承关系,单继承体系,支持多层继承
类与接口之间得关系:实现得关系,可以单实现,也可以多实现,并且能够继承某个类得同时实现某个接口
接口与接口之间得关系:继承关系,支持多继承

day03

类名作为形参和返回值
类名作为形参或返回值,其实传递或返回的是该类得对象
抽象类作为形参和返回值
抽象类名作为形参或返回值,其实传递或返回的是该类子类得对象
接口作为形参和返回值
接口名作为形参或返回值,其实传递或返回的是该接口实现类得对象
内部类概念
类内部声明得类
内部类的访问特点
内部类可以直接访问外部类得成员,包括私有得
外部类访问内部类成员,需要实例化内部类对象
内部类的分类
成员内部类
局部内部类
成员内部类
声明在类得成员位置得类
外部类得类名.内部类得类名 引用名=外部类得对象.内部类得对象
public class Outer {
private int num = 10;
public class Inner {
int num=20;
public void show() {
int num=30;
System.out.println(num);
System.out.println(this.num);
System.out.println(Outer.this.num);
}
}

public void method() {
Inner i = new Inner();
i.show();
}

}
public class InnerDemo {
public static void main(String[] args) {
//创建内部类对象,并调用方法
// Inner i = new Inner();
Outer.Inner oi = new Outer().new Inner();
oi.show();
System.out.println("------------------------");
Outer outer=new Outer();
Outer.Inner ooi=outer.new Inner();
ooi.show();
System.out.println("------------------------");
Outer o = new Outer();
o.method();
}
}

局部内部类
类得方法内部声明得类
匿名内部类
没有名字得局部内部类
new 接口/抽象类/类(){方法重写()}
Math工具类
java.lang.Math
abs():求绝对值
ceil():向上取整 12.35 12.56--->13
floor():向下取整 12.35 12.56------>12
round():四舍五入 12.35-->12 12.56--->13
max():两数求最大值
min():两数求最小值
pow():求幂数 2 3
random():随机数 [0.0-1.0)
System类
exit():退出虚拟机 echo %errorlevel%
currentTimeMillis():返回得是距1970年1月1日0点0分0秒距现在得毫秒差
Object类
toString():一般用于对当前对象进行说明
equals():比较两个对象得内容是否相等
Arrays类

java.util.Arrays
toString():以字符串得方式获取数组
sort(): 数组排序

封装数据类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
如何通过Integer对象描述一个int型值
new Integer(100)
new Integer("100")
Integer.valueOf(100)
Integer.valueOf("100")
int与String互换
int转String
1+“”
String.valueOf(5)
String转int
Integer.valueOf("5") intValue()
Integer.parseInt("5");
自动拆箱装箱jdk1.5
自动装箱:int i=100; Integer ii=i;
自动拆箱:Integer ii=Integer.valueOf(100); int i=ii;
Date类实例化 java.util
new Date()
new Date(long)
Date类常用方法
getTime()
setTime(long)
SimpleDateFormat格式化日期 java.text
yyyy MM dd HH mm ss
format():将日期转换为指定格式得字符串
parse():将指定格式得字符串转换为日期
Calendar类用法 java.util
Calendar c=Calendar.getInstance();
c.get(Calendar.Year)根据日历字段返回相应得值
add()
set()
异常
概念:程序中出现得错误
异常得体系结构
Throwable
Error:不可处理异常
Exception:可处理异常
编译期异常:
运行时异常:RuntimeException
try:异常得监视块
catch:异常得捕获块
Throwable成员方法
getMessage(): 错误原因
toString():简要异常消息
printStackTrace():详细异常消息
运行时异常和编译时异常
运行时异常
编译时异常:要求编译时必须进行异常处理
异常举例
ArithmeticException:数学异常除数不能为0
NullPointerException:空指针异常
StringIndexOutOfBoundsException:字符串索引越界
NumberFormatException:数字格式化异常
ClassCastException:类型转换异常
多重catch块
try{}catch catch
throws
回避异常