当前位置: 首页 > news >正文

零基础吃透 Java 面向对象:类、对象、this 与 static 实战

Java 面向对象基础:类与对象

一、章节整体框架

本章共六大核心模块,由浅入深构建面向对象知识体系:

1. 面向对象概述

2. 类的定义

3. 对象的创建与使用

4. 方法重载

5. this 关键字

6. static 关键字

本章内容是后续封装、继承、多态的基础。

二、面向对象概述(OOP 思想核心)

1. 面向对象的核心定义

面向对象是一种符合人类思维习惯的编程思想。

现实世界:由不同事物组成,事物之间存在联系与交互。

程序映射:用对象映射现实事物,用对象关系描述事物联系。

2. 面向过程 vs 面向对象(关键对比)

3. 面向对象三大特征

封装、继承、多态。

本章重点围绕封装展开。

三、类与对象(基础中的基础)

1. 类的概念

类(Class):对一类事物的共同属性和行为进行抽象。

类是对象的模板、蓝图、设计图纸。

2. 对象的概念

对象(Object):类的具体实例。

一个类可以创建多个独立对象。

3. 对象创建语法

java

类名 对象名 = new 类名();

四、成员变量与局部变量(核心易错点)

1. 成员变量

定义位置:类内、方法外

有默认值:

int → 0

double → 0.0

boolean → false

引用类型 → null

作用域:整个类内有效

存储:堆内存,隶属于对象

可使用访问修饰符(public、private 等)

2. 局部变量

定义位置:方法内或代码块内

无默认值,使用前必须手动赋值

作用域:定义处 → 所在 {} 结束

存储:栈内存

不能使用访问修饰符

3. 变量同名规则(重点)

成员变量与局部变量允许同名。

方法内遵循就近原则,优先访问局部变量。

若需访问成员变量,使用 this.变量名 。

4. 局部变量作用域规则

嵌套作用域:不允许定义同名局部变量(会报错)

互不嵌套作用域:可以定义同名变量(相互独立)

五、成员方法(类的行为与功能)

1. 成员方法概念

成员方法描述类的行为、操作、功能,是可复用的逻辑模块。

2. 方法标准语法

java

[修饰符] 返回值类型 方法名(参数列表) {

// 方法体

[return 返回值;]

}

3. 方法五要素

1. 修饰符(访问权限)

2. 返回值类型(void 表示无返回值)

3. 方法名(小驼峰,见名知意)

4. 参数列表(输入数据)

5. 方法体(功能实现)

4. return 语句

有返回值: return 结果;

无返回值: return; (用于提前结束方法)

5. 流程控制关键字区别

break :跳出循环 / switch

continue :跳过本次循环,进入下一次

return :直接结束整个方法

6. 方法形参规则

如果方法需要的数据已经是成员变量,形参列表可以为空,直接访问成员变量即可。

六、方法重载(重载规则详解)

1. 方法重载定义

在同一个类中,方法名相同,参数列表不同。

2. 参数列表不同指

参数个数不同

参数类型不同

参数顺序不同(类型不同时)

3. 注意事项

返回值不同不构成重载

重载是为了统一功能命名,提高代码可读性

七、访问控制修饰符(封装的核心)

Java 提供四种访问权限:

private < default < protected < public

权限范围表

使用习惯

成员变量通常设为 private

对外提供 public get/set 方法

工具方法用 default/protected/public 按需设置

八、this 关键字(当前对象引用)

1. 作用

代表当前对象自身

2. 三种主要用法

1. 区分成员变量与局部变量同名

java

this.name = name;

2. 调用本类其他方法

java

this.方法名();

3. 调用本类构造方法(必须在第一行)

java

this(参数);

九、static 关键字(类级成员)

1. static 含义

被 static 修饰的成员属于类,不属于某个对象。

2. 静态变量

所有对象共享一份数据

访问方式: 类名.静态变量

3. 静态方法

可通过 类名.方法名() 直接调用

不能直接访问非静态成员(非静态属于对象)

静态方法不能使用 this

4. 静态代码块

在类加载时执行一次

常用于初始化静态资源

十、构造方法(对象初始化)

1. 定义规则

方法名与类名完全相同

没有返回值类型(连 void 都不写)

2. 作用

创建对象时初始化成员变量。

3. 特点

若不写,编译器自动生成无参构造

支持重载

十一、封装思想(OOP 核心体现)

1. 封装目的

隐藏内部数据,对外提供必要接口。

2. 封装实现方式

成员变量用 private

对外提供 public get/set 方法

3. 优势

数据安全

可维护性高

降低耦合

十二、完整代码示例(来自多轮对话合并择优)

1. 类的定义与对象创建

java

public class Person {

// 成员变量

String name;

int age;

// 方法

public void introduce() {

System.out.println("姓名:" + name + ",年龄:" + age);

}

}

2. 带参数方法

java

public void study(String course) {

System.out.println(name + "正在学习:" + course);

}

3. 带返回值方法

java

public int add(int a, int b) {

return a + b;

}

4. 综合实战示例

java

public class Student {

String name;

int score;

public void setInfo(String n, int s) {

name = n;

score = s;

}

public char getLevel() {

if (score >= 90) return 'A';

else if (score >= 80) return 'B';

else return 'C';

}

}

十三、学习建议

1. 理解“类是模板,对象是实例”的核心关系。

2. 熟练写类、写成员变量、写成员方法。

3. 掌握 new 创建对象并调用成员。

4. 搞懂 this 的三种使用场景。

5. 分清 static 成员与实例成员的调用方式。

6. 本章是封装、继承、多态的基础,务必打牢。

十四、最终完整知识体系图(本章整体逻辑)

面向对象思想 → 类的抽象 → 对象的实例 → 成员变量与方法 → 访问控制 → 封装 → this & static → 后续继承与多态

http://www.jsqmd.com/news/767830/

相关文章:

  • 硬件设计避坑:PMOS缓启动电路关断慢?实测教你优化栅极泄放回路(含仿真文件)
  • Banana Pi BPI-Leaf-S3开发板硬件解析与AI应用开发
  • NS模拟器管理困境的终结者:NsEmuTools如何重塑你的游戏体验
  • 观察者模式是行为型设计模式的一种,其核心思想是定义对象间的一对多依赖关系
  • PE-bear:免费PE文件分析神器,让Windows逆向工程变得简单快速
  • 从0到1掌握反反爬:IP封禁与UA检测的底层原理及工业级突破方案
  • 打破数据黑盒依赖困境,镜像视界开创可信孪生时代
  • 别再为调试器发愁了!手把手教你用OpenOCD搞定J-Link、ST-Link和FTDI
  • 千问 LeetCode 2122.还原原数组 public int[] recoverArray(int[] nums)
  • 移植代码后LED灯都不闪了?可能是VTOR向量表地址在捣鬼(附STM32CubeIDE与Keil排查步骤)
  • Ising机与Bounce-Bind机制在组合优化中的应用
  • 构建可移植开发环境:配置仓库与自动化部署实践
  • 机械操作耗尽精力?dothething:一款全自主本地 AI 代理,替你接管系统控制与网络任务
  • RTX 3050 + Win11实测:Python 3.10环境下,用pip搞定TensorFlow-GPU 2.10.1的完整避坑指南
  • OpencvSharp 算子学习教案之 - Cv2.GetStructuringElement 重载1
  • STM32F103C8T6硬件SPI驱动W25Q64 Flash全流程(附完整工程代码)
  • C#基础(持续更新中)
  • Python初学者项目练习9--对简单列表元素排序
  • 解决ZYNQ裸机网络扩展难题:为LWIP库添加自定义PHY驱动与SDK配置界面
  • Windows系统光标深度替换:INF方案实现macOS指针移植与优化
  • AI编码助手统一配置工具agent-dotfiles:告别重复配置,实现规则与技能一键同步
  • BrowserClaw:基于Puppeteer与Playwright的浏览器自动化与数据抓取实践
  • AI工具搭建自动化视频生成图像缩放
  • ChatGPT文档格式化指令:打造Google Docs无缝协作的AI写作规范
  • GRADFILTERING:基于梯度信噪比的指令调优数据筛选方法
  • 别再死记硬背async/await了!用Playwright+Python写自动化脚本,这3个坑我帮你踩过了
  • 千问 LeetCode 2127.参加会议的最多员工数 public int maximumInvitations(int[] favorite)
  • 解释器模式是行为型设计模式的一种,其核心思想是给定一个语言,定义它的文法的一种表示
  • STM32G431RBT6的HAL库避坑指南:蓝桥杯嵌入式那些CubeMX没告诉你的细节
  • 构建本地化音视频转录分析平台:Whisper+Ollama+Meilisearch实战