JAVA----面向对象

一、面向对象 vs 面向过程

  • 面向过程:把问题拆成一步步流程,按顺序执行完成任务。
  • 面向对象:先找出问题中的「对象」,以对象为单位组织代码,通过对象交互解决问题,更适合复杂项目。

二、对象与类:核心关系

  • 对象:现实世界事物在程序中的映射,包含静态属性动态行为
  • :一组相同对象的模板,定义对象拥有哪些属性和方法。
  • 关系:类是模板,对象是类的实例;一个类可以创建多个对象。

三、类的三大组成:属性、方法、构造器

1. 属性(成员变量)

属性描述对象特征,定义在类内、方法外,自带默认值:

  • 整数:0
  • 浮点数:0.0
  • 字符:\\u0000
  • 布尔:false
  • 引用类型:null

成员变量 vs 局部变量

  • 位置:成员变量在类内方法外;局部变量在方法内。
  • 默认值:成员变量有默认值;局部变量必须手动赋值。
  • 作用域:成员变量全类有效;局部变量仅限当前代码块。
  • 命名冲突:同作用域局部变量不可重名;成员变量可与局部变量重名,方法内优先局部变量。

2. 成员方法

方法描述对象行为,定义在类内、方法外,不加 static方法重载:同一个类中,方法名相同、参数列表(个数 / 类型 / 顺序)不同,与返回值、修饰符无关。仅参数名不同不算重载。

3. 构造方法(构造器)

用于创建对象并初始化属性,特点:

  • 方法名与类名完全一致
  • 无返回值(连 void 都不写)
  • 支持重载
  • 创建对象时 JVM 自动调用,不能手动调用

规则:

  • 类中无构造器时,JVM 自动提供无参构造
  • 若定义了有参构造,默认无参构造会消失,建议手动保留无参构造。

四、对象创建与使用

已生成代码

五、this 关键字:两种用法

  1. this.:代表当前对象,用于区分成员变量和局部变量。
  2. this():在构造器中调用本类其他构造器,必须写在第一行,避免循环调用。

六、对象创建的三步流程

  1. 分配堆内存,属性赋默认值。
  2. 执行属性显式初始化。
  3. 执行构造方法,完成最终赋值。

七、引用与内存

  • 引用变量存储对象在堆中的首地址
  • 引用赋值是传递地址,多个引用可指向同一个对象。
  • 引用为 null 时调用属性 / 方法,会抛出空指针异常(NullPointerException)

总结

面向对象的核心是封装、以对象为单位,掌握类、对象、成员变量、方法、构造器、this 和引用,就能写出规范的 Java 类,为后续继承、多态、封装打下扎实基础。

建议初学者多写实体类,练习无参 / 有参构造、this 用法、方法重载,把基础打牢。"""

print(blog_content)

Java 面向对象入门:从思想到实战全解析

面向对象是 Java 开发的核心思想,也是后端编程必须吃透的基础。本文用通俗逻辑梳理 OOP 核心知识点,覆盖思想、类与对象、成员变量、方法、构造器、this 关键字与内存原理,帮你快速搭建面向对象知识体系。

一、面向对象与面向过程的区别

  • 面向过程:把问题拆解成线性步骤,按流程一步步执行完成需求,适合简单逻辑场景。
  • 面向对象:先提取问题中的核心对象,以对象为整体单元,通过对象间的协作完成问题解决,更适配复杂项目开发。

二、对象与类:核心基础概念

  • 对象:现实世界中的具体事物,在 Java 里的程序映射,万事万物皆可抽象为对象。
  • 对象构成:静态特征用属性表示,动态行为用方法表示。
  • :对一批共性对象的抽象描述,定义这类对象包含的属性与方法。
  • 二者关系:类是对象的模板,对象是类的实例,一个类能创建多个独立对象。

三、类的核心组成:属性、方法、构造方法

1. 属性(成员变量)

属性用来描述对象的特征,定义在类以内、方法以外,也叫成员变量。

  • 语法:数据类型 变量名; 或声明时直接赋值,不可先声明再单独赋值。
  • 默认值:整数 0、小数 0.0、字符空值、布尔 false、引用类型 null。
  • 作用范围:当前类内全局可用。
  • 命名规则:同类内属性不可重名,可与局部变量重名,方法内优先使用局部变量。

成员变量与局部变量核心区别

  • 位置:成员变量在类内方法外,局部变量在方法 / 代码块内。
  • 默认值:成员变量有默认值,局部变量无默认值,必须先赋值再使用。
  • 作用域:成员变量全类有效,局部变量仅限所在代码块。

2. 成员方法

方法描述对象的功能行为,定义在类内、其他方法之外,无需加 static

  • 语法:修饰符 返回值类型 方法名(参数列表){方法体}
  • 方法重载:同类中方法名相同,参数列表(个数、类型、顺序)不同,与返回值、修饰符无关;仅参数名不同不构成重载。
  • 重载作用:让方法调用更灵活,适配不同参数场景。

3. 构造方法(构造器)

构造方法是创建对象的特殊方法,核心作用是初始化对象属性。

  • 特点:方法名与类名完全一致、无返回值(不写 void)、支持重载、不可手动调用。
  • 调用规则:创建对象时 JVM 自动调用,一个对象仅调用一次。
  • 注意:类中无构造方法时,JVM 默认提供无参构造;定义有参构造后,默认无参构造失效,建议手动编写无参 + 有参构造。

四、对象的创建与使用

  • 创建语法:类名 对象名 = new 类名();
  • 使用方式:对象名.属性 访问 / 赋值属性,对象名.方法名(实参) 调用方法。

五、this 关键字的两种用法

  1. this.:代表当前对象,用于区分成员变量和局部变量,解决命名冲突。
  2. this():在构造方法中调用本类其他构造器,必须写在构造方法第一行,避免循环调用。

六、对象创建的完整流程

  1. 分配堆内存空间,为属性赋默认值。
  2. 执行属性显式初始化。
  3. 执行构造方法,完成最终属性赋值。

七、引用与内存机制

  • 引用:对象类型的变量,存储对象在堆内存的首地址。
  • 赋值规则:引用赋值传递地址,基本类型赋值传递数值。
  • 空指针异常:引用为 null 时,调用属性或方法会抛出NullPointerException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值