走进Java:一
-
变量:程序运行时 内存中储存的数据可以发生改变的 容器
-
自动类型转换:低级数据类型向高级数据类型转换 为自动转换
-
强制类型转换:高级数据类型向低级数据类型转换 为强制转换,可能会出现数据 “溢出”
-
什么是面向对象:就是一对象为导向 来开发应用程序软件的方法 抽象、封装、继承、多态
-
现实生活中的对象:人们 在 “行动” 或 “思考” 的目标
-
计算机中的对象:客观世界的对象在计算机中的映射 、唯一性、软件系统基本单元
-
抽象:抽取共同属性和方法 (特征和行为)
-
类:具有相同的属性和方法组成的集合 ;
实例化:普通类、抽象类 Static分:静态类、非静态 定义位置:嵌套类、费嵌套类 无类:匿名类、非匿名类
-
引用数据类型:基本数据类型构造封装成数据类型 ; 引用数据类型存在堆中,引用本身存在栈中,通过栈中引用访问堆中的对象
类、接口、数组、字符串、枚举、注解类型
-
成员变量:类中声明作为类的成员变量 范围:整个类 实例变量、静态变量
-
实例变量:仅可以通过 “对象” 调用的成员变量
对象创建时 在堆中开辟空间 作用域受修饰符限定 生命周期取决于对象 不能用static修饰
-
静态变量(类变量):由static修饰,直接通过类型调用
生命周期取决于类 static修饰 数据共享
-
成员方法:类中声明的方法 ; 类的成员、成员方法由“同类对象” 共享
静态分为:静态方法、实例方法 有无参分:有参方法、无参方法 有无返回值分:无返回值、有返回值
-
静态方法(类方法):由static修饰,生命周期和类相同
生命周期取决于类 static修饰
-
实例方法:尽可以通过对象调用
作用域受修饰符限定 生命周期取决于对象 不可以static修饰
-
封装:属性和方法组合 并 隐藏内部 细节 ; 抽象得到的属性和方法合在一个类中、隐藏细节并对外提供接口
类、属性、方法的封装
-
包:防止命名冲突,实现方便管理,接口等 ; 一个类库单元、避免命名冲突、访问权限限制、借助操作系统实现目录
核心包 扩展包 第三方包 自定义包
-
访问修饰符:限定类型类型成员 ; 访问级别限制、类型及类型成员限制
no. 修饰符 private default protected public 1 同一包下的同一个类 √ √ √ √ 2 同一包下的不同类 × √ √ √ 3 不同包下的子类 × × √ √ 4 不同包下的非子类 × × × √
-
构造方法:名称和类名相同,自动完成调用初始化的方法
名字与类名相同 返回值类型修饰 任何类都拥有 没有添加构造方法,系统默认添加一个无参构造 系统创建对象是自动调用构造方法 完成对象初始化工作 不能被 “非访问修饰符” (意思是 不是修饰来去修饰) 修饰 分类: 有参、无参构造 默认、自定义构造方法
-
重载:一个类中定义多个同名方法 提高代码可读性
同一个类中 方法名相同 参数列表不同、编译时多态(静态多态) 同名同类不同参 构造、成员方法重载
-
继承:子类 复用(在一次用)父类的属性和方法
继承关系可以传递 提高代码的重(chong)用性 类与类之间的一种层次关系(好比父母和孩子) 分类:单继承、多继承、多级继承、多层继承、混合继承
-
重写:子类重新编写父类的方法
参数个数需和被重写的方法参数个数一样 (父类中被重写的方法) 修饰符级别不能低于被重写方法的修饰符级别 返回类型需与 被重写方法 返回值类型一样 重写方法 不可以 抛出新异常 或 比被重写方法抛出的异常 范围更广 级别更高 构造方法、static(静态)方法、final(最终)方法 不能被重写 ****
-
final:意思是最终的、最后的 ;
final修饰的变量 无(没有)默认值,需要定义一个(初始化就是赋上值)但是只能赋值一次 final修饰引用数据类型时,引用本身不能更改,但引用指向的对象可以更改 final修饰的变量是 “常亮” final修饰的 “方法” 不能被子类重写 final修饰的 “类” 不能继承
-
多态:操作不同的 对象(或参数)而表现出 不同的实现方式 ; 面向对象的四大特性之一(多态) 、可以提升程序的扩展性
编译时多态(就是静态多态) 运行时多态(就是动态多态)
-
编译时多态(静态多态):编译的时候确定的实现方式
-
运行时多态(动态多态):运行的时候确定的实现方式
-
向上转型:父类引用子类对象,把子类对象当成父类对象来引用
自动的类型转换 、直接或间接继承都可以实现
-
向下转型:已经向上转型的子类对象 在强制转回 子类对象 的引
用类型转换 强制类型转换 需要使用强制类型转换符 存在风险 可能会发生类型转换异常
-
方法绑定:方法调用和方法主题关联起来
静态绑定 动态绑定
-
静态绑定(前期绑定,编译时绑定):程序在编译时确定调用具体的方法
-
动态绑定:程序运行时,根据引用对象的实际类型来调用相应的方法
-
接口:用 interface 实现 不能直接实例化引用数据类型
不可以直接实例化 静态常亮和公共方法组成 用 interface 实现 ,可以多继承
-
抽象类:用 abstract 修饰 , 不能直接实例化
-
抽象方法:用 abstract 修饰 没有 方法体 的方法
-
何为方法体:
pulblic void test(){}
{} 大括号里面的是方法体,没有 {} 就没有方法体 ,但是有 {} ,里面没有内容 那方法体 就是为 空 方法体
test是方法名
-
String类 :用于表示定长,不可变字符序列的类
字符数组实现、 字符串常亮不可变 只能改变对象、 值 存在 常量池 共享
-
StringBuffer类:用于表示可变字符序列,线程 “安全” 的类
字符数组实现 字符串可以改变 所有方法均可 由 synchronized 修饰 同步 , 线程安全
-
StringBuilder类 :用于表示可变字符序列,线程 “不安全” 的类
字符数组实现 字符串可以改变线程不安全 线程不安全,运行速度上比 StringBuffer 快 有优势
-
装箱:将值类型转换为引用类型 JDK 1.5 后可以自动完成
-
拆箱:引用类型转换 值 类型 JDK 1.5 后可以自动完成
-
异常:程序运行时发生了 不正常的事件 Error 、 Exception
-
Exception : 这个异常是程序自己 可以处理 , 非常严重的异常 是JVM把出错信息(出错原因、类型、位置等)
一起打包成了一个对象具有偶然性 具有可预见性
-
一般什么异常可以抛出呢?
运行时异常(非检查型异常)==》代码运行期 非运行时异常(检查异常)==》代码编译期
-
根据是否 “自定义” 分
自定义异常 系统自带异常
-
Error:程序无法处理,严重性异常
-
异常处理:对异常的抛出捕获和处理异常 这样提高程序的 健壮性 健壮性意思是 代码很强壮
一般异常处理 try、catch、finally
知识点如果有误,请路过的大神,帮忙指点一二!!