JAVA---04

第四天

1. Java 方法

  1. 什么是方法

    方法是语句的集合,它们在一起执行一个功能

    方法是解决一类问题的步骤的有序组合

    方法包含于对象

    方法在程序中被创建,在其他地方被引用

  1. 方法的设计原则:

    方法的本意是功能块,就是实现某个功能的语句块的集合。

    我们设计方法的时候,最好保持方法的原子性就是一个方法只完成一个功能),这样利于我们后期的拓展

  2. 命名规则:驼峰

  3. 写法:

    [修饰符] 返回值类型 方法名([参数 类型   参数名],[参数 类型   参数名], ... ){

    //方法体;

    }

    /*1.修饰符:是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型
     2.返回值类型:方法可能会有返回值,returnValueTrue是方法返回值的数据类型。无返回值时用void
     3.方法名:是方法的实际名称。方法名和参数名共同构成方法签名
     4.参数类型:是可选的,参数像是一个-——占位符。当被方法调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。
    认识:实参 和 形参。
     5.方法体:方法体包含具体的语句,定义该方法的功能。
    */
  4. 方法的调用

    调用方法:对象名.方法名(实参列表)

    Java支持两种调用方法的方式,根据方法是否有返回值来选择

    • 当方法返回一个值的,方法调用通常被当做一个值

    • 如果方法返回值是void,方法调用一定是一条语句

  5. 方法重载

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

    • 方法的重载规则:

      • 方法名称必须相同

      • 参数列表必须不同(个数不同,或类型不同,参数排列顺序不同等)。

      • 方法的返回类型可以相同也可以不相同

      • 仅仅返回类型不同不足以成为方法的重载

     

    简单来说就是:方法名一样,参数列表不同

    实现理论:方法名称相同时,编译器会根据调用方法的参数个数参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器会报错。

     

2.命令行传参

  1. 有时候你希望运行一个程序时候再传递给它信息。这要靠传递命令行参数给main()函数实现。

     

     

     

 

3.可变参数

  • 在JDK1.5开始,Java支持传递同类型的可变参数给一个方法

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

  • 一个方法只能指定一个可变参数,他必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

    public void int (int x,int... y){
       //方法体
    }

     

 

 

4.递归

  自己调用自己

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

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

  注:边界条件、前阶段、返回阶段

  基数小的时候使用,能不用就不用

  理解递归的思想

 

5.数组

  1. 数组的定义:

    • 数组是相同类型数据有序集合

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

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

  2. 创建一个数组

    首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法
    dataType[] arrayRefVar; //首选方法

    dataType arrayRefVar[]; //效果相同,但不是首选方法

    Java语言使用new操作符来创建数组,语法如下
    dataType[] arrayRefVar = new dataType[arraySize];


    //方法一:
    int[] a; //定义一个数组
    a = new int [10]; //创建一个数组

       
    //方法二:
    int[] b = new int [10];

     

  3. 三种初始化

    • 静态初始化:创建+赋值

      int[] a={1,2,3};

      Man[] mans = {new Man(1,1),new Man(2,2)};//引用类型的数组
    • 动态初始化:包含了默认初始化

      int a = new int [2];
      a[0]=1;
      a[1]=2'
    • 数组的默认初始化:int型初始值为0,浮点型初始值为0.0,字符型初始化为null

      数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化

  4. 数组的四个基本特点

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

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

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

    • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量

      数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型数组对象本身是在中的

  5. 数组的使用

    • for-Each增强for循环

    int[] a = new a[10];
    for(int x : a){
       System.out.println(x);
    }
    //IDEA中快捷方法:   数组名.for
    • 普通for循环

    • 数组作为方法入参

    • 数组作返回值

     

6.多维数组

  1. 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每个元素都是一个一维数组。

  2. 二维数组

    int a[][] new int[2][3];//可以看成两行五列的数组等

在 Java中二维数组就完全够用了,因为Java是面向对象变成,我们需要把一个个东西,变成一个个对象

 

7.稀疏数组(一种数据结构)

  

  1. 当一个数组中大部分元素为0,或者为同一值得数组时,可以使用稀疏数组来保存该数组

  2. 稀疏数组的处理方法是:

    • 记录数组一共几行几列,有多少个不同的值

    • 把具有不同值元素行列记录在一个小规模的数组中,从而缩小程序的规模。

    • 如:

      •   

         

         

         

  3. 二维数组和稀疏数组的比较

    二维数组:

        

 

 

    稀疏数组:

        

 

         

 

 

思考:把稀疏数组再还原回去

 

Java的内存

  堆:存放new的对象和数组

  可以被所有的线程共享,不会存放别的对象引用

  栈:存放基本变量类型(会包含这个基本类型的具体数值)

  引用对象的变量(会存放这个引用在堆里面的具体地址)

  方法区:可以被所有的线程共享

  包含了所有的class和static变量

  等:

  

 

 

补充

  1. 方法也就是其他语言里边的函数

  2. return 0; 或 return; //终止方法

  3. Java中都是值传递

  4. JDK1.5以后,支持 可变参数

  5. 注意C语言中数组的定义和Java中数组的定义不同

    • C语言:int a[];

    • Java语言:int[] a; //首选,也可以写int a[]; 但是不推荐

  6. 获取数组长度:arrays.length

  7. IDEA中for-Each增强for循环的快捷方法:数组名.for

  8. 熟悉Arrays类

  9. 学习一下八大排序方法

  10. 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为n^2

posted @   qwer787  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示