Java学习笔记(必看经典).pdf

上传人:飞****9 文档编号:134041482 上传时间:2020-06-02 格式:PDF 页数:32 大小:383.05KB
返回 下载 相关 举报
Java学习笔记(必看经典).pdf_第1页
第1页 / 共32页
Java学习笔记(必看经典).pdf_第2页
第2页 / 共32页
Java学习笔记(必看经典).pdf_第3页
第3页 / 共32页
Java学习笔记(必看经典).pdf_第4页
第4页 / 共32页
Java学习笔记(必看经典).pdf_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《Java学习笔记(必看经典).pdf》由会员分享,可在线阅读,更多相关《Java学习笔记(必看经典).pdf(32页珍藏版)》请在金锄头文库上搜索。

1、 JAVAJAVA 的面向对象编程的面向对象编程 课堂笔记课堂笔记 面向对象主要针对面向过程 面向对象主要针对面向过程 面向过程的基本单元是函数 面向过程的基本单元是函数 什么是对象 什么是对象 EVERYTHING IS OBJECT 万物皆对象 万物皆对象 所有的事物都有两个方面 所有的事物都有两个方面 有什么 属性 用来描述对象 有什么 属性 用来描述对象 能够做什么 方法 告诉外界对象有那些功能 能够做什么 方法 告诉外界对象有那些功能 后者以前者为基础 后者以前者为基础 大的对象的属性也可以是一个对象 大的对象的属性也可以是一个对象 为什么要使用面向对象 为什么要使用面向对象 首先

2、面向对象符合人类看待事物的一般规律 首先 面向对象符合人类看待事物的一般规律 对象的方法的实现细节是屏蔽的 只有对象方法的实现者了解细节 对象的方法的实现细节是屏蔽的 只有对象方法的实现者了解细节 方法的定义非常重要 方法有参数 也可能有方法的定义非常重要 方法有参数 也可能有返回值 返回值 注意区分 对象 本身 对象的实现者 对象的调用者 注意区分 对象 本身 对象的实现者 对象的调用者 分析对象主要从方法开始 分析对象主要从方法开始 我们通过类来看待对象 类是对象的抽象 我们通过类来看待对象 类是对象的抽象 其次 采用面向对象方法可以使系统各部分各司其职 各尽所能 其次 采用面向对象方法可

3、以使系统各部分各司其职 各尽所能 对象之间的耦合性一定要低 比如不同硬盘和不同主板之间的关系 这样才能使每个对象本身做成最对象之间的耦合性一定要低 比如不同硬盘和不同主板之间的关系 这样才能使每个对象本身做成最 好的 好的 对于对象的要求 高内聚 低耦合 这样容易拼装成为一个系统 对于对象的要求 高内聚 低耦合 这样容易拼装成为一个系统 实现高内聚就是要最大限度低提高复用性 复用性好是因为高内聚 实现高内聚就是要最大限度低提高复用性 复用性好是因为高内聚 可复用性是可复用性是 OOP 的基础 的基础 比较面向过程的思想和面向对象的思想 比较面向过程的思想和面向对象的思想 面向过程的思想 由过程

4、 步骤面向过程的思想 由过程 步骤 函数组成 以过程为核心 函数组成 以过程为核心 面向对象的思想 以对象为中心 先开发类 得到对象 通过对象之间相互通信实现功能 面向对象的思想 以对象为中心 先开发类 得到对象 通过对象之间相互通信实现功能 面向过程是先有算法 后有数据结构 面向过程是先有算法 后有数据结构 面向对象是先有数据结构 然后再有算法 面向对象是先有数据结构 然后再有算法 在用面向对象思想开发的过程中 可以复用对象就进行复用 如无法进行复用则开发新的对象 在用面向对象思想开发的过程中 可以复用对象就进行复用 如无法进行复用则开发新的对象 开发过程是用对个简单的对象的多个简单的方法

5、来实现复杂的功能开发过程是用对个简单的对象的多个简单的方法 来实现复杂的功能 从语法上来看 一个类是一个新的数据类型 从语法上来看 一个类是一个新的数据类型 在面向对象编程中 除了简单数据类型 就是对象类型 在面向对象编程中 除了简单数据类型 就是对象类型 定义类的格式 定义类的格式 class Student 代码代码 诚信 创新 开放 合作诚信 创新 开放 合作 注意类名中单词的注意类名中单词的首字母大写 首字母大写 实例变量 定义在类中但在任何方法之外 实例变量 定义在类中但在任何方法之外 New 出来的均有初值 出来的均有初值 局部变量 定义在方法之中的变量 局部变量 定义在方法之中的

6、变量 局部变量要先赋值 再进行运算 而实例变量均已经赋初值 这是局部变量和实例变量的一大区别 局部变量要先赋值 再进行运算 而实例变量均已经赋初值 这是局部变量和实例变量的一大区别 实例变量的对象赋值为实例变量的对象赋值为 null 局部变量不允许范围内定义两个同名变量 实例变量的作用域在本类中完全有效 当被其他的类调用的局部变量不允许范围内定义两个同名变量 实例变量的作用域在本类中完全有效 当被其他的类调用的 时候也可能有效 时候也可能有效 实例变量和局部变量允许命名冲突 实例变量和局部变量允许命名冲突 书写方法的格式 书写方法的格式 修饰符修饰符 返回值返回值 方法名方法名 调用过程中调用

7、过程中 方法体方法体 可能出现的例外可能出现的例外 public int void addNumber 参数参数 throw Excepion 例 例 public int addNumber int a int b 注 方法名中的参数注 方法名中的参数 int a int b 为局部变量为局部变量 类方法中的一类特殊方法 构造方法 类方法中的一类特殊方法 构造方法 构造方法是当用类生成对象时 系统在生成对象的过程中利用的方法 构造方法是当用类生成对象时 系统在生成对象的过程中利用的方法 注意 构造方法在生成对象的时候会被调用 但并不是构造方法生成了对象 注意 构造方法在生成对象的时候会被调用

8、 但并不是构造方法生成了对象 构造方法没有返回值 格式为 构造方法没有返回值 格式为 public 方法名 方法名 构造方法的方法名与类名构造方法的方法名与类名相同 相同 构造方法是在对象生成的过程中自动调用 不可能利用指令去调用 构造方法是在对象生成的过程中自动调用 不可能利用指令去调用 在一个对象的生成周期中构造方法只用一次 一旦这个对象生成 那么这个构造方法失效 在一个对象的生成周期中构造方法只用一次 一旦这个对象生成 那么这个构造方法失效 用类来生成对象的语句 用类来生成对象的语句 Student s new Student 第一个第一个 Student 表示这是用表示这是用 Stud

9、ent 类进行定义 类进行定义 Student 表示调用一个无参数的构造方法 表示调用一个无参数的构造方法 如果如果 中有参数 则系统构造对象的过程中调用有参的方法 中有参数 则系统构造对象的过程中调用有参的方法 此时此时 S 称为一个对象变量 称为一个对象变量 Student s 的存储区域存放的是地址 一个对象在硬盘上占有一个连续地址 首地址赋的存储区域存放的是地址 一个对象在硬盘上占有一个连续地址 首地址赋予予 s 空间 空间 S 称为对象称为对象 Student 的引用 的引用 注意 在对象变量中存放的是引用 地址 在简单变量中存放的是数值 注意 在对象变量中存放的是引用 地址 在简单

10、变量中存放的是数值 可以构造多个构造方法 但多个构造方法的参数表一定不同 参数顺序不同即属于不同的构造方法 可以构造多个构造方法 但多个构造方法的参数表一定不同 参数顺序不同即属于不同的构造方法 public student string name int a public student int a string name 为两个不同的构造方法 为两个不同的构造方法 如果我们未给系统提供一个构造方法 那么系统会自动提供一个为空的构造方法 如果我们未给系统提供一个构造方法 那么系统会自动提供一个为空的构造方法 练习 写一个类 定义一个对象 定义两个构造方法 一个有参 一练习 写一个类 定义一个

11、对象 定义两个构造方法 一个有参 一个无参 个无参 编写一个程序验证对象的传递的值为地址 编写一个程序验证对象的传递的值为地址 注意下面这种形式 注意下面这种形式 static void changename student stu stu setName LUCY 注意生成新的对象与旧对象指向无关 生成新对象生命消亡与旧对象无关 注意生成新的对象与旧对象指向无关 生成新对象生命消亡与旧对象无关 面向对象方法的重载 面向对象方法的重载 overloading 和覆盖 和覆盖 overriding 在有些在有些 JAVA 书籍中将书籍中将 overriding 称为重载 称为重载 overloa

12、ding 称为过载 称为过载 Overloading 在一个类中可以定义多个同名方法 各个方法的在一个类中可以定义多个同名方法 各个方法的参数表参数表一定不同 但修饰词可能相一定不同 但修饰词可能相同 同 返回值也可能相同 返回值也可能相同 在程序的编译过程中根据变量类型来找相应的方法 因此也有人认为在程序的编译过程中根据变量类型来找相应的方法 因此也有人认为 overloading 是编译时的多态 是编译时的多态 以后我们还会学到运行时多态 以后我们还会学到运行时多态 为什么会存在为什么会存在 overloading 技术呢 作为应对方法的细节 技术呢 作为应对方法的细节 利用类型的差异来影

13、响对方法的调用 利用类型的差异来影响对方法的调用 吃 可以分为吃肉 吃菜 吃药 在一个类中可以定义多个吃方法 吃 可以分为吃肉 吃菜 吃药 在一个类中可以定义多个吃方法 构造方法也可以实现构造方法也可以实现 overloading 例 例 public void teach public void teach int a public void teach String a 为三种不同的方法 为三种不同的方法 Overloading 方法是从低向高转 方法是从低向高转 Byte short float int long double 在构造方法中 在构造方法中 this 表示本类的其他构造方法

14、 表示本类的其他构造方法 student student string n this 表示调用表示调用 student 如果调用如果调用 student int a 则为则为 this int a 特别注意特别注意 用 用 this 调用其他构造方法时 调用其他构造方法时 this 必须为第一条语句 然后才是其他语句 必须为第一条语句 然后才是其他语句 This 表示当前对象 表示当前对象 Public void printNum Int number 40 System out println this number 此时打印的是实例变量 而非局部变量 即定义在类中而非方法中的变量 此时打印

15、的是实例变量 而非局部变量 即定义在类中而非方法中的变量 This number 表示实例变量 表示实例变量 谁调用谁调用 this number 那么谁即为当前那么谁即为当前 this 对象的对象的 number 方法 方法 封装 使对象的属性尽可能私有 对象的方法尽可能的公开 用封装 使对象的属性尽可能私有 对象的方法尽可能的公开 用 private 表示此成员属性为该类的私有表示此成员属性为该类的私有 属性 属性 Public 表示该属性 方法 公开 表示该属性 方法 公开 Private 表示表示该属性 方法 为只有本类内部可以访问 类内部可见 该属性 方法 为只有本类内部可以访问 类

16、内部可见 想用 想用 private 还要用还要用 set 和和 get 方法供其他方法调用 这样可以保证对属性的访问方式统一 并且便于方法供其他方法调用 这样可以保证对属性的访问方式统一 并且便于 维护访问权限以及属性数据合法性 维护访问权限以及属性数据合法性 如果没有特殊情况 属性一定私有 方法该公开的公开 如果没有特殊情况 属性一定私有 方法该公开的公开 如果不指明谁调用方法 则默认为如果不指明谁调用方法 则默认为 this 区分实例变量和局部变量时一定要写区分实例变量和局部变量时一定要写 this 11 29 继承 继承 父类 父类 SuperClass 和 和 子类 子类 SonClass 父类的非私有化属性和方法可以默认继承到子类 父类的非私有化属性和方法可以默认继承到子类 Class Son extends Father 而而如果父类中的私有方法被子类调用的话 则编译报错 如果父类中的私有方法被子类调用的话 则编译报错 父类的构造方法子类不可以继承 更不存在覆盖的问题 非构造方法可以 父类的构造方法子类不可以继承 更不存在覆盖的问题 非构造方法可以 如果子类访问父类的构造

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

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