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

Java 第四章 类和对象设计

一、面向对象编程(OOP)基础

1. 核心思想:将现实世界的事物抽象为“对象”,对象包含属性(数据)和行为(方法),通过对象间的协作完成复杂任务。

2. 三大基本特征:

封装:将数据和操作数据的方法绑定在一起,隐藏内部实现细节,仅对外提供访问接口(如录音机的按钮控制)。

继承:子类继承父类的属性和方法,实现代码复用,形成类的层次关系(如“人→学生/工人/教师”)。

多态:同一方法在不同对象中有不同实现。

二、类与对象的基础定义

1. 类的定义

语法: [类修饰符] class 类名 [extends 父类] [implements 接口] { 类体 }

类体包含:

成员变量(属性):描述对象的状态(如圆的半径、坐标)。

成员方法(行为):描述对象的功能(如圆的面积、周长计算)。

2. 对象的创建与使用

实例化对象:通过 new 关键字创建对象,语法: 类名 对象名 = new 类名([参数]);

对象的引用:通过 . 运算符访问成员变量和方法:

对象名.成员变量名;

对象名.成员方法名([实参列表]);

对象比较: == 比较的是对象的内存地址,判断值是否相等需用 equals() 方法。

三、核心方法详解

1. 构造方法

特点:方法名与类名相同,无返回值,对象实例化时自动调用,用于初始化对象属性。

规则:

若未自定义构造方法,系统会自动生成一个无参空构造方法。

支持重载(方法名相同,参数列表不同),实现不同方式的初始化。

2. 方法重载

定义:同一个类中,多个方法方法名相同,但参数列表(数量、类型、顺序)不同。

作用:为相似功能的方法提供统一调用方式(如 sum(int a, int b) 和 sum(int a, int b, int c) )。

注意:返回值类型不参与重载的区分。

3. main()方法

Java程序的执行入口,格式固定: public static void main(String[] args) 。

args 用于接收命令行参数,参数按顺序存入数组,如 java MainTest I Love China 会将 "I" "Love" "China" 存入 args[0] ~ args[2] 。

四、实例变量 vs 静态变量(static)

特性 - 实例变量(非static)- 静态变量(static)

归属 - 属于对象,每个对象有独立副本 - 属于类,所有对象共享同一副本

访问方式 - 对象名.变量名 - 类名.变量名 或 对象名.变量名

生命周期 - 随对象创建而存在,对象销毁而消失 - 随类加载而初始化,程序结束才销毁

静态方法:同样属于类,可直接通过类名调用,方法中不能直接访问非静态成员变量/方法。

五、方法调用的参数传递

1. 值传递(基本数据类型):实参的值复制给形参,形参的修改不影响实参。

2. 引用传递(引用数据类型,如数组、对象):传递的是对象的内存地址,形参和实参指向同一对象,形参的修改会直接影响实参。

六、包(package)与模块(Java 9+)

1. 包的定义与引入

定义: package 包名1.包名2; (必须写在源文件第一行),用于管理类,避免命名冲突。

引入: import 包名1.包名2.类名; 或 import 包名1.包名2.*; (引入包中所有类)。

2. 模块(Module)

Java 9引入,通过 module-info.java 定义模块,实现模块间的依赖和导出控制,如 exports 包名; 声明可被其他模块访问的包, requires 模块名; 声明依赖的模块。

七、类及成员修饰符(访问权限)

修饰符 - 同一类 - 同一包 - 不同包子类 - 不同包非子类

private - ✅ - ❌ - ❌ - ❌

default(无修饰符)- ✅ - ✅ - ❌ - ❌

protected ✅ - ✅ - ✅ - ❌

public - ✅ - ✅ - ✅ - ✅

final修饰符:

修饰类:该类为“最终类”,不能被继承。

修饰方法:该方法不能被子类重写。

修饰变量:该变量为常量,初始化后不能修改。

八、实用案例与工具

1. 冒泡排序:通过嵌套循环比较并交换相邻元素,实现数组排序。

2. 对象计数器:利用静态变量记录对象创建和销毁的数量。

3. Scanner类:用于从控制台获取用户输入,需导入 java.util.Scanner 包。

4. 垃圾回收:Java自动回收无用对象的内存,也可通过 System.gc() 手动触发。

http://www.zskr.cn/news/1341958.html

相关文章:

  • 树莓派警示灯服务开发:从GPIO控制到RESTful API的完整实现
  • 树莓派驱动WS2812B全彩LED灯带:从硬件连接到Web控制全攻略
  • 3个理由告诉你:为什么Notepad2-mod是你开启开源贡献的最佳起点
  • VM振弦采集模块精度实测:从标准信号源到误差分析全流程
  • RK3576开发板NPU部署PP-YOLOE:实时目标检测全流程实战
  • 振弦采集模块精度检测实战:从原理到环境测试全解析
  • 4款AI视频翻译工具实测,短剧出海多角色配音效果对比
  • 龙港沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • Linux ln 软硬链接详解——底层原理+生产实战+彻底区分(零踩坑)
  • 2026年第二季度,黑龙江企业如何甄选可靠的水性钢结构防火涂料供应商 - 2026年企业推荐榜
  • 成都武侯区奢侈品回收机构实测排行:宇时奢品联系/成都武侯区奢侈品回收/成都附近奢侈品回收/成都靠谱的二手名表店/选择指南 - 优质品牌商家
  • FRED应用:真实玻片设置
  • 2026年最新揭晓!专业广东高定品牌厂家排名大揭秘
  • 2025-2026年护眼灯品牌推荐:十大评测专业排行防蓝光伤眼价格特点
  • GOM三维扫描在GDT分析中的应用:几何公差评价为何越来越依赖全场数据
  • 双十一话务峰值8倍冲击_智能语音机器人扛峰技术方案
  • 【限时技术解禁】ElevenLabs粤语语音模型权重轻量化方案:模型体积压缩68%,推理速度提升3.2倍(附PyTorch实测代码)
  • 2026年汽车吊保险服务商排行:起重机保险/高空作业设备保险/20吨吊车保险/35吨吊车保险/55吨吊车保险/80吨吊车保险/选择指南 - 优质品牌商家
  • 一文读懂Kafka中的“消费”(对标MySQL数据库)
  • 2026年Q2办公净水器选型指南:成都工厂净水器/成都直饮水净水设备/成都直饮水品牌/成都直饮水工程/成都直饮水机/选择指南 - 优质品牌商家
  • 海宁沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 商业设计复盘|法式肉制品包装升级逻辑:如何用视觉解决进口品牌本土化痛点
  • 健康系列: 你缺乏维生素B2吗?什么时候需要使用维生素B2补充剂?
  • 画图比写论文还难?这款毕设神器直接救大命
  • LangGraph与智能体:当AI学会了“思考图谱”,离真正干活还有多远?
  • 阜阳沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • Claude Code 10 个必学斜杠命令详解
  • 地球的定位密码——经纬度
  • 【限时开放】ElevenLabs波斯文语音调试秘钥包(含Persian SSML扩展标签库、RTL音频波形对齐工具、实时音素诊断CLI):仅支持至2024年Q3 API v2退役前
  • 2026年5月采购指南:四川大跨距桥架高性价比工厂推荐 - 2026年企业推荐榜