慢慢懂的第四篇blog

Java day04

方法的重载

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

重载的规则

  1. 方法名称必须相同
  2. 参数列表不同(个数不同,类型不同或者参数排列不同)
  3. 方法的返回类型可以相同也可以不同
  4. 仅返回值不同不能组成方法的重载

实现理论

  • 方法名称相同时,编译器会根据调研的方法的参数个数,参数类型等逐个匹配以选择对应的方法,如果匹配失败,则编译器报错
public class Main {
    public static void main(String[] args) {
        int max=max(10,10);
        System.out.println(max);
    }
    public static int max(int a,int b)
    {
        if(a>b)return a;
        else if(a<b)return b;
        else {System.out.println("两数相等");return 0;}
    }
    public static double max(double a,double b)
    {
        if(a>b)return a;
        else if(a<b)return b;
        else {System.out.println("两数相等");return 0;}
    }
    }

可变参数

  • Java1.5开始,Java支持传递同类型的可变参数给一个方法
  • 在方法声明中,在指定参数类型之后加上一个省略号(…)
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明

public class Main {
    public static void main(String[] args) {
        PrintMax(34,3,3,2,56.5);
        PrintMax(new double[]{1,2,3});
    }
    public static void PrintMax(double ...numbers)
    {
        if(numbers.length==0)
        { System.out.println("No arguement passed");
        return;}
        double result  = numbers[0];
        //排序
        for (int i = 0; i < numbers.length; i++) {
            if(numbers[i]>result)result=numbers[i];

        }
        System.out.println("The max value is "+result);
    }
    }

输出结果是

在这里插入图片描述

递归

  • 递归就是A方法调用A方法,自己调用自己

  • 利用递归可以用简单的程序来解决一些复杂的问题。 它通常把一个大型复杂的问题层层转化为-个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

    ◆递归结构包括两个部分:

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

    ◆递归体:什么时候需要调用自身方法。

import java.util.Scanner;
public class Demon01 {
    //阶乘
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = factory(a);
        System.out.println(b);

    }
    public static int factory(int a)
    {
        if(a==1)return 1;
        else return a*factory(a-1);
    }
    }

输出结果

在这里插入图片描述

数组

数组的定义

◆数组是相同类型数据的有序集合.

◆数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。

◆其中,每一个数据称作-个数组元素, 每个数组元素可以通过-个下标来访问它们.

数组的声明
  • 必须声明数组变量,才能在程序中使用数组。

    声明语法:

    //变量类型   变量名  = 变量的值
    //数组类型 
          int[] nums1;//首选,定义,声明一个数组
          int nums2[];
    
  • Java语言中使用new操作字符来创建数组

nums = new int[10];//创建一个数组
  • 数组的元素都是通过索引访问的,数组索引从0开始
  • 获取数组长度
nums.length

内存分析

在这里插入图片描述

数组越界:java.lang.ArrayIndexOutOfBoundsException

三种初始化

静态初始化
int[] a={1,2,3};
动态初始化
int[] a =new int[2];
a[0]=1;a[1]=2;
数组的默认初始化
  • 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也会被按照实例变量同样的方式被隐式初始化

数组的四个基本特征

◆其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

◆其元素必须是相同类型,不允许出现混合类型。

◆数组中的元素可以是任何数据类型,包括基本类型和引用类型。

◆数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

数组边界:[0,a.length-1]

数组的使用

For-Each 循环
import java.util.Scanner;
public class Demon01 {
    public static void main(String[] args) {
        int[] num = new int[10];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < num.length; i++) {
            num[i]=sc.nextInt();
        }
        for (int i : num) {
            System.out.print(+i+" ");
        }
        System.out.println();
        sc.close();
    }
数组作为方法入参&数组作为返回值
public class Demon01 {
    public static void main(String[] args) {
        int[] num = new int[10];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < num.length; i++) {
            num[i]=sc.nextInt();
        }
        reverse(num);
        sc.close();
    }
      public static int[] reverse(int[] array){
        int[] result = new  int[array.length];
        for (int i = 0,j=array.length-1; i < array.length; i++,j--) {
            result[j]=array[i];//逆序输出数组
        }
        return  result;
    }
    }

好,睡觉

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 《C语言程序设计(第四版)》是一本权威经典的教材,已经成为许多程序设计初学者的必读书籍。如今,随着网络技术的快速发展,我们可以通过在线观看方式来学习它。这种方式不仅方便快捷,而且节省了买书的时间和费用。 在线观看《C语言程序设计(第四版)》可以选择各种平台,例如B站、CSDN、书籍网站等。通过这些平台,学习者可以轻松地找到自己需要的章节,并且观看视频、阅读文档等。这对于那些没有购买实体书籍条件的学生来说是非常有用的。 通过在线观看,学习者不仅可以初步了解C语言的基本概念和语法结构,以及如何编写简单的程序,而且还能学习到更多高级知识,例如指针、数组、结构体、文件操作等。这些知识都是非常重要的,可以帮助学生更好地理解计算机程序设计的本质和精髓。 需要注意的是,虽然在线观看可以提供很好的学习资源,但它并不能替代实体书籍。纸质书籍可以更好地帮助学习者形成系统的知识结构和思维模式,慢慢地提高自己的编程能力。因此,学习者可以结合两种方式来学习,《C语言程序设计(第四版)》也可以同时购买实体书籍和在线观看视频。这样可以更好地巩固知识,提高自己的学习效率。 ### 回答2: 《C语言程序设计(第四版)》是一本非常经典的计算机科学书籍,它介绍了C语言的各种基本语法和编程技巧,是许多初学者和专业程序员必备的工具书。现在,我们可以通过网络在线观看这本书的全部内容,从而更加方便地学习和掌握C语言。 在这本书中,作者详细介绍了C语言的各种语法和结构,例如变量、数组、指针、结构体等。通过阅读这本书,读者可以逐步掌握C语言的编程思想和方法,从而可以更加自如地编写C语言程序。此外,该书还涵盖了很多实用的应用场景,例如文件操作、网络编程等,使得读者可以直接将所学应用到实际的项目中。 在线观看《C语言程序设计(第四版)》的优点在于,任何人都可以轻松访问该书的内容,而且无需购买纸质版或电子版。此外,该书的在线版本还提供了便捷的搜索和笔记功能,方便读者进行有效的学习和知识整理。总之,这是一本非常优秀和便捷的C语言教材,对于所有对学习C语言感兴趣的人士都是绝佳的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值