面向过程&面向对象
一、什么是面向对象
二、类与对象的关系
三、创建与初始化对象
-
NEW关键字的作用:
1.实例化初始对象 2.内存开辟一个空间 3.把等号右边开好的对象内存地址通过赋值运算符赋值给左边的对象名
-
构造器的作用:
四、内存分析
五、类与对象
#### 1.类与对象
类是一个模板:抽象,对象是一个具体的实例
#### 2.方法
定义、调用
#### 3.对象的引用
引用类型:基本类型(8种)
对象是通过引用来操作的:栈 --> 堆
#### 4.属性
属性:字段 Field 成员变量
语法:修饰符 属性类型 属性名 = 属性值
默认初始化:
数字:0、0.0
char:u0000
boolean:false
引用:null
#### 5.对象的创建和使用
- 必须使用new关键字创建对象
- 构造器 Person person = new Person();
- 对象的属性:person.name;
- 对象的方法:person.sleep();
#### 6.类
静态的属性 属性
动态的行为 方法
六、封装
-
封装的作用
1.提高程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.增加系统的可维护性
七、继承
八、Object类
- java.lang.Object
java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。
Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。
Object类是Java中唯一没有父类的类。
其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
- String toString()
当打印引用,如调用System.out.println()时,会自动调用对象的toString()方法,打印出引用所指的对象的toString()方法的返回值,因为每个类都直接或间接地继承自Object,因此每个类都有toString()方法。
public String toString()
{
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
九、方法重写
1.方法重写的原因: 父类方法的功能不满足子类的功能需求。
2.方法重写的前提: 必须要存在继承的关系。
3.方法的重写: 子父类出了同名的函数,这个我们就称作为方法的重写。
4.什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。
5.方法重写要注意的事项:
1.方法重写时, 方法名与形参列表必须一致。
2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。
3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。
4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。Exception(最坏) RuntimeException(小坏)
十、方法重载
1.方法的重载:在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载。
2.方法重载的要求
函数名要一致。
形参列表不一致(形参的个数或形参 的类型不一致)
与返回值类型无关。
十一、多态
-
解释
-
多态注意事项:
十二、抽象类
十三、接口
-
作用
十四、内部类
十五、static 静态
位置 : 成员变量 ( 属性 ) 、 方法 、 静态代码块
-
**作用 **
常驻内存 ( 在内存里单独划一块空间 ) 用来重复经常调用的时候 成员变量 : 静态变量 , 又叫类变量 , 可以直接使用类名来引用 。 类公有变量 方法 : 静态方法 , 又叫类方法 , 可以直接使用类名来引用 , 通常放通用代码 。 块 : 静态块 , 只在第一次调用构造方法前执行 。 适合放那些只要一次初始化即可的代码 final最终、终结 位置 : 类 、 变量 、 方法 类 : 太监类 、 不可继承 成员变量 : 常量 方法 : 不可重写
访问修饰符protected 可以修饰属性和方法
本类、同包、子类可以访问
访问修饰符 | 本类 | 同包 | 子类 | 其他 |
---|---|---|---|---|
private | √ | |||
默认****(friendly) | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
十六、异常
1.什么是异常
2.简单分类
3.异常体系结构
4.Error
5.Exception
6.异常处理机制
-
抛出异常
public static void main(String[] args) { Test test = new Test(); //test.test(1,1); test.test(1,0); } //假设这个方法中处理不了这个异常(throws在方法上抛出异常) public void test(int a, int b) throws ArithmeticException { if (a / b == 1) { //主动抛出异常(throw在方法里使用) throw new ArithmeticException(); //算术异常 } }
-
捕获异常
//监控区域 try { System.out.println(1 / 0); } //捕获错误 catch (Error e) { System.out.println("Error"); } //捕获异常 catch (Exception e) { System.out.println("Exception"); } catch (Throwable e) { System.out.println("Throwable"); } //善后工作 finally { System.out.println("finally"); }
-
异常处理五个关键字
7.自定义异常
8.实际应用中的经验总结
标签:异常,Java,对象,子类,方法,面向对象,父类,重写 From: https://www.cnblogs.com/ynxiyan/p/17037473.html