Javase(day06:方法和数组)

1、方法

  • 定义:方法就是定义在类中的具有特定功能的一段独立小程序,用来完成功能操作
  • 好处:提高代码复用性,也提高了代码的可读性
  • 注释:对方法进行注释,要使用”文档注释“,并且合理的使用”快标记“
/**
* 两数相加
* @param num1 操作数1
* @param num2 操作数2
* @return 返回相加结果
*/public static int add(int num1,int num2){
    int sum = num1 + num2;
    return sum;
}


  • 语法:

[修饰符] 返回值类型 方法名(形参列表){
方法体;
return 返回值;
}

  • 注意点:
    1、如果方法体中没有返回值,那么返回值类型必须是void
    2、方法名要符合”标识符“的命名规则,”小驼峰“的命名规范
    3、形参列表是由多个形参构成,形参与形参之间使用”,“分隔
    4、return的作用:1)结束当前方法 2)结束方法时,还能返回一个数据

2、方法的声明和调用

  • 方法声明的位置:必须在类中,并且在方法体和代码块之外
  • 方法调用的语法:
    1、暂时学习到的方法都是使用”public static“修饰的,所以直接在本类中使用”方法名(实参列表)“进行调用
    2、在进行方法调用时,要注意:
    1)形参和实参要相对应,也就是说,每一个实参的顺序,数据类型都要和形参相对应,并且实参个数必须等于形参个数。
    2)如果没有返回值,我们在调用方法的时候,一定不要接收返回结果
  • 调用方法时的内存分析
    1、栈内存的特点:”先进后出“或”后进先出“
    2、调用方法时的特点:当方法调用时,虚拟机会在栈内存中开辟一块区域(栈帧),用于执行该方法中的代码
    3、方法结束时的特点:当方法中执行到return关键字时,就会执行弹栈操作,也就是开辟的栈帧会被销毁
  • 方法使用的原则:和变量一样,都必须先声明后使用
    图例:

3、方法的重载

  • 定义:在同一个类中,具有相同方法名,但参数列表不同的方法,构成方法重载
    核心:两同两不同
    两同:同一个类;相同方法名
    两不同:参数类型或参数个数不相同
  • 方法重载的特点(哪些情况不构成重载)
    1、返回值类型不同
    2、形参名字不同
    3、修饰符不同
  • 好处:方法重载的出现,使同一个类中可以定义多个同名的方法,避免了方法名污染(也就是方便命名,名字太多了也不好管理)
  • 调用特点:调用重载的方法时,会根据形参的个数和类型来匹配对应的方法

4、数组(一种数据结构,属于引用数据类型)

  • 定义:可以存储多个”相同数据类型“的”有序“集合
  • 数组的声明语法:
    第一种方式:数据类型[] 数组名
    第二种方式:数据类型 数组名[]
    建议使用第一种方式声明,”数据类型[]“是数组类型,结构清晰,便于理解
  • 数组的创建:
    第一种方式:动态的创建数组
    语法:数据类型[] 数组名 = new 数据类型[数组长度];
    第二种方式:静态的创建数组
    语法:1、数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,.....}
    2、数据类型[] 数组名 ={元素1,元素2,元素3,.....}
    注意:直接通过大括号创建的数组,不能作为实参和返回值
//以下写法错误

add( {11, 22} );

return {11, 22};
  • 如何操作数组中的元素:使用”索引值“找到对应元素存储的位置,然后对该元素进行操作
  • 数组的注意事项:
    1、数组中存放的元素为相同数据类型,所以每个元素存储的空间大小是固定的,并且数组是有序的,所以可以通过每个元素存储的空间大小和索引值来计算查找元素
    2、创建数组是必须指定数组的长度,数组创建后,长度不能改变,想要扩容,只能将数组进行拷贝操作
    3、声明数组时,可以使用基本数据类型,也可以使用引用数据类型
    4、通过索引查找元素时,需要注意数组的范围在[0, 数组长度-1],超出该范围,就会报数组下标越界异常
  • 数组元素的默认值
    当使用动态的创建数组时,没有给数组中存放元素,这时数组中的元素会有默认值
    1、byte,short,int,long类型的数组元素默认值为0
    2、float,double类型的数组元素默认值为0.0
    3、boolean类型的数组元素默认值为false
    4、char类型的数组元素默认值为'u\0000',也就是空格
    5、引用数据类型数组元素默认值为null
  • 数组的常见属性:length,使用该属性,可以动态的获取数组的长度

5、数组的遍历

  • 第一种方式:普通for循环
    语法:
for (int i = 0; i < scores.length; i++) {
    System.out.println(scores[i]);
}

优点:在遍历过程中,可以根据索引值来对数组中的元素进行操作
注意:在开发中,建议不要在循环中使用length属性来确定数组长度,因为每次循环都要判断一下length的长度,效率很低,可以在循环之前定义一个变量来存储length的值

  • 第二种方式:增强for循环
    语法:
for (double score : scores) {
    System.out.println(score);
}

优点:语法简洁,效率较高

6、栈内存和堆内存

  • 栈内存
    存储局部变量:
    1、当数据类型为基本数据类型时,局部变量保存的是”数据值“
    2、当数据类型为引用数据类型时,局部变量保存的是”地址值“
  • 栈内存特点:
    1、”先进后出“或”后进先出“
    2、栈内存是连续的存储空间,由虚拟机分配,效率高
    3、栈内存由虚拟机分配,无需程序员操作
    4、虚拟机会为每个线程分配一块栈内存,用于执行该线程中的方法
  • 堆内存
    存储new出来的对象和数组(数组也是对象)
  • 堆内存的特点:
    1、堆内存是不连续的存储空间,分配灵活但效率低
    2、堆内存本质是需要程序员进行操作的,但在Java语言中有”垃圾回收机制“来帮忙进行管理
    3、虚拟机只有一个堆内存,被所有线程共享

7、数组的存储结构

图例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值