day03-重载、递归、数组-2021年10月13日

1、方法的重载

在一个类中有相同的函数名称,但是形参不同

(1)参数类型

(2)参数个数

(3)参数位置

(4)方法名必须相同

(5)参数列表必须不同

2、可变参数

在方法声明中,在指定参数类型后加一个省略号(…)

注意:一个方法中只能指定一个可变参数,他必须是方法的最后一个参数,任何参数需要在他之前声明

3、递归

递归结构包含两个部分:

​ (1)递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。

​ (2)递归体:什么时候需要调用自身方法。

​ (3)能不能尽量不用,存到栈中,占用大量内存

4、数组

(1)相同类型的有序数据

例:

int[] nums = new int[10];

(2)数组如何获取长度

int length = nums.length;

(3)内存分析

堆:用于存放new出来的对象和数组

栈:存放基本变量类型(包含基本变量的值)

​ 引用对象及引用对象的地址值

(4)定义数组的三种形式

//静态初始化
int[] num = {1,2,3,4,5};
//动态初始化,在堆中开辟空间
int[] nums = new int[2];
nums[0] = 1;
nums[1] = 2;
//默认初始化,初始值为0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikxtbJDR-1634114502294)(C:\Users\DELL\Desktop\数组.png)]

(5)数组的四个特点

a.数组的长度是确定。一旦被创建是不能被改变的

b.元素必须是相同类型,不允许是混合类型

c.数组的元素可以是任何类型,包括引用数据类型

d.数组变量属于引用类型,可以堪称是对象,存在于堆内存中

(6)Arrays数组工具类
a. 打印数组

int[] nums = {1,2,3,4};
System.out.println(Arrays.toString(nums));

b. 数组排序—升序

int[] nums = {1,2,3,4};
System.out.println(Arrays.sort(a));

(7)冒泡排序

class test{
    public static void main(String[] args){
        int[] nums = {};
        
    }
    //定义冒泡排序方法
    public static int[] sort(int[] nums){
        //首先定义一个临时tmp用于存储数组
        int[] temp;
        //遍历传过来的数组
        for(int i = 0 ; i < nums.length -1 ; i++){
            boolean flag = flase;
            for(int j = 0; j < nums.length -1 -i ; j++){
                if(nums[j+1] < nums[j]){
                    temp = nums[j+1];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                    flag = true;
                }
            }
            if(flag == false){
                break;
            }
        }
        return nums;
    }
    
}

5、面向对象

(1)方法的定义

        - 修饰符
        - 返回值类型
        - 方法名
        - 参数列表
        - 异常抛出

(2)方法的调用

  • 静态方法
  • 非静态方法
  • 形参和实参
  • 值传递和引用传递
  • this关键字

(3)break和return的区别

return代表一个方法的结束,可以返回空也可以返回各种数据类型

而break需要和switch一起用代表结束循环

(4)不同类想要调用方法,需要先实例化类在进行调用

(5)static:当一个类中有一个静态方法和一个非静态方法,静态方法调用非静态化方法会提示报错,因为静态方法是和类一起进行加载的,而非静态方法是类实例化后才存在的,所以静态方法想要调用非静态方法有两种,第一种:需要把非静态方法修改成静态方法 ;第二种:需要实例化类在调用非静态方法。

(6)对象是具体的事物。类是抽象的是对象的模板

态方法和一个非静态方法,静态方法调用非静态化方法会提示报错,因为静态方法是和类一起进行加载的,而非静态方法是类实例化后才存在的,所以静态方法想要调用非静态方法有两种,第一种:需要把非静态方法修改成静态方法 ;第二种:需要实例化类在调用非静态方法。

(6)对象是具体的事物。类是抽象的是对象的模板

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值