JavaSE学习【Day 7】

JavaSE学习【Day 7】

今天主要学习了方法的参数、方法的重载、方法的递归、数组,欢迎浏览观看

1 方法

1 方法的参数

形参

形式参数,定义方法时()中的参数

相当于局部变量的声明

作用域:在当前方法中有效

形参不存在默认值,赋值根据实参决定

实参

实际参数,调用方法时()中的参数

相当于局部变量的赋值

注意:

形参要与实参一一对应

类型对应

个数对应

顺序对应

2 return 返回值

在有返回值的方法中:必须存在,必须带出返回值!!!

作用 :

1、提前结束方法

2、带出返回值

在没有返回值的方法中:

提前结束方法

不可达语句:

1、return后面出现其他语句

2、break后面直接出现的语句

3、continue后面直接出现的语句

4、while(true)|死循环后的语句

5、while(false){}中的语句

兼容类型

形参与实参之间 :

实参类型<=形参类型

返回值类型

接收方法返回值变量的类型>=方法的返回值类型>=return后面数据的类型

break与continue与return之间的区别:

break用于循环中和switch语句中,结束整个循环

continue只用于循环中,跳过本次循环,进入下一次循环

return在定义方法中使用,在有返回值类型的方法中结束方法和带出返回值,没有返回值类型

的方法中只有结束方法的作用

3 方法的重载

类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样

前提:

如果一个类中的功能的实现,不同的实现方式,需要不同的方法体,可以让这些方法构成方法的重载,就允许方法名字相同,方法使用

一个类中,方法是封装的一种体现,方法的重载就是多态的一种体现

满足的三个条件:

1.同一个类中的多个方法

2.方法名相同

3.参数列表不同 | 方法签名不同

参数的个数不同

参数的类型不同

不同类型的参数顺序不同

方法签名 : 方法名+参数列表,是方法的唯一标识

调用多个重载方法中的某一个:
可以用不同的实参匹配,由实参决定

注意:

方法的重载与方法的修饰符无关
方法的重载与方法的返回值类型无关
方法的重载与方法的参数名字无关
方法的重载只与方法名+参数列表有关

例如:

//求数据的和
public static void getSum(int x,int y){
    System.out.println("两个int整数"+(x+y));
}

public static void getSum(int x,int y,int z){
    System.out.println("三个int整数"+(x+y+z));
}

public static void getSum(double x,double y){
    System.out.println("两个double小数"+(x+y));
}

public static void getSum(double x,double y,double z){
    System.out.println("三个double小数"+(x+y+z));
}

public static void getSum(int x,double y){
    System.out.println("int,double整数、小数"+(x+y));
}
public static void getSum(double x,int y){
    System.out.println("double,int小数、整数"+(x+y));
}

4 方法的递归

A方法调用A方法,也就是自己调用自己

递归头:

停止自己调用自己的条件

递归体:

自己调用自己

临界条件 :

递归头 : 停止自己调用自己的条件

递归前进段 :

不停的自己调用自己的过程

递归后退段 :

当满足临界条件之后,把结果返回给上一层的过程

注意:

递归可以简化结构,合理的地方使用可以让程序变得更简单,但是用不好容易造成内存的溢出,使用要慎重

例:

//求某一个数的阶乘  5!=5*4*3*2*1 ==> 5*4! ==> 5*4*3!
public static int factorial(int i){
	if(i==1){
		return 1;
	}
	return i*factorial(i-1);
}
//通过递归实现某行乘法表的打印
public static void print(int n){
    //临界条件
    if(n==1){
        System.out.println("1*1=1");
        return;
    }
    //打印n-1之前的所有行乘法表
    print(n-1);
    //当前行n的乘法表
    //i就是每一列
    for(int i=1;i<=n;i++){
        System.out.print(i+"*"+n+"="+i*n+"\t");
    }
    //换行
    System.out.println();
}

2 数组

数组是一种存储数据的数据结构。

变量:存储单个数据
数组:存储多个数据

相同类型数据的有序集合

在内存中是一段连续的内存空间

特点:

数组是一种引用数据类型

数组是定长,长度一旦确定不可改变

一个数组中存储相同类型的数据

数组中数据是有序的,通过索引|下标进行管理

数组的长度:

数组名.length;

连续内存空间的个数

索引|下标:

从0开始,每次加1

数组中数据是有序的,通过索引|下标进行管理

第一个索引—>0

最后一个索引—>数组名.length-1

操作数组中的数据:

数组名[索引];

数组的定义

声明
数据类型[] 数组名;		-->>推荐
数据类型 数组名[];
数据类型 []数组名;		-->>不建议使用

数据类型:

规定当前数组中存储数据的类型

可以是任意数据类型(基本|引用)

初始化
1 动态初始化

先创建数组后赋值数据

数据类型[] 数组名 = new 数据类型[长度n];

数组先创建没赋值存储默认值:

整数—> 0

小数—> 0.0

boolean—> false

字符 —> ’ ’ (空字符)

引用数据类型 —> null

2 静态初始化

创建数组的同时赋值

数据类型[] 数组名 = new 数据类型[]{1,2,3,...值n};
数据类型[] 数组名 = {1,2,3,...值n};   --->简略写法

今天就学习了方法的一部分和数组,有什么建议可以评论区留言

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值