目录
3.4 break、continue、return的使用场景
一、课程说明
1.1课程简介
- 方法
- break、continue、return在方法中的应用
- 方法的重载
1.2课程收获
- 可理解Java中方法的优点
- 可理解Java中方法的分类
- 可理解方法重载的特点与好处
- 可了解包的作用
二、方法
2.1需求演示
2.1.1《吃鸡体验》流程分析
2.1.2吃鸡体验流程传统实现
2.1.3疑问
如果有第2、3、N位用户应该怎么办?
2.1.4需求衍生
对这段重复执行的代码片段进行封装,并且做到“随时任意使用
2.2 初识方法
2.2.1 何为方法
2.2.1.1生活中
- 一般是指为达到某种目的而采取的一种行为方式。
2.2.1.2程序中
- 方法就是对重复执行的代码片段处理的行为方式,它可以对重复执行地代码片段进行封装,并可做到随时任意使用,提升程序开发效率
2.2.2 方法的分类
2.2.2.1系统提供的方法
- 常用方法
- println()
- nextInt()
- nextDouble()
- next()
2.2.2.2用户自定义的方法
- 无返回值、无参数
- 无返回值、有参数
- 有返回值、无参数
- 有返回值、有参数
2.2.3用户自定义的方法
2.2.3.1无返回值、无参数
- 修饰符 void 方法名称(){
代码块
}
- 使用无返回值,无参数方法完成,《吃鸡体验流程》
- 注意事项
- 在Java中,方法是不支持嵌套的,只能编写在类中,或者编写在其它方法的外面
-
修饰符 void 方法名称(){
代码块
}
-
- 仿照main方法编写
- 当使用java命令来运行字节码文件的时候,会自动找到程序的入口,也就是main方法,如果找到main()方法则就从main方法中的第一条语句开始逐行向下执行。
- 因此得到,用户自定义的方法不会自动执行,则需要方法的调用
- 调用方法的语法格式:类名.方法名称()
- 简述方法执行流程
- 在Java中,方法是不支持嵌套的,只能编写在类中,或者编写在其它方法的外面
- 结论
- 方法的好处:
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 使程序变得更简短而清晰。
- 提高代码的复用性。
- 一个方法编写好以后可以调用任意多次
- 方法的好处:
- 需求拓展
- 如何通过方法完成当前是第几位用户开始体验
2.2.3.2无返回值、有参数
- 修饰符 void 方法名称(参数类型 参数名称,……){
代码块
}
利用无返回值,有参数方法完成当前是第几位用户开始体验
- 程序的执行流程
- 总结
- 有利于程序维护
- 提高代码的复用性
- 暂时方法的修饰符编写为public static
- 返回值类型有两种情况:
- 第一种:无返回值类型,也就是编写为void
- 第二种:有(带)返回值类型(基本数据类型,引用数据类型中的任何一种)
- 方法名称也就是:标识符
- 建议:方法名称编写为实现该方法功能的单词,比如:sum
- 建议:方法名称采用驼峰命名法,比如JavaAndBigData
- 参数类型有两种情况:
- 第一种:无参数
- 第二种:有参数(基本数据类型,引用数据类型中的任何一种)
- 方法体也就是:编写该方法实现具体功能的代码
- 带参方法的注意事项
- 参数编写在方法名称后面的小括号中
- 每个参数都必须编写为:数据类型 参数名,多个参数之间使用英文逗号隔开
- 参数名也就是标识符,建议:编写单词,最好采用驼峰命名法
- 在编写方法时,未知的数称为形式参数,简称形参,比如:n就是形参
- 在调用方法时,给具体的值称为实际参数,简称实参
- 其实,也就是:实参的值赋给形参的变量名称,必须保证实参与形参的个数一致、类型一致、顺序一致
- 当方法是无返回值类型时,在调用方法时,只需要编写调用方法即可,不需要将调用后的结果输出。
- 带参数方法的练习
- 使用方法完成计算两个整数的差
- 分析得到:
- 该方法有未知的数,则就可以编写为带参数的方法完成,比如int a,int b 建议:实参最好编写为键盘接收用户输入
- 该方法实现减法功能,因此方法名编写为sub
- 分析得到:
- 使用方法完成计算两个整数的差
- 方法什么时候编写为带参?
- 当该方法中有未知数时,则就可以编写为带参的方法完成
- 当该方法中有未知数时,则就可以编写为带参的方法完成
2.2.3.3有返回值、无参数
- 修饰符 返回值类型 方法名称(){
代码块
}
- 使用有返回值,无参数方法实现两个整型数字之和,在main方法中进行调用时,将得到的结果返回和main方法中另一个整型变量进行相加运算并输出结果。
- 带返回值类型方法的注意事项
- 当方法带有返回值类型时,则建议:在调用处进行方法的处理,否则调用后没有结果输出
- 如果方法带有返回值类型,则就不能编写为void,也就是:编写返回结果的对应数据类型,比如:结果是3对应数据类型为int
- 当方法带有返回值类型时,则必须要在方法体中编写return,否则就出现编译错误,其中return表示返回
- 程序的执行流程
- 方法什么时候编写为带返回值类型的?
- 该方法只有一个结果,则就可以编写为带返回值类型的方法完成
- 该方法只有一个结果,则就可以编写为带返回值类型的方法完成
2.2.3.4有返回值、有参数
- 修饰符 返回值类型 方法名称(参数类型 参数名称,……){
代码块
}
- 使用有返回值,有参数方法实现任意两个整型数字之和,在main方法中进行调用时,将得到的结果返回和main方法中另一个整型变量进行相加运算并输出结果。
- 程序的执行流程
- 带返回值类型方法的注意事项
- 如果方法带有返回值类型,则就不能编写为void,也就是:编写返回结果的对应数据类型,比如:结果是3对应数据类型为int
- 当方法带有返回值类型时,则必须要在方法体中编写return,否则就出现编译错误
-
其中return表示返回
- 当方法带有返回值类型时,建议:在方法的调用处要进行处理
2.2.3.5说明
- 暂时方法的修饰符编写为public static
- 返回值类型有两种情况:
- 第一种:无返回值类型,也就是编写为void
- 第二种:有(带)返回值类型(基本数据类型,引用数据类型中的任何一种)
- 方法名称也就是:标识符
- 建议:方法名称编写为实现该方法功能的单词,比如:sum
- 建议:方法名称采用驼峰命名法,比如JavaAndBigData
- 参数类型有两种情况:
- 第一种:无参数
- 第二种:有参数(基本数据类型,引用数据类型中的任何一种)
- 方法体也就是:编写该方法实现具体功能的代码
2.2.4方法的核心提炼
2.2.4.1 方法的本质
- Java方法是代码2语句的集合,它们在一起执行一个功能。
- 方法是解决一类问题的步骤的有序组合
- 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。
- 我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。
2.2.4.2 方法的优点
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 可以提高程序开发的效率。
- 提高了代码的重用性。
2.2.4.3 方法的定义
- Java的方法也叫函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法,包含以下语法:
- 方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
-
形式参数:在方法被调用时用于接收外界输入的数据。
-
实参:调用方法时实际传给方法的数据。
-
- 方法体:方法体包含具体的语句,定义该方法的功能。
三、break、continue、return的区别
3.1 break
- break在哪使用
- 在switch case中使用,还可以在循环中使用
- break作用:
- 当遇到break,则结束当前整个switch case或者结束当前整个循环,执行外面的语句
3.2 continue
- continue在哪使用
- 只能在循环中使用
- continue作用:
- 当遇到continue,则结束当前这一次循环,继续执行下一次循环
3.3 return
- return在哪使用
- 在方法中使用
- return作用:
- 当遇到return,则结束当前这个方法的执行,返回到方法的调用处
- return特殊情况:
- 当方法是无返回值类型时,则可以在方法体中使用return,但是必须编写为return;
3.4 break、continue、return的使用场景
- 根据具体业务需求
四、方法的随堂练习
4.1练习一
- 判断一个三位整数,是否是水仙花数
- 结论
- 其实main方法中也可以使用return 但是只能编写为return;表示结束当前main方法的执行
4.2练习二
- 使用方法完成,判断一个数是奇数还是偶数
- 结论
- 当方法带有返回值类型,并且是二选一时,则有如下三种形式的写法
- 当方法带有返回值类型时,则建议:在调用处进行方法的处理,否则调用后没有结果输出
4.3练习三
- 使用方法完成,根据星期,得到每天要做的事情
- 结论
- 当方法带有返回值类型,如果在case或者default中编写return,则return后面就不需要再编写break,否则出现编译错误,无法访问的语句
4.4练习四
- 使用方法完成,判断一个数是否是两位的正数
- 分析得到
- 因此得到:该方法就编写为带参且带有返回值类型的方法完成
- 该方法只有一个结果,则就可以编写为带返回值类型的方法完成,比如:String
- 该题实现判断功能,因此方法名编写为judge
- 该方法中有未知的数,则就可以编写为带参数的方法完成,比如double num
- 分析得到
- 使用方法完成,判断一个数是否是两位的正数
4.5练习五![](https://i-blog.csdnimg.cn/blog_migrate/aee9a8783b8008ce6ef27185fb6abb11.png)
- 使用方法完成,判断一个数是否是水仙花数
- 注意
- 该方法只有一个结果,则就可以编写为带返回值类型的方法完成
- 当方法实现判断功能,并且是2选1时,则就可以返回boolean类型的值
- 当方法返回boolean类型的值时,方法名称建议前面编写为is+实现功能单词,比如isFlower()
- 该方法中有未知的数,则就可以编写为带参数的方法完成,比如int num
- 因此得到:该方法就编写为带参且带有返回值类型的方法完成
- 该方法只有一个结果,则就可以编写为带返回值类型的方法完成
- 注意
4.6练习六
- 使用方法完成,输出所有三位数中的水仙花数
- 分析得到
- 该题实现输出功能,因此方法名编写为print
- 该方法中没有未知的数,也就是100~999,因此不需要编写参数
- 该方法的结果可能会有多个,也就是:编写为无返回值类型的方法
- 因此得到:该方法就编写为无参无返回值类型的方法完成
- 分析得到
- 结论
- .在java中,方法之间是可以相互调用的,除了main方法之外
- 当方法带有返回值类型时,建议:在调用处进行方法的处理
- 处理方法:比如将结果输出,或将结果进行判断……
五、IDEA
5.1 Java语言编译器介绍
记事本
Eclipse 微服务时代
IDEA
5.2 IDEA相关介绍
5.2.1 IDEA自身
集成开发环境,其实本质上就是一种用于提供程序开发环境的应用程序,具体包含代码的编写功能,分析功能,编译功能,调试功能等一体化的软件开发服务
目前主流的大型项目都是分布式部署的,结构都是类似于这种多Moudle结构
5.2.2 IDEA所在的公司
JetBrains是一家的软件公司,该公司最牛逼的一款产品就是Java编程语言所用的集成开发环境:Intellig IDEA。
公司旗下还有其它的产品,比如:
5.3 IDEA下载与安装
5.3.1 IDEA下载
从idea官网https://www.jetbrains.com/idea/下载软件
5.3.2 IDEA安装
第一步:双击安装程序
第二步:省略……下一步
第三步:不勾选任何选框
第四步:不勾选任何选框
5.4 IDEA破解
5.4.1第一步:点击试用idea
5.4.2第二步:打开或者新建一个java项目
5.4.3第三步:将破解jar程序拖入idea窗口中
5.4.4第四步:关闭idea并重启
5.4.5第五步:查看安装的插件
第六步:选择开启软件自动重置试用期
到此idea就能无限使用啦!!!
5.5 弹窗解决
打开idea总会弹出如下窗口,使用idea会很不方便
解决办法如下:
第一步:选择file->setting设置
第二步:关闭自动访问服务器安全验证信息
5.6 IDEA卸载
控制面板直接点击卸载就可以啦
5.7 IDEA页面介绍
5.8 IDEA常用设置
5.8.1进入设置界面
如何进入设置界面
5.8.2主题设置
5.8.3自动导包设置
5.8.4忽略大小写提示
5.8.5多个类多行显示,不隐藏
当打开多个类时,一行显示不下,会隐藏最开始打开的类,通过如下设置,可以让类多行显示
5.8.6设置字体大小、行间距
5.8.7设置文档注释头
5.8.8设置项目的编码格式
现在开发普遍都使用UTF-8编码,具体设置如下
5.8.9设置自动编译
每次写完代码,不用运行就可以完成自动编译
5.8.10省电模式
5.9 IDEA常用快捷键
5.10 Moudle概念与使用
5.10.1 Moudle概念介绍
在Eclipse中我们有WorkSpace(工作空间)和Project(工程)的概念,在IDEA中只有Project(工程)和Moudle(模块)的概念,对应关系为:
总结:
如果建立的项目是空项目,模块之间没有任何关联,
此时空项目可以当做工作空间来用,模块可以当做独立的项目来用。
从Eclipse转过来的人总是下意地要在同一个窗口管理n个项目,这在IDEA中会无法做到的,IDEA提供的解决方案是打开多个项目实例,即打开多个窗口,即:一个Project打开一个Window窗口
在IDEA中Project是最顶级的级别,次级别是Moudle,一个Project可以有多个Moudle,目前主流的大型项目都是分布式部署的,结构都是类似于这种多Moudle结构
5.10.2创建项目与添加模块
第二步:建立模块
打开项目管理
检查模块在项目目录下
至此模块就建立好啦
5.10.3删除模块
注意:该模块只是从列表中删除了,但是还在本地磁盘中
5.11 IDEA代码模板
配置一些常用的代码的字母缩写,例如输入psvm生成main方法,这样的模板设置就是代码模板
5.11.1代码模板分类
- Live Templates:可以做用户的个性化定制
- Postfix Completion:只能用,不能改
5.11.2 常用代码模板
psvm
sout
5.11.3 修改代码模板
5.12 IDEA断点调试
5.12.1辅助程序
public class Demo {
public static void main(String[] args) {
int i = 1;
int[] arr = {1,2,3};
arr[0] = 4;
test();
System.out.println("结束");
}
private static void test() {
for(int i = 0 ; i < 100 ; i++){
System.out.println(i);
}
}
}
5.12.2断点调试快捷键
List Set Map Mybatis SpringMVC
5.12.3断点调试之查看表达式
当断点执行到某一步的时候,我们可以通过右键点击Evaluate Expression执行查看表达式,在搜索框中输入自己想要查看的变量值,如下所示:
六、IDEA中编写程序
6.1程序一
- 需求:判断一个整型数字是奇数还是偶数
- 结论
- 体验用idea编程的智能性
6.2程序二
- 需求:判断一个数是否是两位的正数 * <p> * 注意:在idea中,其实也可以现在main方法中编写该题的所有思路,然后将单独实现的某个功能编写为方法 * 就是在idea中,可以先调用方法,然后出现错误,当main()方法中所有的思路编写完以后再使用快捷键生成该方法 * 生成方法的操作步骤: * 第一步:光标放在当前Java源文件的任意位置,按住shift+F2 表示光标自动跳转到语法错误的位置 * 第二步:再按Alt+Enter表示修复,选择第一项,表示在指定的类中创建指定的方法,按回车键即可 * 第三步:然后在生成的方法体中编写实现具体功能的代码
- 结论
- 体验使用idea在main方法中实现编程思路再创建方法的过程
6.3程序三
- 需求:使用方法完成,计算一个三位正整数的各个位之和
- 结论
- 体验使用idea在main方法中实现编程思路再创建方法的过程
- 体验方法是特殊功能的封装
6.4 IDEA中包的解析
6.4.1 整体概述
package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。它的格式为:
package 顶层包名.子包名 ;
举例:pack1\pack2\PackageTest.java
package pack1.pack2; //指定类PackageTest属于包pack1.pack2
public class PackageTest{
public void display(){
System.out.println("in method display()");
}
}
包对应于文件系统的目录,package语句中,用 “.” 来指明包(目录)的层次;
包通常用小写单词标识。通常使用所在公司域名的倒置:com.yg.xxx
com.baidu.百度外卖
源文件布局:
6.4.2包的作用
- 包帮助管理大型软件系统:将功能相近的类划分到同一个包中。比如:MVC的开发模式
- 包可以包含类和子包,划分项目层次,便于管理
- 解决类命名冲突的问题
- 控制访问权限(访问权限修饰符)
包package:类似于文件夹,其实包中可以存放包的,也可以存放Java源文件
6.4.3包的好处
- a
- Hello.java
- b
- Hello.java
6.4.4包的分类
- 系统提供的包
- java.lang
- Java语言基础包,也就是说:该包中的类可以直接使用不需要导入包
- 常用的类,比如String、System……
- java.util
- 工具包
- 常用的类,比如:Scanner
- java.lang
- 用户自定义的包
6.4.5创建包
- 注意事项:
- 包在src目录中创建或者在指定的包中创建
- 创建包有两种方式,分别是:
- 第一种方式:先创建包,然后再创建类
- 第二种方式:创建类的同时创建包
-
当创建类的同时创建包时,如果该包不存在,则会在指定位置创建包,并且将类存放在包中
-
当创建类的同时创建包时,如果该包存在,则会将指定的类存放在指定的包中
-
- 包名建议编写单词,并且建议包名全部小写
- 当一个类在指定的包中存放时,则该类中的第一行必须是包的声明,否则该类存放在src目录中
- 声明包语法格式为:package 包名;
- 其实包名也可以编写为域名反写
- www.baidu.com-> com.baidu.wwww
- com.hy.program
- 第一种方式:先创建包,然后再创建类
- 创建包有两种方式,分别是:
- 包在src目录中创建或者在指定的包中创建
6.5 通配符*代表所有类
- 为使用定义在不同包中的Java类,需用import语句来引入指定包层次下所需要的类或全部类(.*)。import语句告诉编译器到哪里去寻找类。
- 语法格式:
import 包名. 类名;
- 应用举例:
import pack1.pack2.Test; //import pack1.pack2.*;表示引入pack1.pack2包中的所有结构
public class PackTest{
public static void main(String args[]){
Test t = new Test(); //Test类在pack1.pack2包中定义
t.display();
}
}
6.6方法习题加练
6.5.1习题一
6.5.3习题二
- 需求:输出2000~2021年中所有的闰年
1.在默认情况下,会在当前包中找该类,如果找到该类则直接使用,否则就出现编译错误
2.导入包
当在一个类中,如果想使用其它包中的类,则必须要导入包
3.导入包的方式有三种
第一种方式:import 包名.类名;
第二种方式:import 包名.*;(其中*代表所有类)
第三种方式:在使用类时,直接编写完整类名
4.当使用快捷键生成方法时,默认是private static 其中private表示私有的,也就是只能在本类中使用该方法,则改为public static
5.在IDEA中,建议设置为自动导入包
七、方法的重载
7.1概念
- 在一个类中允许同时存在两个或者两个以上拥有相同名字的方法,且参数列表不同,与返回值类型无关,这样的方法就可以构成方法的重载(overload)
- 参数列表:参数的个数不同,参数的数据类型不同,参数类型的顺序不同。
7.2作用
- 方便程序人员快速对方法进行调用,在使用时相对更灵活
7.3方法重载的使用
- 需求:编写程序实现任意类型数值之和,比如说:
- int a,int b
- int a,int b,int c
- int a,int b,float c
- float a,int b,int c
7.4相关疑问
- 当构成方法重载后,如何确定执行的是哪个方法?
- 在调用时会自动根据实参找相匹配的方法执行
- 方法重载的验证
- 方法重载的特点:
- 要求方法名称必须相同
- 参数列表至少有一要素不同
- 参数的个数
- 参数的类型
- 参数的类型顺序
- 和返回值类型无关
八、总结
- 方法
- break、continue、return在方法中的应用
- 方法的重载
- IDEA的下载与安装及使用说明
- IDEA的配置
- IDEA的快捷键
- IDEA中编写程序
- IDEA中包的解析