##不知道是不是昨天晚上空调吹得,今天感觉是感冒了!算了,继续码字.
##方法的重载
1-- 是指在一个类里的现象,存在多个同名的方法.但是,参数列表不同(可以个数相同但类型不同,也可以是参数个数不同)
2–为了体现程序的灵活性,对外提供多个同名方法,方便外界使用.
//测试
public class Test2_Overload2 {
public static void main(String[] args) {
//数字求和
add(5,10);//匹配add(int a,int b)
add(1.1,2.2);
}
//add(1,2)
public static void add(int a,int b) {
System.out.println(a+b);
}
//add(1.1,2.2)
public static void add(double a,double b) {
System.out.println(a+b);
}
//add("jack",1,2)
public static void add(String a,int b,int c) {
System.out.println(a+b+c);
}
//add(1,2,"jack")
public static void add(int a,int b,String c) {
System.out.println(a+b+c);
}
}
##数组
1—概念:作用就是用来存储多个数据的容器.类似于水杯.英文名称叫Array.标志是[ ],专门用来存多个,相同类型的数据.
2–特点:
—数据都有下标.
—下标是从0开始的,下标的最大值是数组的长度-1.
—想要获取数组里的数据,存的是啥? --a[0] a[1] a[2].
—数组一旦创建,长度不能改变.
3–创建数组-- 数组类型[] 数组名 = new 数组类型[数组的长度] ;
–动态初始化
– int[] a = new int[5];
–静态初始化
– int[] b = new int[]{1,2,3,4,5};
– int[] c = {1,2,3,4,5};
数组中存入hello
//测试 数组
public class Test3_Array {
public static void main(String[] args) {
//1,创建数组
//静态--char类型的默认值\u0000
char[] a = new char[] {'h','e','l','l','o'} ;
char[] b = {'h','e','l','l','o','e','l','l','o','e',' ','o','e','l','l','o'} ;
System.out.println(a.length);//获取数组长度
System.out.println(b.length);//获取数组长度
//动态
char[] c = new char[5];//都是默认值\u0000
c[0] = 'h' ;//把0下标对应的元素修改为'h'
c[1] = 'e' ;//把1下标对应的元素修改为'e'
//c[2] = 'l' ;//2下标没改,就是默认值本身
c[3] = 'l' ;//把3下标对应的元素修改为'l'
c[4] = 'o' ;//把4下标对应的元素修改为'o'
//TODO 数组里有下标为5的元素吗????? 没有超过下标输出报错
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
数组的遍历/循环 --下标
for(开始位置;判断条件;更改条件){循环体}
for(从下标为0开始 ; 下标的最大值是<=数组的长度-1;下标++ ){循环体}
测试
package cn.tedu.array;
import java.util.Random;
// 测试 数组的练习
public class Test4_Array2 {
public static void main(String[] args) {
//------练习1:输出每个月的天数
// 1,创建数组 -- 动态 / 静态
int[] a = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// 2,遍历数组 -- 用下标
// int i = 0 是指从下标为0的位置开始--i代表下标
//i < a.length 是指下标的最大值可以取到长度-1
//i++ 是指下标的变化规律是依次递增
//for(int i = 0 ; i < a.length ; i++) {
for (int i = 0; i <= a.length - 1; i++) {
//System.out.println( a[i] );//打印
System.out.println( i+1+"月有"+a[i]+"天" );//打印
}
//---------练习2:遍历数组,存入1到10
//创建数组--动态
int[] b = new int[10];
//遍历数组,并存入1-10
for (int i = 0; i < b.length; i++) {
b[i] = i+1 ;
}
//打印数组
for (int i = 0; i < b.length; i++) {
System.out.println( b[i] );
}
//---------练习3:创建随机数组
//创建数组--动态
int[] c = new int[10];
//遍历数组,并存入随机数
for (int i = 0; i < c.length; i++) {
c[i] = new Random().nextInt(100) ;
}
//打印数组
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
}
}
数组工具类Arrays
–1,Arrays.toString(数组)–把数组里的数据,拼接成字符串展示
–2,Arrays.sort(数组)–把数组里的数据进行排序,默认是从小到大
–3,Arrays.copyOf(数组,新的长度)–把原数组进行复制
–4,测试
import java.util.Arrays;
//测试 数组工具类Arrays
public class Test5_Arrays {
public static void main(String[] args) {
int[] a = new int[] {1,2,3,4,5} ;
method(a);//toString()---用来把数组里的数据变成字符串展示
sortArr();//sort()--可以对无序数组进行排序
copyOfArr();//copyOf()---复制数组
}
//copyOf()---复制数组
public static void copyOfArr() {
//准备原数组
double[] a = {1.1,2.2,3.3,4.4,5.5,6.6};
//开始复制--copyOf(m,n)--m是原数组名称--n是新数组的长度
//当 新数组的长度 > 原数组长度时,会扩充新的位置--相当于扩容
double[] b = Arrays.copyOf(a, 10);
//[1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 0.0, 0.0, 0.0, 0.0]
System.out.println( Arrays.toString(b) );
//当 新数组的长度 < 原数组长度时,会截取前面的一部分数据--相当于缩容
double[] c = Arrays.copyOf(a, 4);
//[1.1, 2.2, 3.3, 4.4]
System.out.println( Arrays.toString(c) );
}
//sort()--可以对无序数组进行排序
public static void sortArr() {
//创建乱序数组
int[] a = {9,12,3,7,10};
//排序
Arrays.sort(a);
//打印数组
System.out.println(a);//数组在内存中的地址值--[I@15db9742
System.out.println( Arrays.toString(a) );//[3, 7, 9, 10, 12]
}
//toString()---用来把数组里的数据变成字符串展示
public static void method(int[] arr) {
//打印数组里的数据
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }
// String arrs = Arrays.toString(arr);
// System.out.println(arrs);//[1, 2, 3, 4, 5]
//1,toString()---用来把数组里的数据变成字符串展示
System.out.println( Arrays.toString(arr) );//[1, 2, 3, 4, 5]
}
}