Java应用基础 Day2

目录

方法

方法的定义和调用

方法的重载

代码重构

数组

定义数组

访问数组

数组元素个数

演示

数组遍历

Debug

for循环

可变参数

二维数组


我是一个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

注:此图片来自于黑马程序员

相关推荐
寻寻觅觅☆7 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
l1t7 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
青云计划7 小时前
知光项目知文发布模块
java·后端·spring·mybatis
赶路人儿8 小时前
Jsoniter(java版本)使用介绍
java·开发语言
ceclar1238 小时前
C++使用format
开发语言·c++·算法
探路者继续奋斗8 小时前
IDD意图驱动开发之意图规格说明书
java·规格说明书·开发规范·意图驱动开发·idd
码说AI8 小时前
python快速绘制走势图对比曲线
开发语言·python
Gofarlic_OMS9 小时前
科学计算领域MATLAB许可证管理工具对比推荐
运维·开发语言·算法·matlab·自动化
星空下的月光影子9 小时前
易语言开发从入门到精通:补充篇·网络爬虫与自动化采集分析系统深度实战·HTTP/HTTPS请求·HTML/JSON解析·反爬策略·电商价格监控·新闻资讯采集
开发语言
老约家的可汗9 小时前
初识C++
开发语言·c++