java面向对象知识点总结

上传人:雨水 文档编号:146056494 上传时间:2020-09-25 格式:PDF 页数:15 大小:20.12KB
返回 下载 相关 举报
java面向对象知识点总结_第1页
第1页 / 共15页
java面向对象知识点总结_第2页
第2页 / 共15页
java面向对象知识点总结_第3页
第3页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《java面向对象知识点总结》由会员分享,可在线阅读,更多相关《java面向对象知识点总结(15页珍藏版)》请在金锄头文库上搜索。

1、学习资料收集于网络,仅供参考 学习资料 1 类和对象 1.1 类: 类是用来描述一类事物的共性内容的, 类是抽象的 ; 创建类 ,如何描述 属性功能 用变量来描述属性 用方法来描述功能 1.2 对象 : 就是现实中具体的事物 ,对象是具体的 ; 创建对象 类名对象名= new 类名(); 如何通过对象访问类中属性和方法呢? 对象名 .变量名 对象名 .方法名(); 只要是 new 的对象 ,就是新创建的 ,就会在内存中开辟一段单独的空间 1.2 匿名对象 创建的对象没有赋值给具体的变量; 学习资料收集于网络,仅供参考 学习资料 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景 1

2、调用方法 2 作为参数传递 3 添加进容器中 1.3 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字 This. 就代表当前对象 , 普通方法 , 创建对象调方法 , 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数 使用注意事项 : 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 1.4 构造函数 (方法 ) 1.4.1 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 学习资料收集于网络,仅供参考 学习资料 1.4.

3、2 构造函数何时执行 对象一创建就会调用与之相对应的构造函数 1.4.3 构造函数语法 修饰符没有返回值类型类名(参数列表 ) 具体执行的代码 1.4.4 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm 会自动帮我们添加一个空参数 的构造 , 如果我们指定了 ,就不添加了 1.5.5 构造函数和普通函数的区别 5.1 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 1.5 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现return; 3 构造函数中也可

4、以有return 关键字 学习资料收集于网络,仅供参考 学习资料 1.6 成员变量和 局部变量 1 作用范围不同 , 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用 2 初始值不同 ,成员变量有默认初始值 ,不用赋值 ,也能直接时候 局部变量 ,没有初始值 ,必须得赋值以后才能使用 2 封装 2.1 static Static 是用来修饰类中成员成员变量成员方法 被 static 修饰的成员 ,就多了一种调用方式 ,可以被类名直接调用了 2.1.1 修饰成员变量 该变量在内存中只会保存一份,被类和所有对象共享, 那么一个对象对其进行修 改,会影响到其他

5、对象 ,为了不影响其他对象 ,经常会把静态变量搞成常量,被 final 修饰; 2.1.2 修饰成员方法 静态方法中只能访问静态成员 普通方法中都能访问 ; 静态方法中不能出现this,super 关键字 Main 函数是静态的 ; 学习资料收集于网络,仅供参考 学习资料 那么我们定义方法时 ,什么时候定义静态 ,什么时候定义非静态 ? 当方法中使用到了普通 (非静态 )成员的话 ,就不能定义成静态的 ; 2.1.3 static代码块(静态代码块 ) 用来给类进行初始话(给类中的静态成员进行初始化) 会随着类的加载而执行 (只会执行一次 ) 2.2 封装 就是隐藏类中的某些成员;仅对外提供公

6、共的访问方式 封装三步走 : 1 私有属性 2 提供 set 和 get 方法供外界给对象设置值和获取值 3 在方法中添加具体的存取限制 2.3 包和权限修饰符 2.3.1 类 权限修饰符可以用来修饰两种东西: Public 该类在其他包中也可以访问(首先要导包import) 默认 2.3.2 类中成员 Public protected 默认private 学习资料收集于网络,仅供参考 学习资料 本类中是否能访问本包其他类其他包 Public 能能能 默认能能不能 Private 能不能不能 包 1 创建包 2 声明包package com.wanshi.day0803; 3 导入包impor

7、t java.util.Scanner; 包的作用 1 便于管理 2 防止命名冲突 ; 3 包 也是封装的一种方式 ,可以在更广的范围保护类 3 继承 某个类可以 通过extends 继承其他的类 一个类继承了另外一个类以后,就继承了所有的非私有的属性和方法 注意事项 1 java中只允许单继承 ; 不允许多继承 , 但是允许多层继承 2 何时继承 ? A is B; 学习资料收集于网络,仅供参考 学习资料 继承发生以后类中成员的特点 1 成员变量 当子类和父类的成员变量同名是,子类中优先使用子类自己的. 可以通过 super.调 用父类的成员变量和成员方法; 2 成员方法 子父类具有相同的功

8、能 ,但是子类有自己具体的实现,这个时候子类是没有必要重 新定义一个方法的 ,只需要重写父类就行了 ; 重写 (覆盖) 1 前提, 存在继承和 实现关系 2 方法名一样 ,参数列表一样 ,返回值类型一样 (jdk5 以后要求子类的返回值类型 是父类返回值类型的子类也行) 3 子类方法的权限不能小于父类 4 子类方法不能抛出比父类更多的异常 重载 同一个类中 ,方法名一样 ,参数列表不一样 (参数数量 , 参数类型 ),与返回值类型无 关 3 构造函数 1 构造函数是不能继承的 ; 2 但是子类可以在构造函数中通过super()调用父类与之相对应的构造 3 如果子类构造函数首行没有明确指定thi

9、s(), super(“”);这样的语句的话 ,其实是 有一天隐式语句super(),调用父类空参数构造,如果父类没有空参数构造的话,子 类是会报错的 ; 学习资料收集于网络,仅供参考 学习资料 4 如果子类首行有 this() 这样的语句的话 ,就没有隐式语句super(); 5 不论子类的第一行有没有this(),super(); 创建子类对象的时候一定会调用到父 类的某个构造 ; 4 与上帝相关Object 1 任何类java 中自带的类 ,或者是我们自定义的类,都直接或间接的继承自 Object; 2 如果某个类没有明确指定父类的话 ,那么这个类就默认继承自Object; 3 所有 O

10、bject 中定义的方法所有java 对象都可以调用 4 比如 toString() equals(Object object) 5 直接打印对象的话 .我们发现出现的是对象的内存地址值,因为打印对象就是打 印的对象的 toString()方法的返回值 . 而 Object 身上定义的 toString 方法返回的 就是对象的内存地址值 , 这个时候这需要我们重写toString 方法以后 , 调用的就是子类自己的toString 方 法了 5 抽象类 1 发现该类事物都具备该功能,但是不确定如何实现 ,就可以定义成抽象方法 2 抽象方法特点没有方法体 , 被 abstract 修饰 3 如果

11、一个类中有抽象方法 ,这个类也必须得是抽象类 4 如果一个类继承了抽象类以后,这个类要么是抽象的 ,要么必须实现抽象类中的 所有抽象方法 5 抽象类和普通类的不同 ; 抽象类不能被实例化对象; 学习资料收集于网络,仅供参考 学习资料 6 为什么不能实例化对象 因为创建对象以后就可以通过对象调用抽象类中没有方法体的抽象方法了,这样 是没有意义的 ,为了不让调用 ,干脆就不让创建对象了 ; 7 抽象类有没有构造函数 ? 抽象类天生就是被继承的,然后创建子类对象的时候一定会调用到父类构造 8 抽象类中可以没有抽象方法; 6 Final 1 常量不能重新赋值 2 类该类不能被继承不能派生子类 3 方法

12、该方法不能被重写 (覆盖) 7 Abstract 修饰方法和三个关键字冲突 1 final 2 static 3 private 8 super关键字 1 super. 指代父类对象的引用可以通过 super.调用父类的属性和方法 2 可以通过 super() 在构造函数中调用父类与之相对应的构造函数 学习资料收集于网络,仅供参考 学习资料 4 多态 4.1 多态的体现 Animal animal = new Pig(); 父类的引用指向了子类对象 左边声明的是父类 ,右边创建的是子类 ; 4.2 多态的前提 存在继承或实现关系 4.3 多态的好处 简化了代码 ; 大大提高了程序扩张性 ; 4

13、.4 多态的弊端 只能调用父类共有的方法,不能调用子类特有的方法 4.5 多态的应用 Animal animal = new Pig(); 能不能调用看左边 , 具体调用谁的看右边 ; 非要调用子类特有的方法需要强转, 向下转型 : 强制把父类的应用转成子类对象; 学习资料收集于网络,仅供参考 学习资料 向下转型容易出问题 , 为了防止类型映射异常 ,最好在强转以前进行类型判断; Instanceof 4.6 多态的应用场景 4.6.1 定义方法的时候 ,形式参数的类型声明为父类,这样调用方法的时候就可以 传递该父类的任意子类对象进来了; 4.6.2 以父类作为方法的返回值类型, 5 接口 1

14、 如何定义一个接口 , interface 2 初期理解 ,接口就是里边都是抽象方法的抽象类 3 接口中成员接口中只能有两种成员 3.1 抽象方法 3.2 静态常量 4 接口中的成员都有固定的修饰符,可以省略 抽象方法的public abstract 静态常量的public final static 5 接口和抽象类都不能实例化对象 6 接口是没有构造函数的 , 7 接口支持多实现implements A,B,C ,D 学习资料收集于网络,仅供参考 学习资料 8 一个类在继承了一个类的同时还可以实现多个接口 9 接口和接口之间也有关系 ,是继承关系 10 接口和接口之间支持多继承 2 何时使用

15、接口 2.1 接口是额外的功能 2.2 接口预先定义好的规则 6 异常 程序运行中的不正常事件,会导致程序终止运行 , 1 try Try 可能出现异常的代码 2 catch Catch(要捕获的异常对象 ) 捕获住异常执行的代码 ; e.printStackTrace(); 学习资料收集于网络,仅供参考 学习资料 3 finally Finally 不论是否发生异常 ; 不论发生异常之后能不能捕获住异常,都会执行的代码 即便 try catch 中有 return 语句,也是先执行完 finally 中的代码 ,再 return; Finally 不执行的唯一情况是try catch 中碰到

16、 System.exit(1); 4 多重 catch语句块 ; Try中代码发生异常以后 ,会从上往下依次匹配catch 代码块 ,匹配上某一个的话就 不继续往下匹配了 ; 我们经常会在多个catch 的最后 catch 一个最大的 Exception, 起一个兜底的操作 , 就是即便发生了我们没有预料到的异常,程序也不会终止掉 ,并且最大的异常应 该放在最后一个 catch块; 5 throws throw Throws 用来在方法上抛出多个异常类的,各个异常类之间用逗号分隔开 Throw 用来在方法内部抛出一个异常对象 学习资料收集于网络,仅供参考 学习资料 我们调用到了声明过异常的方法,必须进行处理 ,两种处理方式 ,要么抛 ,要么 try; 6 自定义异常 自定义一个类继承Exception就是异常类了 ; public class NoFriendE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号