面向对象(含义→三大特点)

面向对象编程

面向过程 & 面向对象

面向过程:第一第二步做什么...线性思维,是和处理较为简单的问题

面向对象:分类的思维方式,适合处理复杂的问题

什么是面向对象

面向对象编程OOP

本质:以类的方式组织代码,以对象的组织(封装)数据

核心思想:抽象

三大特性:封装、继承、多态

从认识论角度,先有对象再有类。对象是具体的,类是抽象的

从代码运行角度,先有类再有对象

类与对象的关系

类:

抽象的数据类型,是对某一类事物整体描述。如动物、植物

对象:

抽象概念的具体实例

创建和初始化对象

使用new关键字

使用new创建时,除了分配内存空间,还能给创建好的对象默认初始化以及对类中构造器的调用

Student student = new Student();

构造器

类中的构造器也叫构造方法,创建对象是必须调用。使用new关键字,本质上是在调用构造器

特点:

必须和类的名字相同

必须没有返回值,也不能写void

无参构造和有参构造

public class Person{
    //无参构造
    public Person(){
        ...
    } 
    
    //有参构造:一旦定义有参构造,无参就必须显示定义
     public Person(String name){
        ...
    } 
}

快捷键:alt+insert

方法

定义

修饰符,返回类型,方法名,参数列表

已有,看前面

break和return区别

break:跳出switch,结束循环

return:结束方法

异常抛出

调用

静态方法,非静态方法

静态方法: 和类一起加载

static,类名.方法名即可调用

Student.setName();

非静态方法: 类实例化之后才存在

没有static,先实例化类(new)再调用

Student student = new Student();
student.setName();

在同一类中

非静态方法可调用非静态

静态方法不可调用非静态

形参和实参

形参:方法的参数

实参:调用方法的参数

值传递和引用传递

值传递:把值复制一份进行传递,方法内部修改不影响外部原本的值

引用传递:传递存储数据的地址,修改后原值也修改

this关键字

三大特点

封装

程序设计追求“高内聚,低耦合”

高内聚:类的内部数据操作细节自己完成,外部不能干涉

低耦合:尽暴露少量的方法给外部使用

封装(数据的隐藏):private

通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问

属性私有,get/set

提高代码的安全性,保护数据

隐藏代码的实现细节

同一接口

系统可维护性增加

继承

继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模

extends意识是“拓展“。子类是父类的拓展

Java中类只有单继承

继承是类和类之间的一种关系。除此外还有依赖、组合、聚合

继承关系的两个类,一个是子类(派生类),一个是父类(基类),使用extends关键字

子类和父类之间,意义上应该具有“is a”关系

public class person extends Person{
    ...
}

子类继承父类,就拥有父类全部public方法

Object类

在Java中,所有的类都默认继承Object

super

调用父类的构造方法,必须在构造方法第一个

super必须只能出现在子类的方法或者构造方法中

this和super不能同时调用构造方法

方法重写

重写必须有继承关系,子类重写父类的方法

参数列表必须相同

修饰符:范围可以扩大,但不能缩小

抛出的异常:范围可以缩小,不能扩大

为什么需要重写:父类功能子类不需要或者不满足

//前提 A继承B,对于两个类都存在的同名static方法

//方法的调用之和左边定义的数据类型有关
A a = new A(); 
a.test();  //引用A的test方法

B b = new A(); 
b.test();  //引用B的test方法
//在上述基础上
//若方法无static,则可在A类中Override重写test方法

当没有static时,b调用的是对象的方法。而b是用A类new的有static时,b调用了B类的方法,因为b是用b类定义的

因为静态方法是类的方法,而非静态是对象的方法

即b是A new出来的对象,因此调用了A的方法

多态

posted @ 2025-08-14 21:19  lu璐  阅读(46)  评论(0)    收藏  举报