目录
我是一个java小白,正处于学习阶段。
欢迎各位将文章有问题的地方在评论区提出指正!!!
方法
方法的定义和调用
方法(Method):是程序中最基本的功能单位,是用来实现功能的代码块。一个程序往往有很多的方法组成。
参数-方法名-返回值

写方法时候思考一下三点:
1)返回值是否需要,是什么
2)参数是什么?
3)方法名是什么?
案例:用户输入月份,展示对应的季节
java
package p04;
import java.util.Scanner;
public class BurnRateDemo {
//无返回值
public static void monthToSeason(int month){
String season = switch (month){
case 1,2,3 -> "春天";
case 4,5,6 -> "夏天";
case 7,8,9 -> "秋天";
default -> "冬天";
};
System.out.println(season);
}
//不用对象接收返回值,直接调用方法
public static void main(String[] args) {
monthToSeason(5);
}
}
案例:定义一个方法,传入任意整数,计算该数字的阶乘并返回
java
package p04;
import java.util.Scanner;
public class BurnRateDemo {
public static int jieCheng(int n){
int i = 1;
int result = 1;
while(i <= n){
result *= i;
i++;
}
return result;
}
public static void main(String[] args) {
// int r = jieCheng(5);
// System.out.println(r);
System.out.println(jieCheng(5));
}
}
方法的重载
方法重载是指在同一个类中,定义多个同名方法,但是这些方法的参数列表不同(参数类型 或个数 或顺序)不同。
什么时候使用?
看如下两个案例
案例
需求:定义几个方法,满足下列要求 求两个整数和 求三个整数和 求两个浮点数和。
需求:定义几个方法,模拟消息发送功能 方法一:基于手机号发送,需要知道手机号和消息内容 方法二:基于邮箱发送,需要知道邮箱地址、邮件主题、邮件内容。
代码重构
重构:通过改变代码结构提高代码的可读性和可维护性,但是不改变代码的功能。
代码的规范:
优雅的命名:自定义名称尽量使用能表达其作用的英文单词。
类名:使用名词,每个单词首字母大写,其它字母小写。比如 MathTeacher
变量名:使用名词,除第一个单词外,单词首字母大写,其它字母小写。比如:firstName
方法名:使用动词,除第一个单词外,单词首字母大写,其它字母小写。比如:haveLanuch
简短的方法:方法中代码不易过长,通常不超过20行。
代码复用:尽量避免写相同或者是相似的代码,把他们抽取为方法。
数组
数组是一种特殊的引用数据类型 ,可以存储多个相同类型 数据,在内存中是一片连续空间。数组的类型是动态的,与存储的数据类型有关。
例如数组存储int类型数据,数组的类型就是int[]。
定义数组
java
String[] foods = {"白灼虾", "煮鸡蛋", "清蒸鲈鱼"};
java
int[] array = new int[5]


之所以数组从0开始计数,是由于当将第一个地址带入公式时等于0,少一次减法运算,我们可以将(n-1)看成索引。
访问数组
1)给数组赋值
java
array[1] = 2;
2)拿出数组中的值
java
System.out.print(array[1]);
数组元素个数
java
int len = array.length;
演示
java
public class BurnRateDemo {
public static void main(String[] args) {
String[] person = new String[3];
person[0] = "张三";
person[1] = "李四";
person[2] = "王五";
System.out.println(person[0]);
System.out.println(person[1]);
System.out.println(person[2]);
//注意这样会导致数组越界
//System.out.println(person[3]);
}
}
数组遍历
遍历(Traversal):按照一定的顺序依次访问某个多元素数据集中的数据。
1)定义变量,初始为0,作为数组索引
2)每次访问完数组元素,索引自增1
3)判断索引是否超过数组边界
java
int[] arr = {1, 2, 3, 4, 5};
int i = 0; // 1.定义变量,初始为0,作为数组索引
while (i < arr.length) { // 3.判断索引是否超过数组边界
System.out.println(arr[i]);
i++;// 2.每次访问完数组元素,索引自增1
}
案例
需求:定义一个方法,接收任意int数组,用while循环遍历并打印
需求:定义一个方法,接收任意int数组,用while循环遍历并将数组元素拼接为[1, 2, 3]格式并返回
Debug
到时候我会单独做一期有关debug的文章
for循环
1)for循环与while循环功能类似,但语法更简洁,紧凑,更适合用来遍历数据
2)while循环存在人为的干预,for执行顺讯严格,循环全自动
3)通常不确定循环次数用while循环;确定循环次数或者是遍历多元素的数据集时用for循环
java
for (0-初始化变量 ; 1-循环判断条件; 3-更新变量) {
2-循环执行的代码;
}
//数字是执行的顺序
java
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
for循环的快捷方式
java
arr.fori
可变参数
当一个方法的参数类型确定,但是参数个数不确定,可以使用可变参数。
java
返回值 方法名(数据类型 ... 参数名){
}
java
int add(int ... nums) {
}
调用可变参数方法时,可以传入0个或N个参数:
java
int sum = add();
sum = add(10, 20);
sum = add(10, 20, 30, 40);
可变参数本质是一个数组,可以用数组的方式来获取可变参数中的每一个值
java
public static int add(int ... nums) {
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
}
return sum;
}
二维数组
如果一个数组的元素类型是一维数组,那么这个数组就是二维数组。
java
int[] arr = {1,3,5,7,9};
int[][] arr = {1,3,5,7,9},{2,3,6,8,10};
int[][] arr = {1,3,5,7,9},
{2,3,6,8,10};
java
//第一行第二列
arr2[1][3]
//取值为8
注:此图片来自于黑马程序员
