方法的重载
- 在同一个类中,定义了多个同名的方法,这些同名方法名具有同样的功能
- 每个方法具有不同的参数类型或者参数个数,这些同名的方法就构成了重载关系。
简记:同一个类中,方法名相同,参数不同的方法。与返回值无关
参数不同:个数不同、类型不同、顺序不同
判断下列方法是否构成重载关系
- 第一个:与返回值无关,所以不构成
- 第二个:构成,参数个数不同
- 第三个:不构成 ,因为不在同一个类中
- 第四个:构成,参数类型不同
联系:
遍历数组{1,2,3,4,5,6}输出为[1,2,3,4,5,6]
public class Test1 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
getArr(arr);
}
public static void getArr(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i== arr.length-1){
System.out.print(arr[i]);
}else
System.out.print(arr[i]+", ");
}
System.out.print("]");
}
}
练习2:
设计一个方法求数组的最大值,并将最大值返回
public static void main(String[] args) {
int[] arr = {3524, 42, 432, 134, 43, 13, 41};
int x = getMax(arr);
System.out.println(x);
}
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > arr[0]) {
max = arr[i];
}
}
return max;
}
}
练习3:
判断一个数是否在数组里面 将结果返回给调用处
public static void main(String[] args) {
int[] arr = {3524, 42, 432, 134, 43, 13, 41};
System.out.println(exit(42,arr));
}
public static boolean exit(int a ,int[] arr){
for (int i : arr) {
if (a==i){
return true;
}
}
return false;
}
return 和break的区别
return:其实和循环没什么关系,他是跟方法有关的 有两个作用:表示结束方法和返回结果
如果方法执行到了return,那么整个方法结束,里面的循环也就随之结束了。
break:break和方法没什么关系,他是和循环有关系,表示结束循环或者switch的。
java的内存分配:
- 栈: 方法运行时使用的内存,方法进栈运行,运行完毕就出栈。
- 堆:new出来的,都在堆内存中开辟了一个小空间
基本数据类型:int、String,boolen等
引用数据类型:除了上面的基本都是,比如数组、时间(Date)(一般都是带new)
引用数据类型是在堆内存中开辟了一个新的空间,真实数据存在堆内存中,该数据类型存放的是堆内存中的值得地址。。传递引用数据类型时,传递的是地址值,形参的改变影响实际的参数。
总结:基本数据类型中存放的是真实数据
引用类型数据存放的是地址值(引用是使用了其他空间的值)