二维数组
给数组加一个[],就得到了二位数组
再加一个[],就成了三维数组
public class ArrayTest1
{
public static void main(String[] args)
{
//数据类型[] 变量名 = new 数据类型[length];
//数据类型[] 变量名 = new 数据类型[]{数据,数据,数据...};
//数据类型[] 变量名 = {数据,数据...};
//声明一个保存Stu类型的数组
Stu[] stus = new Stu[3];
//stu1,stu2实际上都是一个引用,指向生成出来的地址
Stu stu1 = new Stu();
stu1.name = "zhangsan";
stu1.age = 20 ;
Stu stu2 = new Stu();
stu2.name = "lisi";
stu2.age = 20;
//往数组添加数据
stus[0] = stu1; //传入的实际上是地址
stus[1] = stu2;
//将数组中所有的学生对象打印出来
Stu ss1 = stus[0];
Stu ss2 = stus[1];
System.out.println(ss1);//会打印Stu对象存放的地址
String name1 = ss1.name;
System.out.println(name1);
System.out.println(ss2);
String name2 = ss2.name;
System.out.println(name2);
}
}
class Stu
{
public String name;
public int age;
public void study()
{
System.out.println("好好学习!");
}
}
可变参数
只有JDK1.5之后可以用
public void test(int... 变量名) {}
代码示例:
public class ChangeVar
{
//写一个方法,可以计算任意多个数据的平均数
//思路:先用容器放起来,之后计算容器内部
public void avg(int[] arr)
{
if(arr != null)
{
int result = 0;
for(int i = 0;i < arr.length;i++)
{
result+=arr[i];
}
int avg = result/arr.length;
System.out.println(avg);
}
}
//解决方法2: 使用可变参数
//数据类型... 名字,可传递0到多个这种类型的数据或者数组
//当传递数组,会将里面的数字一个一个取出来放进去
public void avg2(int... arr)
{
System.out.println(arr);
System.out.println(arr.length);
for(int i = 0; i< arr.length;i++)
{
System.out.println(arr[i]);
}
}
//可变参数注意事项
//可变参数一定要位于参数的最后一个位置
//因此,一个方法中只能有一个可变参数
public void test1(String name,int... nums)
{
}
//至少要传递一个参数
public void test2(int a , int... num)
{
System.out.println("test2---");
}
//可以一个也不传
public void test2(int... num)
{
System.out.println("test3---");
}
public static void main(String[] args)
{
int[] arr1 = {1,2,3};
ChangeVar test = new ChangeVar();
test.avg(arr1);
int[] arr2 = {1,2,3,4,5};
test.avg(arr2);
test.avg2();
test.avg2(1);
test.avg2(1,2);
test.avg2(1,2,3);
test.avg2(arr2);
test.test2();
test.test2(1); //会报错,未指明用哪个方法
test.test2(1,2);
}
}
格式化输出
//“%”表示进行格式化输出,“%”后的内容为定义格式
//“f”表示输出浮点数
//”9.2“ 输出长度9,精确到后2位
//"d""o""x"分别表示二进制,八进制,十六进制,"#x"表示带十六进制标志