news 2026/2/16 15:59:46

Java类与对象关系详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java类与对象关系详解

第七章 :类与对象

类与对象的关系

对象内存分配机制

属性和注意细节

概念:属性又称成员变量、字段

如何创建对象和访问属性

1.创建对象:(1):先声明再创建Catcat;cat=newCat();(2):直接创建Catcat=newCat();2.访问属性: 对象名.属性名

方法调用机制

方法注意细节

注意细节:(1):返回类型可以为任何类型,包含基本类型和引用类型(数组、对象)(2):如果方法要求有返回数据类型,则方法体中最后的执行语句必须为return值,且返回值类型与return的值类型一致或兼容(3):方法不能嵌套定义

方法传参机制

基本数据类型传参机制

结论:基本数据类型,传递的是值(值拷贝),形参的任何改变不影响实参
引用数据类型传参机制

结论:引用类型,传递的是地址(传递也是值,但值是地址),可以通过形参影响实参

递归

概念:方法自己调用自己,每次调用时传入不同的变量 过程:(1):递归(2):回溯

递归练习

打印
阶乘
桃子问题
斐波那契数列
importjava.util.Scanner;publicclassfibonaqi{publicstaticvoidmain(String[]args){/* 需求:斐波那契数列 *///代码实现System.out.println("请输入想要知道的斐波那契数列的第多少项:");Scannerreader=newScanner(System.in);intnum=reader.nextInt();doublesum=fibonaqi1(num);System.out.println("斐波那契数列第"+num+"项的值为:"+sum);}staticdoublefibonaqi1(intnum){if(num==1|num==2){return1;}else{returnfibonaqi1(num-1)+fibonaqi1(num-2);}}}
迷宫问题
汉诺塔
publicclasshannuota{publicstaticvoidmain(String[]args){/* 需求:汉诺塔 *///代码实现intnum=5;chara='A',b='B',c='C';hannuota1(5,a,b,c);}staticvoidhannuota1(intnum,chara,charb,charc){if(num==1){System.out.println(a+"-->"+b);}else{hannuota1(num-1,a,c,b);System.out.println(a+"-->"+b);hannuota1(num-1,b,a,c);}}}
八皇后

方法重载以及细节

同名不同参(参数类型、个数、顺序不同)注意细节:(1):方法名相同(2):形参不同(3):返回类型无要求

可变参数以及细节

java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。(通过可变参数实现)简单来说:形参可以传入0个或多个,以数组形式存在 语法: 访问修饰符 返回类型 方法名(数据类型...形参名){}注意细节:(1):可变参数的实参可以为0个或任意多个(2):可变参数的实参可以为数组(3):可变参数的本质就是数组(4):可变参数可以和普通类型的参数一起放在形参列表,但需保证可变参数在最后(5):一个形参列表中只能出现一个可变参数

作用域以及细节

作用域的分类:(1):全局变量:属性,作用域为整个类体,声明周期较长(2):局部变量:除了属性之外的其他变量,作用域为定义它的代码块,生命周期较短 注意细节:(1):全局变量(属性)可以不赋值,有默认值 局部变量必须赋值后使用,没有默认值(2):属性和局部变量可以重名,访问时遵循就近原则(3):属性可以加修饰符 局部变量不可以加修饰符

构造器以及细节

语法:[修饰符]方法名(形参列表){方法体;}注意细节:(1):修饰符可以是默认,或者publicprotectedprivate(2):构造器没有返回值(3):方法名和类名相同(4):调用由系统自动完成(5):构造器重载(6):有则无,无则有

对象创建流程分析

this关键字以及细节

简单来说:哪个对象调用,this就指向哪个对象 功能:访问本类属性、方法、构造器 用于区分当前类的属性和局部变量

本章作业

1.编写类A01,定义方法max,实现求某个double数组的最大值,并返回

publicclasszuoye1{publicstaticvoidmain(String[]args){/* 需求:### 编写类A01,定义方法max,实现求某个double数组的最大值,并返回 实现:(1):先完成正常业务 (2):再考虑代码健壮性 *///代码实现double[]a=null;A01a01=newA01();Doublemax=a01.max(a);if(max!=null){System.out.println("此double数组的最大值为:"+max);}else{System.out.println("double数组有误");}}}classA01{Doublemax(double[]a){if(a!=null&&a.length>0){//防止数组长度为0或者为null,由于必须有返回值,所以将方法返回类型设为Double类,实际是个地址,就可以返回null或者max,因此可以判断数组是否有误doublemax=a[0];for(inti=0;i<a.length;i++){if(a[i]>max){max=a[i];}}returnmax;}else{returnnull;}}}

14.扩展题:有个人Tom,设计他的成员变量、成员方法,可以和电脑猜拳,电脑每次都会随机生成0,1,2(0表示石头,1表示剪刀,2表示布)并要可以显示Tom的输赢次数(清单)

更多编程学习资源

编程学习公众号【程序员论周】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/15 14:23:11

PvZ Toolkit 终极指南:植物大战僵尸完整辅助教程

PvZ Toolkit 终极指南&#xff1a;植物大战僵尸完整辅助教程 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 还在为《植物大战僵尸》中的关卡挑战而苦恼吗&#xff1f;PvZ Toolkit 作为一款专业的植…

作者头像 李华
网站建设 2026/2/16 5:11:28

CircuitJS1桌面版:零基础掌握离线电路仿真技术

还在为在线电路模拟器的不稳定而烦恼&#xff1f;CircuitJS1桌面版为你提供完美的解决方案&#xff01;这款基于NW.js开发的离线电路仿真工具&#xff0c;让你在没有网络的情况下也能轻松进行电路设计和实验&#xff0c;是电子爱好者、学生和工程师的理想选择。 【免费下载链接…

作者头像 李华
网站建设 2026/2/8 15:13:48

LangFlow沙盒环境介绍:安全测试新想法的理想场所

LangFlow沙盒环境&#xff1a;安全测试新想法的理想场所 在AI应用开发日益普及的今天&#xff0c;一个常见的困境摆在许多团队面前&#xff1a;如何快速验证一个关于智能客服、自动化报告或知识问答系统的新构想&#xff1f;传统方式往往需要编写大量代码、配置复杂依赖、部署测…

作者头像 李华
网站建设 2026/2/16 2:21:09

CircuitJS1桌面版:5大核心功能让离线电路仿真更高效

CircuitJS1桌面版&#xff1a;5大核心功能让离线电路仿真更高效 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator based on NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circuitjs1 在当今数字化时代&#xff0c;一款功能…

作者头像 李华
网站建设 2026/2/15 14:37:39

Mac Mouse Fix完整指南:5分钟让普通鼠标变身macOS效率神器

Mac Mouse Fix完整指南&#xff1a;5分钟让普通鼠标变身macOS效率神器 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/gh_mirrors/ma/mac-mouse-fix 还在为普通鼠标在Mac上的功能限制而烦恼&a…

作者头像 李华
网站建设 2026/2/16 8:05:37

如何用5个步骤快速上手JSON数据可视化工具?

如何用5个步骤快速上手JSON数据可视化工具&#xff1f; 【免费下载链接】LanzouAPI 蓝奏云直链&#xff0c;蓝奏api&#xff0c;蓝奏解析&#xff0c;蓝奏云解析API&#xff0c;蓝奏云带密码解析 项目地址: https://gitcode.com/gh_mirrors/la/LanzouAPI 在现代数据驱动…

作者头像 李华