Java学习笔记day05——二维数组,格式化输出,可变参数

二维数组
    给数组加一个[],就得到了二位数组
    再加一个[],就成了三维数组

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"表示带十六进制标志

猜你喜欢

转载自blog.csdn.net/gangangan0001/article/details/88032136