1.方法 (也可以叫函数)
1.1为什么要使用方法
开发中会遇到很多重复的功能,循环已经满足不了咱们的需求了。
会导致:
代码臃肿
阅读性差
维护性极差
举个栗子
public class Demo1 {
//为什么使用方法
public static void main(String[] args) {
//打印10遍hello1
for (int i = 0; i < 10; i++) {
System.out.println("hello1");
}
System.out.println("===============");
for (int i = 0; i < 10; i++) {
System.out.println("hello1");
}
System.out.println("---------------");
for (int i = 0; i < 10; i++) {
System.out.println("hello1");
}
System.out.println("+++++++++");
for (int i = 0; i < 10; i++) {
System.out.println("hello1");
//等等等等,要输入十遍sout,确实很麻烦把
}
}
}
1.2其实咱们已经见过方法了
public static void main(String[] args){}
main方法是java内置的方法(java自己封装好的只需要调用就行了)主函数,程序的一个入口
public static:之后会给大家说说,本文就不再提了
void:返回值的类型,void没有任何返回值的
main:是方法的名字。如果咱们自己定义的话,能和main起名字一样吗?不能
需要自己起方法的名字
():是咱们方法后面紧跟着的一个符号
String[] args:形式参数 形参
{}:方法体,大括号里面方法功能代码
1.3无参数无返回值的方法
比葫芦画瓢
语法格式:
public static void 方法名字() {}
【注意事项】:
1.方法的声明必须写在主函数的外面
2.方法的调用一定要放在主函数中
3.方法名字();即可
4.方法名字的命名和变量的命名一样
5.方法是条狗,哪里需要哪里吼,方法不调用,不执行。
public class Demo3 {
public static void main(String[] args) {
//打印20遍的hello 黄焖酥肉
printHelloHms();
System.out.println("===========");
//打印20遍的hello 黄焖酥肉
printHelloHms();
System.out.println("------------");
//打印20遍的hello 黄焖酥肉
printHelloHms();
System.out.println("++++++++++++");
//打印20遍的hello 黄焖酥肉
printHelloHms();
}
public static void printHelloHms(){
for (int i = 0; i < 20; i++) {
System.out.println("hello 黄焖酥肉");
}
}
}
1.4有参数无返回值的方法
语法格式:
public static void 方法名字(数据类型 参数名字, 数据类型 参数名字 .....) {}
public class Demo5 {
public static void main(String[] args) {
//3.2和3.4是实际参数,真实的参数
//把3.2赋值给了a
//把3.4赋值给了num2
printSum(3.2, 3.4);
printsum1(3,1,8);
printStr("hehe", "da");
}
/**
* 打印两个 double类型的数据的和
* @param a 形式参数
* @param num2 形式参数
*/
public static void printSum(double a, double num2) {
System.out.println(a + num2);
}
public static void printsum1(int a, int b, int c) {
System.out.println(a + b + c);
}
public static void printStr(String str1, String str2) {
System.out.println(str1 + str2);
}
}
1.5无参数有返回值的方法
语法格式:
public static 数据类型 方法名字() {
return 返回的意思
}
关键字:return 返回的意思
public class Demo6 {
public static void main(String[] args) {
int a = giveFive();
int c = a + 7;
System.out.println(c);
giveSix();//直接打印了6
String str1 = giveStr();
System.out.println(str1);
}
/**
* 声明的一个有返回值无参数的方法
* @return
*/
public static int giveFive() {
return 5;
}
/**
* 无返回值的无参数的方法
*/
public static void giveSix() {
System.out.println(6);
}
public static String giveStr() {
return "回眸一笑百媚生";
}
}
1.6有参数有返回值的方法
语法格式:
public static 数据类型 方法名字(数据类型 形式参数, 数据类型 形式参数 ......) {
}
public class Demo7 {
public static void main(String[] args) {
int sum = sum(1, 2);
System.out.println(sum);
}
//求两个int数的和
public static int sum(int a, int b) {
return a + b;
}
}
总结:
1.无参数无返回值的:public static void sum(){}
2.有参数无返回值的:public static void sum(int a){}
3.无参数有返回值的:public static 数据类型 sum(){ return}
4.有参数有返回值的:public static 数据类型 sum(参数类型 形式参数){return}
【注意事项】:
1.方法名字的命名
见名知意
方法在调用的时候是通过方法的名字来调用的。在main主函数中调用的
严格使用小驼峰的命名方式
2.形式参数(参数)和实际参数(实参)
形式参数:只是形式而已,参数的名字可以随便
实际参数:是真真切切的值
3.关于有返回值的方法
使用关键字return
返回的时候在main主函数中需要接收,接收以后可以进行下一步的操作
2.break关键字
字面意思:
打破,终止,打断
代码终止的效果:
例如大家都知道swicth-case 中,break;跳出
对于循环,跳出当前循环
public class Demo8 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
/*
* i = 0 0<10 true 打印0 i++
* i = 1 1<10 true 打印1 i++
* ....
* i = 6 6<10 true 6==6 true 打印循环终止
* break;终止代码,循环就结束了
* */
if (i == 6) {
System.out.println("循环终止");
break;
}
System.out.println(i);
}
}
}
3.continue关键字
字面意思:
继续
代码中:
结束本次循环,进入到下一次循环
public class Demo9 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
/*
* i = 0 0<10 true 0%5 ==0 true continue 往下不执行,但是还回到for i++
* i= 1 1<10 true 1%5==0 false 打印1
* .。。
* i = 5 5<10 true 5%5==0 true
* */
if (i % 5 == 0) {
System.out.println("结束本次循环,进入到下一次循环");
continue;//代码走到这个地方不再向下执行了,但是回到for继续下一次的循环
}
System.out.println(i);
}
}
}
4.一些网上的练习题
1.封装一个方法,找出两个int类型数据中的的最大值
2.封装一个方法,找出两个float类型数据中的的最小值
3.封装一个方法,判断一个字符是否是大写字符
4.封装一个方法,判断一个字符是否是数字字符
5.封装一个方法,判断一个字符是否是英文字符
6.封装一个方法,将一个这整数倒叙打印
7.封装一个方法,计算一个数的立方
8.封装一个方法,判断一个年份是否是闰年平年
9.封装一个方法,判断一个数是否是正数还是负数
public class Demo10 {
public static void main(String[] args) {
int max = getMax(4, 3);
System.out.println(max);
float min = getMin(3.4F, 5.6F);
System.out.println(min);
boolean a = isUpper('F');
System.out.println(a);
boolean number = isNumber('7');
System.out.println(number);//true
boolean q = isEnglish('q');
System.out.println(q);//true
daoXu(56789);
int cube = cube(4);
System.out.println(cube);//64
boolean year = isYear(2078);
System.out.println(year);
printTri(80);
}
//找出两个int类型数据的最大值
public static int getMax (int num1, int num2) {
// if (num1 > num2) {
// return num1;
// }else {
// return num2;
// }
//使用三目运算符的写法
return num1>num2 ? num1:num2;
}
/**
* 求两个float类型数据的最小值
* @param num1 float类型的数据 第一个参数
* @param num2 float类型的数据 第二个参数
* @return 返回值是最小值 float
*/
public static float getMin(float num1, float num2) {
//return num1 < num2 ? num1: num2;
if (num1 < num2) {
return num1;
} else {
return num2;
}
}
//判断一个字符是否是大写字符
public static boolean isUpper(char ch1) {
//return ch1 >= 'A' && ch1 <= 'Z';
//ASCII码的表现形式来判断是否是大写的英文字符
return ch1 >= 65 && ch1 <= 90;
}
/**
* 判断一个字符是否是数字字符
* @param ch1
* @return
*/
public static boolean isNumber(char ch1) {
//return ch1 >= '0' && ch1 <= '9';
return ch1 >= 48 && ch1 <= 57;
}
//判断一个字符是否是英文字符
public static boolean isEnglish(char ch1) {
return (ch1 >= 'A' && ch1 <= 'Z') || (ch1 >= 'a' && ch1 <= 'z');
}
//将一个这整数倒叙打印
public static void daoXu (int num) {
while (num > 0) {
System.out.println(num % 10);
num /= 10;
}
}
//计算一个数的立方
public static int cube(int num) {
return num * num * num;
}
//判断是否是闰年
public static boolean isYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ) {
return true;
} else {
return false;
}
}
//打印直角三角形
public static void printTri (int i) {
for (int k = 1; k <= i; k++) {
for (int z = 1; z <= k; z++) {
System.out.print("*");
}
System.out.println();
}
}
}
5.数组【重点!!!】
5.1开发中为什么要有数组
如果开发中出现了大量的同一类型的数据的时候,如果按照变量的声明的方式。显然会出现多个变量。
数组就是声明一个变量名字,然后可以存多个数据的
5.2生活中的数组
图书馆:
图书的归纳,就是数组的一种思想
会对书进行分类,进行编号
《java从入门到放弃》 《mysql详解》 《spring解密》《springboot详解》
书本编号分别为:T-1234-0 T-1234-1 T-1234-2 T-1234-3
这个书架就是数组的一种的一种思想
5.3java中如何定义数组
变量声明:
数据类型 变量名字 = 初始化的值;
数组声明语法格式:
第一种声明方式【声明一个空数组】:
数据类型[] 数组名字 = new 数据类型[容量]; 容器
第二种声明方式【直接对数组进行赋值】:
数据类型[] 数组的名字 = {值1, 值2, 值3, 值4};
public class Demo13 {
public static void main(String[] args) {
//第一种数组的声明方式
char[] chs = new char[5];
chs[0] = '我';
chs[1] = '是';
chs[2] = '很';
chs[4] = '好';
System.out.println(chs);//打印字符数据
int[] ints = new int[3];
ints[0] = 38;
ints[1] = 57;
ints[2] = 67;
System.out.println(ints);//打印的内存地址
String[] strs = new String[3];
strs[0] = "呵呵哒";
strs[1] = "嘻嘻哒";
strs[2] = "哈哈哒";
System.out.println(strs);
//第二种数组声明方式
boolean[] bools = {true, false, true, false, false, true};
String[] names = {"景天", "雨果"};
}
}
5.4数组的使用
1.声明 2.赋值 3.把数据取出来
public class Demo14 {
public static void main(String[] args) {
//这个doubles数组变量已经有值了
double[] doubles = {21.2,23.4,78.9};
System.out.println(doubles);//打印了一个你看不懂的东西
System.out.println(doubles[0]);//通过索引把值给取出来
System.out.println(doubles[1]);
System.out.println(doubles[2]);
//System.out.println(doubles[3]);
System.out.println(doubles.length);//数组的长度
}
}
5.5数组和循环不得不说的秘密
数组和循环是有关联的
如果碰到数组就尽可能使用循环进行取数据(遍历)
取值一般借助于循环进行取值的
是因为数组的索引(下标)是有规律的!!!
public class Demo15 {
public static void main(String[] args) {
int[] arr = {521, 4399, 1314, 520, 360, 12315};
System.out.println(arr.length);//6
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
String[] strs = {"盖伦", "亚索", "提莫", "奥巴马"};
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
}
}
5.6数组作为方法的参数
语法格式:
public static void main(String[] args){}
需求:给一个int类型的数据的数组进行赋值
public class Demo16 {
public static void main(String[] args) {
//1.声明一个空的数组
int[] arr = new int[10];
//2.需要借助于setIntArray 给这个空数组进行赋值
setIntArray(arr);
//3.arr就已经有值了
//4.取值
System.out.println(arr[0]);
}
public static void setIntArray(int[] array) {
//array是一个空的数组
//赋值
for (int i = 0; i < array.length; i++) {
array[i] = i + 3;
// array[0] = 3;
// array[1] = 4;
}
}
}
扩展知识点:
三目运算符:
三目运算符和if-else功能一模一样。
语法格式:
表达式?变量1:变量2;
举个栗子:返回两个数的最大值
return num1>num2 ? num1:num2;
执行流程:判断表达式是否为true,如果表达式为true,就返回变量1,如果表达式为false,
就返回变量2。

本文深入浅出地讲解了方法的使用、无数组的重要性、以及如何在开发中高效利用数组和循环。通过实例演示了不同类型的函数和数组操作,包括无返回值、有返回值、参数传递,以及数组的声明、赋值和遍历。同时介绍了关键的编程概念如break、continue和练习题,帮助提升编程技能。

被折叠的 条评论
为什么被折叠?



