java的方法以及数组

方法:

java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:

public 返回值类型 方法名(形式参数列表){
      java语句;
}


1.形式参数:在方法被调用时用于接收外界输入的数据。
2.实参:调用方法时实际传给方法的数据
3.返回值:方法在执行完毕后返还给调用它的环境的数据。
4.返回值类型:事先约定的返回值的数据类型,必须给出返回值类型void

java语言中使用下述形式调用方法:对象名.方法名(实参列表)
实参的数目,数据类型和次序必须和所调用方法声明的形参列表匹配
return语句终止方法的运行并指定要返回的数据类型

java中进行函数调用中传递参数时,遵循值传递原则:
基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身

方法重载:
方法重载:就是方法名相同,方法参数的个数和类型不同,通过个数和类型的不同来区分不同的函数。
注意:返回值的类型不同不能说成是方法的重载。

方法重载跟返回值类型和修饰符无关 Java的重载 是发生在本类中的,重载的条件是在本类中有多个方法名相同,但参数列表不同(可能是,参数个数不同,参数类型不同),跟返回值无关。 我们可以举
个例子,假如我们在同一个类中,写了两个方法名相同并且参数列表也相同,只是返回值不同,public Stringshow(int number) public int show(int number) 而我们调用这个方法给它赋值的时候
java虚拟机并不知道你要赋给的是String型的方法还是int型的方法,所以重载跟返回值无关。

数组概述:

数组可以看做多个相同数据类型的数据集合,对这些数据统一的管理

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

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


一维数组的声明

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

数组初始化

动态数组初始化:
数组定义与数组元素分配空间和赋值的操作分开进行,例如:


数组元素的默认初始化:

数组是引用数据类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化如:

输出结果:0
         null

数组元素的引用:
定义并用运算符new为之分配空间后,才可以引用数组中的每个元素
数组元素的引用方式为:

arr[index]; //index为数组下标
例如:
a[1];a[0];a[4];
数组的元素下标从0开始;长度为n的数组的合法下标取值范围为0到n-1

每个数组都用一个属性length指明它的长度例如:
arr.length的值为数组arr的长度(元素个数);

排序:

排序的不同算法
1.冒泡排序法:

2.选择排序法:


二维数组:

二维数组可以看成以数组为元素的数组例如:
int arr[][] = {{1,2},{3,4}};
java中多维数组的声明和初始化应按从高维到低维的顺序进行例如:

int a[][] = new int[3][];
a[0] = new int [2];
a[1] = new int [4];
a[2] = new int [3];
int t1[][] = new int [][4];//非法


二维数组初始化:

静态初始化:

   int arr[][] ={{1,2},{3,4},{5,6}};
动态初始化:
   int a[][] = new int[3][5];
   int b[][] = new int[3][];
   b[0] = new int[2];
   b[1] = new int[3];
   b[2] = new int[5];


补充点:

可变参数:
public static void fun(int...arr){
      for(int i = 0;i<arr.length;i++){
            System.out.println(i);
      }
}
可变参数:可以传多个同类型的值并以数组形式存储

foreach输出:
public static void fun(int...arr){
      for(int i:arr){
            System.out.println(i);
      }
}
foreach输出:可以直接输出数组中的所有值


利用主函数的参数输入:
使用输入流:
    先用引包:
       import java.util.*
    然后如下操作:
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();

下一章讲java的面向对象


练习题:
1.完成多个排序程序(不同算法)。
2.求1到100之间的素数。
3.求1!+2!+...+8!的和。
4.题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在    
第10次落地时,共经过多少米?第10次反弹多高?
5.题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值