韩顺平0基础学Java——第10天

p202-233

类与对象(第七章)

成员方法

person类中的speak方法:

1.public表示方法是公开的

2.void表示方法没有返回值

3.speak()中,speak表示方法名,括号是形参列表。

4.大括号为方法体,写我们要执行的代码,本例中是输出我是个好人

构造函数

方法使用:

方法写好后不调用就不生效。先创建对象,然后调用方法即可。

例:Person p1 = new Person();

P1.speak();//调用方法

同理计算两个数的和:

public int getSum(int x, inty){

        int res = x+y;

        return res;

}

懂这个,略了

方法调用机制:

1.当程序执行到方法时,就会开辟一个独立的空间(栈空间

2.方法执行完毕,或者执行到return时就会返回

3返回到调用方法的地方

4返回后,继续执行方法后面的代码

5.当main方法(栈)执行完毕,整个程序退出

入栈出栈:是先进后出

例:遍历数组,输出数组的各个元素值。

方法的使用细节

1访问修饰符:public ,默认,protected,private

2数据返回类型:一个方法只有一个返回值,那么我想返回多个值可以返回数组。返回可以是任何类型,比如一个对象。

3.如果方法要求了返回数据类型,比如public int xxxxx(),那么最后一句必须是return一个int

4.形参列表:可以有0个参数,也可以多个,用逗号隔开

        参数类型可以是任何类型

        注意传入参数和返回值的类型,比如把byte传进返回int的方法就可以

        注意传参数时的顺序也要一致

5.方法不能嵌套定义

6.同一类中的方法可以调用:直接调用即可,不需要创建对象

方法练习

1.

2.

成员方法传参机制

传值和传地址

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

练习:

b.test200(p)把地址传到了class B的方法中,使形参中的指针置空,但是实参并没有置空!

经过测试,在形参置空前进行数据的操作还是会传回来。

案例:

解:

输出时,可以通过输出对象的hashCode来比较它们是不是同一个对象

==和equals的区别?

方法递归调用

递归就是方法自己调用自己,每次调用时传入不同的变量。

案例:

2 3 4 

n!

递归的过程会反复开栈,如下图

递归的重要规则

练习

1.斐波那契数列:

2.猴子吃桃

递归调用-老鼠出迷宫

0222_韩顺平Java_老鼠出迷宫2_哔哩哔哩_bilibili

还挺难想到的

回溯现象

当小球走到一个点位,给它置3(走不通)时,就会发生回溯,返回到上一个栈去,寻找上一个栈的另一个方向的解。

如何寻找最短路径?

1.穷举法

2.图数据结构求出最短路径,深度优先广度优先等等。

汉诺塔

没看懂,脑壳痛,你这代码怎么实现的?我虽然理解汉诺塔的规则了,但是你这代码为什么是这样的?

“如果塔只有一层,那就挪一次。如果不是一层,就看成最后一层和上面的所有层,然后递归上面的层直到剩一层”

0225_韩顺平Java_汉诺塔_哔哩哔哩_bilibili

八皇后

0226_韩顺平Java_八皇后_哔哩哔哩_bilibili

写不来,摆了

方法重载

java中允许一个类中,多个同名方法的存在,但要求形参列表不一致。

好处:减轻了起名、记名的麻烦。

细节:

1.方法名需要相同

2.形参列表不能完全相同。形参名字不能用来区分。

3.返回类型不参与构成方法重载。不进行要求。

练习:

b c d e 

可变参数

java允许将同一个类中多个同名同功能,但参数个数不一样的方法,封装成一个方法。

基本语法:

访问修饰符 返回类型 方法名(数据类型... 形参名){

}

啊该死的八皇后我看着重载想递归救命啊睡不着了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF之多种视图切换

1&#xff0c;View切换&#xff0c;效果呈现 视图1 视图2 视图3 2&#xff0c;在Xaml中添加Listview控件&#xff0c;Combobox控件。 <Grid ><Grid.RowDefinitions><RowDefinition Height"143*"/><RowDefinition Height"30"/>&l…

【Arduino】delay()、millis() 时间函数

目录 1、延时函数 2、运行时间函数 3、不使用delay() 函数实现定时、等待 1、延时函数 通过延迟函数&#xff0c;我们可以实现LED灯以1S为间隔闪送。 void setup() {pinMode(LED_BUILTIN,OUTPUT); //定义引脚&#xff0c;告诉ESP8266那个引脚做什么用&#xff0c;模式是什…

Leetcode经典题目之用队列实现栈

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、题目展示2、题目分析3、完整代码演示4、结语 1、题目展示 前面我们了解过如何实现队列…

unetr_plus_plus(UNETR++、nnU-Net)系列数据处理理解汇总

unetr_plus_plus&#xff08;UNETR、nnU-Net&#xff09;系列数据处理理解汇总&#xff0c;这是一个 3D 图像分割的任务系列集。 为什么说他们是一个系列集合呢&#xff1f;主要是因为&#xff1a; 论文的训练和评价数据集是一样的&#xff0c;都是来自于10全挑战赛&#xff…

第五百回 Get路由管理

文章目录 1. 概念介绍2. 使用方法2.1 普通路由2.2 命名路由 3. 示例代码4. 内容总结 我们在上一章回中介绍了"使用get显示Dialog"相关的内容&#xff0c;本章回中将介绍使用get进行路由管理.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

掌握MySQL常用的命令

前言 MySQL是一个流行的开源关系型数据库管理系统&#xff0c;广泛应用于各种应用场景。熟练掌握MySQL的常用命令&#xff0c;对于数据库管理员和开发人员来说至关重要。本文将介绍MySQL数据库的一些基础术语、SQL语言分类&#xff0c;以及DDL、DML、DQL和DCL等操作&#xff0…

高并发场景

缓存穿透 定义 大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。这就导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨大的压力 举个例子 某个黑客故意制造一些非法的 key 发起大量…

C++类与对象的一些练习

1.设计一个名为Rectangle的矩形类&#xff0c;其属性为矩形的长和宽&#xff0c;能计算和输出矩形的周长和面积。 class Rectangle { public:Rectangle(int c0,int k0):m_c(c),m_k(k){}int length()//周长{return 2 * (m_c m_k);}int area()//面积{return m_c * m_k;} privat…

如何优雅简单地写 Controller 层代码?

本篇就来介绍一下&#xff0c;如何写好一个 controller &#xff0c;让你的接口变的更加优雅&#xff01; 一个完整的后端请求由 4 部分组成&#xff1a; 接口地址&#xff08;也就是 URL 地址&#xff09; 请求方式&#xff08;一般就是 get、set&#xff0c;当然还有 put、…

算法-排序详解

目录 前言 比较排序 选择排序 插入排序 冒泡排序 归并排序 快速排序 非比较类排序 计数排序 桶排序 基数排序 排序的稳定性 排序算法的题目 前言 计算机的工作之一就是对数据的处理&#xff0c;处理数据有一个常见的操作就是对数据排序&#xff0c;比如新闻系统总…

Linux——进程间通信

目录 一、进程通信的初步认识 1.1 进程间通信目的 1.2 进程间通信的种类 管道&#xff08;Pipes&#xff09; System V IPC POSIX IPC 三、管道 3.1 知识铺垫 3.2 匿名管道 3.2.1 基本概念 3.2.2 测试用例&#xff1a; 3.3 管道的行为 3.4 命名管道 3.4.1 基本概念…

Django Admin后台管理:高效开发与实践

title: Django Admin后台管理&#xff1a;高效开发与实践 date: 2024/5/8 14:24:15 updated: 2024/5/8 14:24:15 categories: 后端开发 tags: DjangoAdmin模型管理用户认证数据优化自定义扩展实战案例性能安全 第1章&#xff1a;Django Admin基础 1.1 Django Admin简介 Dj…

手撕C语言题典——反转链表

目录 前言 一.思路 1&#xff09;创建新链表 2&#xff09;创建三个指针 二.代码实现 搭配食用更佳哦~~ 数据结构之单单单——链表-CSDN博客 数据结构之单链表的基本操作-CSDN博客 前面学了单链表的相关知识&#xff0c;我们来尝试做一下关于顺序表的经典算法题~ 前言 反转…

Github 2024-05-12 php开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Filament: 加速Laravel开发的完美起点 创建周期:1410 天开发语言:PHP协议类型:MIT LicenseStar数量:12228 个Fork数量:1990 次关…

Isaac Sim 4 键盘控制小车前进方向(学习笔记5.8.2)

写的乱糟糟&#xff0c;主要是这两周忘了记录了...吭哧吭哧往下搞&#xff0c;突然想起来要留档&#xff0c;先大致写一个&#xff0c;后面再往里添加和修改吧&#xff0c;再不写就全忘了 有一个一直没解决的问题&#xff1a; 在保存文件时出现问题&#xff1a;isaac sim mism…

Docker学习(带图详细)

一、安装docker 参考官方文档&#xff1a;https://docs.docker.com/engine/install/centos/ 查看系统版本 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# [rootlocalhost ~]# uname -a Linux localhost.localdomai…

Entity Framework Core中的延迟加载和即时加载

在Entity Framework Core&#xff08;EF Core&#xff09;中&#xff0c;延迟加载&#xff08;Lazy Loading&#xff09;和即时加载&#xff08;也称为早期加载或显式加载&#xff09;是两种主要的数据加载模式&#xff0c;它们在加载相关数据时有着不同的策略和优势。以下是这…

Leetcode 3145. Find Products of Elements of Big Array

Leetcode 3145. Find Products of Elements of Big Array 1. 解题思路2. 代码实现 题目链接&#xff1a;3145. Find Products of Elements of Big Array 1. 解题思路 这道题思路上还是比较直接的&#xff0c;就是实现上非常的繁琐&#xff0c;着实花了不少力气。 显然&…

vs code中如何使用git

由于本地代码有了一些储备&#xff0c;所以想通过网址托管形式&#xff0c;之前一直使用了github&#xff0c;但是鉴于一直被墙&#xff0c;无法登录账号&#xff0c;所以选择了国内的gitee来作为托管网站。 gitee的网址&#xff1a;Gitee - 基于 Git 的代码托管和研发协作平台…

C++11 新特性 decltype 说明符

一、typeof与typeid 1.1、typeof 在C11标准之前&#xff0c;GCC已经提供了一个类似功能的运算符 typeof对类型进行推导&#xff0c;但是这毕竟是编译器的实现&#xff0c;不是标准。 int a 0; typeof(a) b 5;1.2、typeid C标准提供了 typeid 运算符&#xff0c;获取的类型…