数组与方法

一. 数组

1.数组定义: 用来一次性保存多个相同类型元素的这样一种数据结构.

2.维度上分:

一维数组,多维数组.

一维数组:

3.声明:
类型 [] 数组变量名称
int [] arr;
或者
int arr[];
俩种形式都可以,而且没有任何的区别,不过建议我们采取第一种方式.

阶段性关键字总结:public,class,static,void,int,boolean,char,byte,long,short,double,float,final.

4.初始化:

动态初始化:
我们在定义一个数组和对数组进行赋值的操作,我们分开来执行。


静态初始化:
我们在定义一个数组的同时,进行数组的初始化

//动态初始化
int [] arr = new int[3];

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

//静态初始化
int []arr1 = new int[]{1,2,3};
int []arr2 = {1,2,3,4};

new:
用来初始化一个对象。

数组里面注意事项:
a. 数组长度一旦指定,是永远不可以改变的。
b. 数组保存的元素类型一旦指定,也是不可以改变,并且只能保存该类型的元素

5.length:
int a[] = new in[3];
int size = a.length;

6.数组元素的访问
arr[index]: index表示数组元素的索引,注意索引是从0到length-1.
arr[1]:访问第二个元素

index: 可以是常量,也可以是表达式。



 数组特性: 
         a. 长度一旦制定,长度就无法改变
 b. 定义的时候指定的类型,那么数组始终只能保存该类型的元素


数组来说,如果初始化一个数组,但是并没有保存任何的值,那么数组中会存放一些默认的值:
byte,short,int,long: 0
float,double:0.0
boolean: false
char: ''

数组对象中有一个变量length,能够让我们拿到数组的长度.


public class ArrayDemo2{

public static void main(String[] args){
int[] arr = new int[5];

for(int i=0;i<5;i++){
arr[i]=i+1;
}

for(int i=arr.length-1;i>=0;i--){
System.out.println(arr[i]);
}
}
}


public class ArrayDemo1{
public static void main(String[] args){
//静态初始化
int [] arr = {1,2,3,4,5,6,7,8,9,10};
int sum = 0;
int sumAll = 0;
double average = 0.0;
//8是最后一次循环可执行的条件,9是不可以进入循环
for(int i=0;i<arr.length-1;i++){
   sumAll += arr[i];
sum+=(arr[i]-arr[i+1]);
}
sumAll += arr[arr.length-1];
average = 1.0*sumAll/arr.length;

System.out.println(average);
System.out.println(sum);
System.out.println(sumAll);
}
}

选择排序:
      选择特定的数,之后进行交换.
 特定得数: 小的数
 
 交换:
 int a0 = arr[0];
 a[0] = a[2];
 a[2] = a0;
 
 算法:
 从左至右,依次比较当前的数和后面的数的大小关系,如果满足我们的排序条件,那么保持不变,否则做一个交换操作
*/

public class ArrayDemo2{
public static void main(String[] args){
int[] arr = {3,4,1,7,4,4,9,1,2};
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]<arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}

二维数组的遍历输出:

*/
import java.util.Arrays;

public class ArrayDemo5{
public static void main(String[] args){
int[][] arr= new int[][]{{1,2,3},{3,4,5},{5,6,2}};
int[][][] arr1= new int[][][]{{1,2,3},{3,4,5},{5,6,2}};
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.println(arr[i][j]);
}
}
}
}

二. 方法

定义: 实现一个功能的代码片段的封装。

[修饰符...] 返回值类型 方法名称(形参的列表){
//方法中实现的逻辑
}

形参列表: 方法接收外部传入的数据的接收媒介.
返回值: 方法执行结束之后,返回的值的类型。
如果方法不需要返回任何的值,那么我们的方法返回类型写作void.
在方法里返回一个值,需要用到 return. 

形参列表:
当我们定义了一个方法之后,去调用方法的时候,一定要注意我们传递给方法的入参的类型和数量,一定要一一对应。

唯一确定一个方法:
关注点:
a.方法名是否一致
b.形参列表的所有参数类型和数量是否一致。 对于形参变量的命名,完全是没有关系的.
c.返回值的类型
  可以是基本类型,也可以是引用类型。

public class MethodDemo{
public static void main(String[] args){
//用一个变量来保存方法的返回值,如果不保存方法的返回值,则方法的返回值会放到一个临时的空间,并且方法执行结束之后,内存空间就释放。
String myHero = choiceHero(1);
System.out.println("选择的英雄是:"+ myHero);
int power = hitPower(1);
int hp = getMonsterHP();
int hitTimes=0;
while(hp>0){
hitTimes++;
hp-=power;
}
System.out.println("攻击了"+hitTimes+"次,将怪物击倒");
}

public static String choiceHero(int a){
String hero;
switch(a){
case 1:
hero = "batMan";
break;
case 2:
hero = "spiderMan";
break;
case 3:
hero = "IronMan";
break;
default:
hero = "lotus sister";
}
return hero;
}

public static int hitPower(int a){
if(a==1||a==2||a==3){
return 3;
}
return 10;
}

public static int getMonsterHP(){
return 100;
}


}
  
注意:

a.一旦明确指定了方法的返回类型(非void),那么一定要保证最终方法可以成功的返回我们对应的返回类型的数据.
b.关于void返回类型
如果我们不主动的添加return语句,在执行的时候,也会帮我们自动添加return.我们在实现void类型的方法的时候,主动添加一个
return也是没有问题。 

public class MethodDemo1{

public static void main(String[] args){
}

public static void testVoid(){
while(true){
break;
}
int i = 0;
int b = 3;
}

public static int testReturn(){

int i = 0;
int j = 2;
if(i==0){
if(j>1){
return 1;
}
}else{
return 2;
}

return 4;
}
}


java预编译的特点.

方法参数的传递:

方法参数的传递来说,基本类型传递的是值。对于引用类型,传递的是引用.(传递的是地址)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值