Java day4
一. 数组
1.数组定义: 用来一次性保存多个相同类型元素的这样一种数据结构.
2.维度上分:
一维数组,多维数组.
3.声明:
类型 [] 数组变量名称
int [] arr;
或者
int arr[];
两种形式都可以,而且没有任何的区别,不过建议我们采取第一种方式.
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: 可以是常量,也可以是表达式。
1,2,3,4,5,6
for(inti=0;i<arr.length-1;i++){
arr[i] - arr[i+1];
}
二维数组:
声明:
类型 [][] 数组名称;
int [][] arr;
初始化:
a.动态初始化
int [][]arr = new int[3][];
b.静态初始化
int [][]arr ={{1,2,3},{2,3,4,5}};
length:
这个属性拿到二维数组的长度。
二. 方法
定义: 实现一个功能的代码片段的封装。
[修饰符...] 返回值类型 方法名称(形参的列表){
//方法中实现的逻辑
}
形参列表: 方法接收外部传入的数据的接收媒介。
返回值: 方法执行结束之后,返回的值的类型。
如果方法不需要返回任何的值,那么我们的方法返回类型写作void。
在方法里返回一个值,需要用到 return。
形参列表:当我们定义了一个方法之后,去调用方法的时候,一定要注意我们传递给方法的入参的类型和数量,一定要一一对应。
唯一确定一个方法:
关注点:
a.方法名是否一致
b.形参列表的所有参数类型和数量是否一致。 对于形参变量的命名,完全是没有关系的.
c.返回值的类型
可以是基本类型,也可以是引用类型。
注意:
a.一旦明确指定了方法的返回类型(非void),那么一定要保证最终方法可以成功的返回我们对应的返回类型的数据。
b.关于void返回类型
如果我们不主动的添加return语句,在执行的时候,也会帮我们自动添加return.我们在实现void类型的方法的时候,主动添加一个return也是没有问题。
Java有预编译的特点。
方法参数的传递:
方法参数的传递来说,基本类型传递的是值。对于引用类型,传递的是引用.(传递的是地址)。
例子
数组代码
例1:
public class ArrayDemo3{
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);
}
}
例2:
/*
选择排序:
选择特定的数,之后进行交换.
特定得数: 小的数
交换:
int a0 = arr[0];
a[0] = a[2];
a[2] = a0;
算法:
从左至右,依次比较当前的数和后面的数的大小关系,如果满足我们的排序条件,那么保持不变,否则做一个交换操作
*/
public class ArrayDemo4{
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]);
}
}
}
例3:
public class ArrayDemo5{
public static voidmain(String[] args){
int[][] arr= 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.print(arr[i][j]);
}System.out.println("");
}
}
方法
例1:
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;
}
}