面向对象

面向对象编程---OOP

属性+方法就是一个类!!!!

面向过程:步骤化,清晰简单,第一步做什么、第二步做什么。。。。(线性思维、具体执行流程)
面向对象:分类的思维模式,适合处理复杂问题,处理需要多人协作的问题(框架)
面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据!!!

抽象:把相似的部分抽取出来

三大特性:

封装:把数据封装包装起来---”高内聚,低耦合“

属性私有,get/set

继承:子类集成父类的所有功能;extands”扩展“ ;本质是某一批类的抽象(一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子)
JAVA种只有单继承,没有多继承!!

1.super:和this进行对比

点击查看代码
super注意点:
   1.super调用父类的构造方法,必须在构造方法的第一个
   2.super必须只能出现在子类的方法或者构造方法中!
   3.super和this不能同时调用构造方法!

对比  this:
   1.代表的对象不同:
        this:本身调用者这个对象
        super:代表父类对象的应用
   2.前提:
        this:没有继承也可以使用
        super:只能在继承条件才可以使用
   3.构造方法
        this():本类的构造
        super():父类的构造!!!
#2.方法重写:
点击查看代码
重写:需要有继承关系,子类重写父类的方法!
     1.方法名必须相同
     2.参数列表必须相同
     3.修饰符:范围可以扩大,但是不能缩小   public》protected》default》private
     4.抛出的异常:范围可以被缩小,但不能扩大;  ClassNotFoundException--->Exception(大)

     重写:子类的方法和父类必须要一致;方法体不同!!!

为什么需要重写:
   1.父类的功能,子类不一定需要,或者不一定满足!需要重写
   alt+insert:override;重写
#多态:即同一方法可以根据发送对象的不同而采用多种不同的行为方式。(动态编译:类型--可扩展性) 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多
点击查看代码
多态存在的条件:
1.有继承关系
2.子类重写父类方法
3.父类引用指向子类对象


代码运行角度:先有类,后有对象,类是对象的模板。

方法名:见名知意原则+驼峰原则

非静态可以调用静态和非静态方法,静态方法智能调用静态方法

类和对象的关系


使用new关键字创建对象

点击查看代码
养成一个习惯:不要在每一个类里面都加一个main方法!
可以定义一个大的启动类或测试类!!!
一个类里面只可能包含属性和方法两种!!!!

this表示当前的类

构造器:也叫构造方法,不能有void

1.必须和类的名字相同
2.必须没有任何返回值



画图理解:

instanceof:(类型转换) 引用类型,判断一个对象是什么类型

点击查看代码
/**
 * 1.父类引用指向子类的对象
 * 2.把子类转换为父类,向上转型:不用强制转换
 * 3.把父类转换为子类,向下转型:强制转换,可能会丢失精度
 * 4.方便方法的调用,减少重复的代码,有效提升利用率!
 *
 * 抽象:封装、继承、多态
 */

![](https://img2024.cnblogs.com/blog/3312705/202503/3312705-20250328183711654-252934365.png)

static关键字:

抽象类:

点击查看代码
//abstract 抽象类:本质:是继承   extends:单继承    (接口可以多继承)
public abstract class Action {

    //约束,有人帮我们实现
    //abstract抽象方法,只有方法名字,没有方法的实现
    public abstract void doSomething();

    //特点:1.不能new这个抽象类,只能靠子类去实现它,主要是约束!
    //2.抽象类里面可以写普通方法,但抽象方法必须在抽象类中
    //抽象的抽象:约束~


    //思考:是否存在构造器?存在的意义是什么?--节省代码的开发,提高开发效率

}

接口:

普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)都有!
接口:只有规范!自己无法写方法--专业的约束!约束和实现分离:面向接口编程!!

声明类的关键字是class,声明接口的关键字是interface

点击查看代码
//抽象类 extends -单继承
//类 可以实现接口  implements 接口   ,可以继承多个;利用接口可以实现多继承
//实现了接口中的类,必须要重写接口里面的方法!
点击查看代码
作用:
   1.约束
   2.定义一些方法,让不同的人实现
   3.public abstract--方法
   4.public static final  --常量
   5.接口不能被实例化! 因为接口中没有构造方法
   6.接口可以实现多个接口,通过implements
   7.使用接口,必须要重写接口中的方法!

内部类:(重点)

就是在一个类的内部再定义一个类
种类:
1.成员内部类

2.静态内部类:加static
内部类可以访问static,但是static的内部类不能访问外部非static属性
3.局部内部类

4.匿名内部类

posted on 2025-03-28 18:41  sharline  阅读(35)  评论(0)    收藏  举报