(方法,数组)2020.10.16

方法

概念:
   1.定义在类中, 完成一个特性的功能。
   2.当某些功能语句,在不同的地方需要重复使用时,可以将这些代码提取出,使用大括号包裹起来,为了方便使用,定义一个名字,哪需要使用这段代码,
   通过该名字即可。
   好处:
      1.提高了代码的复用性
      2.代码的封装性
格式:
    修饰符  返回值类型  方法名(参数列表){
       方法体语句;
       return 返回值;
}
说明:
  修饰符: public  static  或 static	
  返回值类型: 数据类型(基本类型或引用类型)
               功能执行后,产出的数据的数据类型。
  方法名: 合法的标识符,即自己定义的名字(见名知意)
           格式: xxx   xxxYyyZzz
  参数列表: 列表个数>= 0,参数指的是变量的声明(数据类型 变量名),多个参数使用逗
             号进行分隔开。当编写功能时,如果需要外界资源数据辅助完成功能的编写,
             即需要使用参数列表存储这些资源数据。
  方法体语句: 编写功能的语句,1到多条。
  return: 
       返回的意思。
       作用: 
            1. 将功能执行后的结果进行返回
            2. 结束方法
 注意:
1.方法不调用不执行。
2.定义的方法包括main方法在内,都没有顺序之分,都是平级的。
 方法不能嵌套编写。
 调用方法的格式:
     方法名(实际参数);   实际参数---实参   注意:形参顺序决定了实参的顺序
     具体返回值类型时:
         1.直接输出打印(方法名(实际参数));
         2.定义变量接收方法执行后返回的结果数据 
              返回值类型 变量名 = 方法名(实际参数);

当编写方法时,发现方法执行完没有一个具体的数值产生,而是将数据直接输出打印到控制
台上,那么返回值类型使用关键字void来代替,在方法体中,return后就没有返回值数据,
因此直接写return;即可。这样的方法在调用时,直接使用格式:方法名(实参);即可。
eg:
    public  static  void  method(int a){
        ...
        return;
}
调用:method(10);
        方法体中的return后边没有数据数据,通常这个语句可以省略不写,编译器会自动补。

方法的重载

概念:
  在一个类中,允许功能相似的方法,使用相同的方法名,只要参数列表不同即可。
  参数列表不同:
    参数个数不同、 参数类型不同、参数顺序不同
  注意:与返回值类型没有关系

  当调用重载方法时,jvm会根据实际参数列表的个数及类型自动匹配对应的方法执行。
  目前我们使用的println或print方法都是重载方法。

数组

引用类型: 数组、 类、接口、枚举
概念:
   相当于是容器,可以存储一组数据。
   数组中存储的数据,称之为叫做元素。
特点:
   1.是一组相同类型的数据
   2.数据是基本类型可以,引用类型也可以
   3.容器中的数据都有下标(角标),通过下表可以操作数组中的数据,下标值是从0开始
   4.容器的大小是固定的,不可改变
   5.获取元素个数:数组名.length
     获取元素最大下标值:数组名.length-1
创建:
   动态创建:
元素类型[]   数组名  =   new  元素类型[个数];
   静态创建:
元素类型[]   数组名 = new 元素类型[]{e1,e2,e3,...};
简写格式:元素类型[]   数组名 =  {e1,e2,e3,...};
 注意:代表数组的[],可以放在元素类型的后边,或数组名的后边
异常:
   操作数组时,最容易出现的异常。

在这里插入图片描述

   以上的异常是:下标越界异常。
   原因:访问了不存在的下标。

在这里插入图片描述

  以上的异常是:空指针异常
  原因:引用变量(数组名)并没有代表一个真实存在的数组容器(数组容器根本就不存在)时,而有想要取操作容器中的数据时。 
数组的应用:
   1.遍历数组元素
   2.数组元素的求和
   3.数组元素的反转
   4.数组元素的查找
   5.数组元素的排序 

数组的内存理解

jvm执行程序的时候,会将内存划分5个区别,不同的区域做不同的处理(目的提高执行效率)。
5片内存空间:
 :使用来执行方法的。特点:先进后出。
 :存储容器或实体(new关键字出现)
  特点:
   1.会为其分配地制值
   2.在该空间中,根据空间元素的数据类型,存储默认值
    基本类型:
     整数:0 ; 浮点:0.0f ; 0.0 ; 字符:‘\u0000’;布尔:false
     引用类型:  null;
   3.在堆中的容器,没有被任何引用变量所指向,那么这个容器就是垃圾。
   在Java中有一个机制,垃圾回收机制(GC)会不定时启动,回收堆中的垃圾。
   如何让容器成为垃圾,即让容器原来引用的引用变量值为null
 方法区:存储class对象,常量、静态代码等。
 本地方法区:指的就是c或c++中的代码(底层代码)
 程序控制器:指的就是控制程序执行哪行代码的。
int[] arr = new int[3];
s.o.p(arr);
结果: [I@15db9742
[ : 代表的是几维数组
I : 元素的类型
@ : 固定的字符
15db9742 :十六进制数,哈希码值。在堆中开辟空间的容器,都会有一个哈希值。
方法传参:
 值传递:指的是基本数据类型的数据进行传递,对原来的变量没有影响(栈)
 引用传递:指的是引用类型的数据进行传递,对原来的变量有影响(堆和栈)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值