【JAVA基础01】——类和对象
类和对象一、基本概念1. 对象Object类的一个实例包含状态和行为状态变量属性行为方法操作2. 类Class创建对象的模板描述一类对象的行为和状态二、类的组成1. 变量Variable变量类型声明位置生命周期特点局部变量方法内部方法调用时创建结束后销毁短期使用成员变量类中方法外随对象创建而创建对象的个性属性如姓名吴彦祖类变量类中方法外带static类加载时创建所有对象共有属性2. 方法Method方法即函数描述对象的行为、功能和业务逻辑。方法的结构返回值类型 方法名(传参类型 参数名) { // 方法体 }返回值类型无返回值void基本类型int、char、boolean等引用类型String、自定义类、数组传参类型有参数方法接收外部数据无参数方法不接收外部数据方法体内容定义变量、赋值判断、循环调用其他方法嵌套打印、计算逻辑返回值非空类型return xxx3. 构造方法Constructor创建对象时用于初始化对象属性一个类可以有多个构造方法方法重载Java 会提供默认的无参构造方法构造方法的规则要素要求返回类型不写写void也不行方法名必须与类名一致传参类型根据需要初始化哪些属性方法体给对象赋值this.name xxx构造方法可以做的事给对象属性赋值this.name xxx调用本类/父类的其他构造方法注意只做初始化不写业务逻辑4. 内部类Inner Class在类里面嵌套另一个类成员内部类在类里面方法外面静态内部类使用static修饰的内部类三、代码示例示例 1基础类定义publicclassDog{Stringbreed;// 品种intsize;// 大小Stringcolour;// 颜色intage;// 年龄voideat(){}voidrun(){}voidsleep(){}voidname(){}}示例 2构造方法与普通方法publicclassStudent{// 成员变量 privateStringname;privateintage;// 1. 构造方法 // 无参构造手动编写覆盖默认构造publicStudent(){System.out.println(无参构造执行初始化对象);}// 有参构造方法重载publicStudent(Stringname,intage){this.namename;// 初始化属性this.ageage;System.out.println(有参构造执行初始化姓名和年龄);}// 2. 普通方法 // 无返回值普通方法publicvoidstudy(){System.out.println(name 正在学习);}// 有返回值普通方法publicintgetAge(){returnage;}// 测试 publicstaticvoidmain(String[]args){// 1. 创建对象 → 自动调用构造方法不能手动调 student.Student()StudentstudentnewStudent(小明,18);// 2. 手动调用普通方法student.study();intagestudent.getAge();System.out.println(年龄age);}}运行结果有参构造执行初始化姓名和年龄 小明 正在学习 年龄18四、对象的创建与使用1. 创建对象使用new关键字创建对象包含三个步骤步骤说明示例声明声明对象名称和类型Dog myDog;实例化使用new创建对象new Dog();初始化调用构造方法初始化自动执行构造方法完整示例// 声明 实例化 初始化PuppymyPuppynewPuppy(Tommy);2. 访问成员变量和方法通过已创建的对象来访问/* 实例化对象 */ObjectreferenceVariablenewConstructor();/* 访问类中的变量 */referenceVariable.variableName;/* 访问类中的方法 */referenceVariable.methodName();3. 完整示例publicclassPuppy{privateintage;privateStringname;// 构造器publicPuppy(Stringname){this.namename;System.out.println(小狗的名字是 : name);}// 设置 age 的值publicvoidsetAge(intage){this.ageage;}// 获取 age 的值publicintgetAge(){returnage;}// 获取 name 的值publicStringgetName(){returnname;}// 主方法publicstaticvoidmain(String[]args){// 创建对象PuppymyPuppynewPuppy(Tommy);// 通过方法来设定 agemyPuppy.setAge(2);// 调用另一个方法获取 ageintagemyPuppy.getAge();System.out.println(小狗的年龄为 : age);// 也可以直接访问成员变量通过 getter 方法System.out.println(变量值 : myPuppy.getAge());}}五、源文件与包1. 源文件声明规则当一个源文件中定义多个类还包含import语句和package语句时规则说明public 类限制一个源文件中只能有一个public类非 public 类一个源文件可以有多个非 public 类文件名源文件的名称必须和public类名一致package 语句如果类在某个包中package语句应在源文件首行import 语句应放在package语句和类定义之间没有package时放在最前面作用范围import和package语句对源文件中所有类都生效2. Java 包Package包的本质是文件夹主要对类和接口进行分类管理一个项目中可能包含成百上千个类3. import 语句用于引入外部包的类或接口六、完整实战示例在该例子中我们创建两个类Employee和EmployeeTest。Employee.javaimportjava.io.*;publicclassEmployee{privateStringname;privateintage;privateStringdesignation;privatedoublesalary;// Employee 类的构造器publicEmployee(Stringname){this.namename;}// 设置 age 的值publicvoidsetAge(intage){this.ageage;}// 获取 age 的值publicintgetAge(){returnage;}// 设置 designation 的值publicvoidsetDesignation(Stringdesignation){this.designationdesignation;}// 获取 designation 的值publicStringgetDesignation(){returndesignation;}// 设置 salary 的值publicvoidsetSalary(doublesalary){this.salarysalary;}// 获取 salary 的值publicdoublegetSalary(){returnsalary;}// 打印信息publicvoidprintEmployee(){System.out.println(this);}// 重写 toString 方法OverridepublicStringtoString(){return名字: name\n年龄: age\n职位: designation\n薪水: salary;}}EmployeeTest.javaimportjava.io.*;publicclassEmployeeTest{publicstaticvoidmain(String[]args){// 使用构造器创建两个对象EmployeeempOnenewEmployee(RUNOOB1);EmployeeempTwonewEmployee(RUNOOB2);// 调用这两个对象的成员方法empOne.setAge(26);empOne.setDesignation(高级程序员);empOne.setSalary(1000);empOne.printEmployee();empTwo.setAge(21);empTwo.setDesignation(菜鸟程序员);empTwo.setSalary(500);empTwo.printEmployee();}}

相关新闻

基于RF随机森林机器学习算法的回归预测模型MATLAB代码 基于RF随机森林机器学习算法的回归预测模型MATLAB代码实现了一个回归任务的决策树集成模型。

基于RF随机森林机器学习算法的回归预测模型MATLAB代码 基于RF随机森林机器学习算法的回归预测模型MATLAB代码实现了一个回归任务的决策树集成模型。

基于RF随机森林机器学习算法的回归预测模型MATLAB代码 基于RF随机森林机器学习算法的回归预测模型MATLAB代码实现了一个回归任务的决策树集成模型。 首先从Excel文件中导入数据集,并将数据划分为训练集和测试集。然后,对数据进行归一化处理并转置以适应模…

2026/7/17 4:15:00 阅读更多 →
网络安全是黄金赛道吗?2026年行业真相:缺口480万,薪资24万,小白入行指南

网络安全是黄金赛道吗?2026年行业真相:缺口480万,薪资24万,小白入行指南

收藏必看:网络安全是黄金赛道吗?2026年行业真相:缺口480万,薪资24万,小白入行指南 网络安全行业人才缺口高达480万,中国供不应求。AI催生新岗位但传统岗位需求下降,安全运营类岗位需求最高&…

2026/7/8 17:07:34 阅读更多 →
北京信号灯厂家哪家值得信赖

北京信号灯厂家哪家值得信赖

大家好,今天咱们聊聊北京的信号灯厂家。在北京这样一座大城市,交通信号灯的质量和稳定性直接关系到市民的出行安全和效率。那么,到底哪家信号灯厂家值得信赖呢?我们一起来看看。一、赛诺杰科技:智能交通解决方案的领跑…

2026/7/13 1:54:38 阅读更多 →

最新新闻

CPU-Z 专业的硬件参数检测工具!最新版本!新机验机,硬件排查首选

CPU-Z 专业的硬件参数检测工具!最新版本!新机验机,硬件排查首选

CPU-Z是一款轻量、专业、免费的硬件检测工具,无需复杂安装步骤,免安装打开就能用,新机验机、硬件排查,用它就对了。 CPU型号、代号、核心线程数、主频、倍频、缓存信息、主板品牌与芯片组、内存容量、频率、时序、显卡基础参数、…

2026/7/17 4:16:03 阅读更多 →
Ubuntu 18.04安装OneDrive的解决方案与升级建议

Ubuntu 18.04安装OneDrive的解决方案与升级建议

1. Ubuntu 18.04 安装 OneDrive 的现状与挑战Ubuntu 18.04(代号Bionic Beaver)作为一款曾经广泛使用的LTS版本,如今已经进入生命周期的终点。根据官方文档和社区支持情况,这个版本不再获得安全更新和软件维护。这意味着在Ubuntu 1…

2026/7/17 4:16:03 阅读更多 →
CDD文件制作指南:基于CANdelaStudio的汽车诊断配置实践

CDD文件制作指南:基于CANdelaStudio的汽车诊断配置实践

这次我们来看CDD文件制作这个主题。CDD文件是汽车电子诊断领域的核心配置文件,全称是CANdela Diagnostic Description,用于定义车辆ECU的诊断能力。对于从事汽车诊断开发、测试和售后服务的工程师来说,掌握CDD文件制作是必备技能。CDD文件最关…

2026/7/17 4:14:02 阅读更多 →
AI编程工具的设计原罪与重构:从补全器到开发协作者

AI编程工具的设计原罪与重构:从补全器到开发协作者

1. 这不是一篇设计批评,而是一份AI工具的“解剖报告”最近在开发者和产品圈里疯传的那篇标题带火药味的文章——《Cursor 首席设计师一篇长文,把所有 AI 工具的设计逻辑都得罪了》——我第一时间通读了三遍,又拉出原文逐段对照 Cursor 当前 v…

2026/7/17 4:12:02 阅读更多 →
Linux系统管理与VMware虚拟机配置实战指南

Linux系统管理与VMware虚拟机配置实战指南

1. Linux系统概述与核心应用场景Linux作为开源操作系统的代表,已经渗透到现代计算的各个领域。我第一次接触Linux是在2008年搭建Web服务器时,当时就被其稳定性和灵活性所吸引。与Windows不同,Linux采用模块化设计,内核仅提供基础功…

2026/7/17 4:10:02 阅读更多 →
抖音批量下载神器:5分钟配置,免费无水印下载完整指南

抖音批量下载神器:5分钟配置,免费无水印下载完整指南

抖音批量下载神器:5分钟配置,免费无水印下载完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…

2026/7/17 4:06:00 阅读更多 →

日新闻

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网,核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验,企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明,以及更换服务…

2026/7/17 0:02:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中,卡片翻转动画是最受欢迎的交互动效之一,它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面(CourseHomePage.ets)中,就…

2026/7/17 0:02:10 阅读更多 →
2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

现在很多用户都需要一款能适配多场景的键盘,既能满足交流码字的需求,又能应对居家电竞的性能需求,最好还得有点小颜值。而大多键盘都只能兼顾其中一两个场景。这次我实测了IQUNIX EV63三款配色(银武士、黑武士、紫罗兰&#xff09…

2026/7/17 0:04:10 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/17 3:22:28 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/17 3:01:28 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/16 23:40:37 阅读更多 →

月新闻