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

Java初学者之———类与方法

欢迎来到Java的世界!作为初学者,理解“类”与“方法”是迈进面向对象编程(OOP)大门的第一步。


Java核心技术笔记:类(Class)与方法(Method)

1. 初识面向对象(OOP)

在Java中,一切皆对象。我们可以把想象成汽车的设计图纸,而对象就是根据这张图纸制造出来的真实汽车

  • 类(Class):是抽象的、具有相同属性和行为的对象的集合(如:人类、汽车类)。
  • 对象(Object):是类的具体实例(如:你、我、门口那辆红色的特斯拉)。
  • 方法(Method):是对象能够执行的行为或功能(如:汽车可以“行驶”,人可以“吃饭”)。

2. 类的五大组成要素(骨架)

一个标准的Java类通常由以下五部分组成(按书写顺序):

组成部分作用是否必须有
包名(Package)用于分类管理类,类似于文件的文件夹。❌ 非必须
导入语句(Import)引入其他包中的类。❌ 非必须
访问修饰符控制访问权限(公开/私有等)。✅ 必须
类名/接口名类的唯一标识,遵循大驼峰命名法(如Student)。✅ 必须
类体{ }花括号里存放属性和方法。✅ 必须

3. 类的定义与属性(字段)

语法格式:

[访问修饰符]class类名{// 1. 属性(成员变量)—— 描述状态// 2. 构造方法 —— 用于创建对象// 3. 普通方法 —— 描述行为}

实战案例:学生类

packagecom.example.model;// 包名publicclassStudent{// public 公开类// ---------- 属性(成员变量) ----------// 姓名(私有化保护数据)privateStringname;// 年龄privateintage;// 学号(静态常量,属于类所有)publicstaticfinalStringSCHOOL="第一中学";// ---------- 构造方法(无参构造) ----------publicStudent(){System.out.println("调用了无参构造方法");}// ---------- 构造方法(有参构造) ----------publicStudent(Stringname,intage){this.name=name;// this关键字区分成员变量和局部变量this.age=age;}// ---------- 普通方法(行为) ----------publicvoidstudy(){System.out.println(name+" 正在努力学习Java!");}}

4. 方法(Method)详解

方法就是解决一类问题的步骤的有序组合。方法必须定义在类中,不能独立存在。

4.1 方法的完整结构(四要素)

[访问修饰符][其他修饰符]返回值类型 方法名(参数列表)[抛出异常]{// 方法体(具体的业务逻辑)return返回值;// 如果返回值类型是void,此处可省略}

4.2 方法分类(按有无static区分)

这是初学者最容易迷糊的地方,请重点看:

类型关键字调用方式适用场景
实例方法static必须先创建对象,通过对象.方法()调用。需要操作对象的成员变量(如:学生的吃饭、睡觉)。
静态方法static直接用类名调用,如Math.sqrt(9)工具类方法,不依赖对象数据(如:计算工具)。

4.3 方法重载(Overload)

同一个类中,允许存在多个方法名相同参数列表不同(个数或类型不同)的方法。

// 重载示例:加法方法publicintadd(inta,intb){returna+b;}publicdoubleadd(doublea,doubleb){returna+b;}publicintadd(inta,intb,intc){returna+b+c;}

注意:方法重载与返回值类型无关!


5. 深入理解thisstatic

  • this关键字:代表当前对象本身。常用于区分成员变量(类的属性)和局部变量(方法里的参数)。
  • static关键字
    • 修饰属性时,该属性属于(所有对象共享一份)。
    • 修饰方法时,静态方法只能访问静态成员,不能直接访问非静态成员(因为对象可能还没创建)。

6. 综合实战演练(编写学生管理系统雏形)

将以上知识点整合,写一个可运行的测试类。

// 1. 定义学生类(省略上述代码,保留核心)classStudent{privateStringname;privateintscore;publicStudent(Stringname,intscore){this.name=name;this.score=score;}// 实例方法:判断是否及格publicbooleanisPass(){returnscore>=60;}// 静态方法:打印考试规则(不依赖对象)publicstaticvoidprintRule(){System.out.println("考试规则:严禁作弊!");}}// 2. 测试类(包含main方法,这是程序的入口)publicclassTest{publicstaticvoidmain(String[]args){// 调用静态方法(类名直接调)Student.printRule();// 创建对象(实例化)StudentxiaoMing=newStudent("小明",85);// 调用实例方法(对象名调)booleanresult=xiaoMing.isPass();System.out.println("小明是否及格:"+result);}}

7. 初学者避坑指南(重点)

  1. 文件名与类名必须一致:如果类是public修饰的,Java文件名必须与类名完全一致。
  2. main方法写法固定public static void main(String[] args)是JVM入口,一字不差才能运行。
  3. 不要忘记new关键字:只有用new创建对象后,对象才会在堆内存中分配空间。
  4. 形参与实参:定义方法时的是形参(占位符),调用方法时传递的是实参(实际数据)。
  5. void不能少:如果方法没有返回值,千万不要写return 值,且返回值位置必须写void

学习建议:不要死记硬背,打开IDE(如IDEA或Eclipse),亲手敲三遍上面的学生类代码。把代码敲出Bug,然后修复Bug,这才是最有效的学习方式。加油!

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

相关文章:

  • 2026年8月揭阳市移动1000M宽带怎么选_办理时要注意哪些关键细节_ - 找卡家园
  • 5G SRS序列生成与物理资源映射:信道探测的底层原理与工程实践
  • [论文学习]Skill-MAS:面向自动多智能体系统的元技能进化
  • 2026年8月上海市松江区移动500M单宽带办理避坑实录 - 找卡家园
  • 2026年8月陕西省电信单宽带申请避坑实录 - 找卡家园
  • 2026 年现阶段,保山有实力的彩色沥青加工厂选哪家,走在城市彩色步道上,你脚下踩的居然不是普通沥青?-恒达新材料 - 企业官方推荐【认证】
  • Unity虚拟摇杆实现:UGUI事件系统与屏幕自适应全解析
  • 2026年8月揭阳市移动1000M单宽带小白避坑办理全攻略 - 找卡家园
  • 2026 年新消息:高唐正规的含活菌复合肥供货商有哪些,这玩意儿撒在田里,竟让我家烂秧田长出了饱满稻穗-宁慧大棚膜 - 企业信息推荐【官方】
  • 2026年|专业甄选外贸独立站建站服务商:深度测评与推荐报告
  • 2026年8月陕西省渭南市电信单宽带小白避坑指南 - 找卡家园
  • 2026年8月山东省威海市电信单宽带避坑指南!小白怎么选_ - 找卡家园
  • Unity RestClient HTTPS证书配置全攻略:解决跨平台网络通信安全难题
  • Python进阶:深入解析装饰器底层原理与5个高复用实战模式
  • 2026年8月上海市青浦区移动单宽带小白避坑办理全攻略 - 找卡家园
  • 2026年8月陕西省电信1000M单宽带小白避坑办理全攻略 - 找卡家园
  • GPT-5.4前瞻:200万上下文与持久化状态如何重塑AI协作范式
  • OBS Studio直播画面优化:从普通到专业的5个视觉升级技巧
  • 开源可观测性的基石:为什么 Grafana 不只是仪表盘,而是 DevOps 的神经中枢
  • 2026年8月山东省东营市电信单宽带避坑攻略 - 找卡家园
  • 2026年8月陕西省电信1000M单宽带套餐避坑全攻略 - 找卡家园
  • 国内做得好的防溃仓供应商推荐,防溃仓闸门/往复式给煤机/带式给煤机/防溃仓/矿用滚轮罐耳,防溃仓厂家怎么选择 - 品牌推荐师
  • DBSCAN密度聚类算法:从核心原理到实战调参指南
  • 2026年8月上海市青浦区移动300M单宽带避坑与办理指南 - 找卡家园
  • 从Dummy模型到真实控制:机械臂运动学与动力学全流程实战
  • 2026年8月陕西省电信1000M单宽带小白办理避坑指南 - 找卡家园
  • 塑料瓶目标检测数据集:3,000张图像 | 目标检测
  • A59P专业版:LINE IN宽电压设计与AEC参考信号源阻抗匹配分析
  • 2026年8月陕西省电信1000M单宽带避坑指南一篇说透 - 找卡家园
  • 2026年8月吉林省长春市联通融合宽带办理避坑全攻略 - 找卡家园