当前位置: 首页 > 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.jsqmd.com/news/861503/

相关文章:

  • RX600系列MCU产品线全解析:从内核架构到电机控制与HMI应用实战
  • 告别网盘限速:LinkSwift网盘直链下载助手终极使用指南
  • StarRocks Catalog中的JDBC catalog实操(超详细)
  • 义乌沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • Voicebox 深度指南:开源本地 AI 语音工作室完整评测与上手教程
  • 2026年精益管理咨询机构可靠度TOP10技术解析:目视化规划/目视化设计/精益化咨询/精益咨询/精益生产咨询/选择指南 - 优质品牌商家
  • 阿盖洛印相不是风格,是光学契约:基于菲涅尔衍射模型推导出的MJ光照权重矩阵(含Python自动校准脚本)
  • 桐乡沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 3个场景+4大优势:自动鼠标移动器让你的Mac永远保持活跃
  • 龙城秘境 - 传奇觉醒手游官网下载:龙城秘境最新官方下载渠道
  • 多账号矩阵系统的反关联博弈:平台在找你的“蛛丝马迹“,你的架构能扛住几轮?
  • 合肥瓷砖批发TOP5评测|一站式瓷砖采购体验全解析 - 行业深度观察C
  • 短视频矩阵系统的内容瀑布流架构:当1000条视频同时涌入流量池,你的系统怎么排?
  • 2026硬核装备:5大门头招牌厂家口碑+采购指南
  • svn 迁移至 git 记录
  • 2026年现阶段,车间用扫地机直销工厂深度解析与Shiwosi史沃斯推荐 - 2026年企业推荐榜
  • RK3576开发板NPU部署PP-YOLOE:实时目标检测全流程实战
  • 2026年乐山必吃甜皮鸭:本地人在哪买甜皮鸭/本地人必买甜皮鸭在哪条街/本地人爱吃的甜皮鸭/正宗乐山甜皮鸭品牌/选择指南 - 优质品牌商家
  • 2026年二手钢结构材料选型指南:二手钢结构屋面梁、二手钢结构工程、二手钢结构库房出售、二手钢结构拆除、二手钢结构构件选择指南 - 优质品牌商家
  • 4款AI视频翻译工具实测,短剧出海多角色配音效果对比
  • 【YOLO系列输入处理与数据工程】数据流水线设计:从磁盘到GPU的零拷贝路径
  • 腾讯云负载均衡如何上传 PEM 格式证书并绑定监听器
  • Kubernetes网络性能优化:提升集群网络效率
  • 龙港沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 万店精灵功能全景解读:从店铺管理到批量上货,一篇看懂
  • BlueStacks installation guide
  • 2026年第二季度,黑龙江企业如何甄选可靠的水性钢结构防火涂料供应商 - 2026年企业推荐榜
  • 成都武侯区奢侈品回收机构实测排行:宇时奢品联系/成都武侯区奢侈品回收/成都附近奢侈品回收/成都靠谱的二手名表店/选择指南 - 优质品牌商家
  • 参数扫描结果的导出
  • 2026年期货价差与多腿策略:主流工具组合合约管理能力观察