JavaOOP
2024-05-21 12:06:21 5 举报
AI智能生成
javaOOP
作者其他创作
大纲/内容
客观存在事物,万事万物皆为对象!
定义
对象有特征(属性)和行为(方法)
对象
类就是从具备相同属性和方法的多个对象中抽象出来的
类
类是一个抽象的概念,
对象是一个你能够看得到、摸得着的具体实体
类和对象有什么区别呢?
封装
继承
多态性
面向对象编程的三个重要的原则
1个文件中可以有多个类,但是公共类只有一个,且与文件名同名
编译是以类为单位。一个类中有多少个类,编译生成多少个class文件
说明
class 类名{ }
class 类名{ 属性; 方法; }
在类中声明的变量; 都有初始值;
属性
定义类
类与对象
public 返回值类型 方法名() { //这里编写方法的主体 }
定义方法语法
方法只有一个返回值
方法的返回值类型
方法:对象名.方法名
调用过程: 方法的调用时,程序流程进入到方法体,当执行return时,返回调用处
方法的调用
方法
根据变量的作用范围不同分为:全局变量(成员变量)和局部变量
局部变量的优先级高于全局变量
变量的作用域 :{}决定变量的作用域
隐藏对象的属性和实现细节,仅对外公开接口(类的成员)来和对象进行交互.
封装基本单元
代码重用
功能
方法1
String类型的全局变量的初始值为null
方法名与类名相同;没有返回值
特点
在实例化时
调用
任何类都有一个隐式默认不带参的构造方法
写了构造方法,就无默认不带参的构造方法
构造方法
代表当前对象
this.成员名调用属性和方法
使用
解决局部变量与全局变量同名时,如果要访问全局变量在前加this
this
定义方法中声明的变量
形参
调用方法中的参数
实参
参数分为
方法调用时,实参要与形参一一对应;实参与形参的类型、数量、顺序一一对应
参数
成员变量声明时初始化
通过构造方法给成员变量赋值
通过对象名,属性名给成员变量赋值
给成员变量赋值方法
方法2
为什么要封装,提高安全性
将属性和实现细节隐藏,提供外面可访问接口
封装的基本单元是类
默认返回的类的全路径和对象在内存中的地址
输出一个对象时会自动调用toString方法
toString方法
值类型: 8种基本数据类型; 枚举引用类型: 数组、类、接口
值类型变量中保存的是“值” 引用类型变量中保存的是“地址”
赋值后 值类型变量无关系 引用类型变量有关系
数据类型(值类型和引用类型)
不可更改
String类型
package 包名1.包名2;
定义包
必须位于程序第一行
包名要与文件夹一一对应
包名小写
命名机制和安全机制
命名机制:在同一个包中的类名不能相同
包
班级类
对象数组
方法名与类名相同
无返回值类型
实例化时
什么时候调用
初始化
任何类都有一个隐式不带参的构造方法;
如果类中写了构造方法,就无隐式构造方法。
在一个类中,如果方法名相同,但参数不同的现象; 与方法的返回类型无关
减少方法的记忆量
JDK中有大量的重载:System.out.println(),Scanner()
方法重载
为什么要封装:不封装数据不安全
怎样封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问而时通过该类提供的方法来实现对隐藏信息的操作和访问
面对对象的三大特征:(抽象)、封装、继承、多态
封装的基本单元:类
this.属性名:调用属性
this.方法名调用方法
this():调用构造方法,如果使用,必须是构造方法中的第一条语句
重载&构造
在本类中:静态方法只能调用静态成员
对象名.成员名(不推荐)
类名.成员名
在不同类中: 静态成员访问方式:
修饰方法
静态属性是所有实例共享
静态属性生命周期为整个应用程序
修饰属性
类文件加载在整个应用程序中也只会被加载一次
非静态块在实例化之前被执行
静态块在整个应用程序中被执行一次
应用
静态块和非静态块
static(静态的)
将构造方法私有化
声明一个静态本类的对象
提供公共静态的方法,获取本类实例
步骤
普通类是多例模式
单例模式 (设计模式)
static&单例模式
如果两个类存在is(是)的关系那么就两个类就允许存在继承关系
父类中放的是共有的特征或者行为
父类(parentClass)也叫超类(superClass)也叫基类(baseClass)
父类
子类中放的是独有的特征或者行为
子类(subClass)也叫派生类(deriveClass)
子类
父类中公开的方法或者属性子类都可以无条件拿到(继承到)
父类与子类
少写一些共有的代码
提供另外一种形式的分类
继承的好处
子类 extends 父类
语法
子类可以直接拿到父类的公有的但是父类不能拿子类的
继承的单方向一个类只允许有一个父类继承也是单继承
当子类存在与父类相同的方法现象
可以使用@Override注解检查重写是否成功
重写有关的是:方法名称,参数,返回值类型
重写
super.属性可以显示调用父类属性
super.方法可以显示调用父类方法
super不是父类的地址(引用)它仅仅是一个关键字
super()表示调用父类的构造它也只能放在构造方法的第一行
切记
super
this是一个当前对象的地址(引用)
调用属性:this.属性
调用方法:this.方法()
调用构造方法:this()调用自己本类的构造
对于继承关系的构造方法,一定是先调用父类的再调用子类的
注意
super 调用父类的东西 可以调用父类的构造函数
子类在实例化的时候 会先调用父类的构造函数
补充
修饰关键字:abstract
抽象类不能被实例化
父类中实现不了
具有强制性
为什么要使用抽象方法
抽象类与抽象方法
此变量也称为符号常量
final(最终的)
关键字
设置断点
debug运行程序
F5 单步跳入
F6 单步跳出
单步运行
理解循环
观察变量的值
如何进行程序调试
程序调试
子类构造方法中的第一句有隐式的super()调用父类不带参的构造方法
子类构造方法
重写&抽象
为什么有使用多态
编写父类
实现多态
子类对象替换父类
里氏替换原则
多态
判断是否是某个类的实例
instanceof
万事万物皆对象
对象有自己的特征和行为
相似对象抽象为类(属性和方法)
以类为模版创建有相同属性的方法的对象
对象名.成员名
成员访问方式
private
默认(友好的)
protected
public
访问修饰符
this.成员名
this() 调用构造方法
使用方式
在什么情况小使用
定义方法中的参数
形参和实参
将实参的值依次赋值给形参
调用方法时
实参和形参一一对应
方法的参数
每个类都有一个隐式的不带参的构造方法
调用方式
重载
复习
final&多态
extends
实现
子类继承父类的成员
私有成员
不能被继承的成员
子类构造方法第一句有一个隐式的super()调用父类不带参的构造方法
初始化父类属性
调用父类的构造方法
初始化子类属性
调用子类的构造方法
子类构造方法初始值过程
通过setXX方法
通过构造方法
为属性赋值
子类存在与父类相同的方法现象
复习&作业讲解
关键字:interface
public interface 接口名
如果一个类要实现这些功能
接口与抽象类的区别
接口不可以被实例化 (常作为类型使用)
接口中的方法都是公共的抽象方法
实现类必须实现接口的所有方法 (抽象类除外)
实现类可以实现多个接口 (Java中的多继承)
必须有初始值
接口中的属性默认为公共的静态的最终的属性 (符号常量)
接口的特点
接口表示一种能力
接口弥补单继承的不足
接口是什么
常量一定是全大写
接口
编写源程序.java
编译.class
运行
开发Java程序的三个步骤
程序运行过程中可能发生的错误;可能导致应用程序终止
异常
使用if排除可能发生异常的情况
if
监控可能发生异常的代码
try块
捕获异常:声明类型是抛出异常对象类型或它的父类类型;Exception是所有异常类的父类
处理异常:printStackTrace()是异常中的打印异常信息
捕获异常、处理异常
如果异常类的类型时抛给异常对象的类型或它的父类类型
catch块中声明异常类类型
catch块
Exception:异常层次结构的根类
ArrayIndexOutOfBoundsExseption:数组下标越界
NullPointerException:尝试访问null对象成员
ClassNotFoundException:不能加载所需的类
InputMismatchException:欲得到数据类型与实际输入类型不匹配
IllegalArgumentException:方法接收都非法参数
ClassCastException:对象强制类型转换出错
Error异常:属于jdk或系统异常
Exception:时程序抛出的异常
Exception:分为RuntimeException(运行时异常)和RuntimeException(非运行时异常)
常见的异常类型
finally块:无论是否有异常.都会被执行;应用于释放资源
try-catch-finally块
try-catch
处理异常
异常1
目的
知道异常类型
自己项目发生异常的位置
发生异常要做的事情
NullPointerException
熟悉异常类
Error
异常类的基类
Exception
RuntimeException(运行时异常)
非运行时异常
try catch块
throws
Exception类分为
NullPointExceptin:空指针异常
ArithmeticException:算术异常
ClassCastException:类型不匹配异常
ArrayIndexOutofBoundsExcepetion:数字下标越界
NumberFormatException:数字格式异常
常见的的RuntimeExcepytion
异常类
catch声明异常类型捕获它本类或子类异常
多重catch中父类类型不能位于子类之前
多重catch
继承Exception或它的子类
自定义异常方法
应用于
自定义异常
异常2
JavaOOP
0 条评论
回复 删除
下一页