开始Java之旅第一季

  1. 注释
    一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦! 一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!

    java 中注释有三种类型:单行注释、多行注释、文档注释
    开始Java之旅第一季

  2. 输入操作
    使用Scanner工具类来获取用户输入的信息
    Scanner类位于java.util包中,使用是时需要导入此包
    步骤:
    1.导入java.util.Scanner
    2.创建Scanner对象
    3.接受并保存用户输入的值

    package com.imooc;
    import java.util.Scanner;//想要从键盘输入的三个步骤——第一步:导入包
    /*
     * 功能:编写JAVA程序,实现接受三个班级各四名学员的JAVA成绩,
     * 然后计算每个班级学员的平均分
     */
    public class demo02 {
    	public static void main(String[] args){
    		int classNum=3;//班级数量
    		int matesNum=4;//学生数量
    		int sum=0;//成绩总和
    		double avg=0;//平均分
    
    		Scanner input=new Scanner(System.in);//第二步:创建Scanner对象
    		for(int i=1;i<=classNum;i++){
    			System.out.println("***第"+i+"个班级***");
    			for(int j=1;j<=matesNum;j++){
    				System.out.println("请输入第"+j+"个学生的成绩:");
    				int score=input.nextInt();//第三步:获取输入信息
    				sum+=score;
    			}
    			avg=sum/matesNum;
    			System.out.println("第"+i+"个班级的平均分为:"+avg);
    			sum=0;
    		}
    		
    		
    	}
    }
    
    

    运行结果

    ***第1个班级***
    请输入第1个学生的成绩:
    1
    请输入第2个学生的成绩:
    3
    请输入第3个学生的成绩:
    4
    请输入第4个学生的成绩:
    5
    第1个班级的平均分为:3.0
    ***第2个班级***
    请输入第1个学生的成绩:
    3
    请输入第2个学生的成绩:
    2
    请输入第3个学生的成绩:
    3
    请输入第4个学生的成绩:
    5
    第2个班级的平均分为:3.0
    ***第3个班级***
    请输入第1个学生的成绩:
    3
    请输入第2个学生的成绩:
    3
    请输入第3个学生的成绩:
    5
    请输入第4个学生的成绩:
    5
    第3个班级的平均分为:4.0
    
    
  3. 数组名.length
    用于获取数组的长度用于获取数组的长度

  4. 操作数组
    1、声明数组
    语法: 数据类型[ ] 数组名; 或者 数据类型 数组名[ ];
    其中,数组名可以是任意合法的变量名,如:

     int[] scores;//储存学生成绩的数组,类型为整型
     double height[];//储存学生身高的数组,类型为浮点型
     String[] names;//储存学生姓名的数组,类型为字符串
    

    2、 分配空间
    简单地说,就是指定数组中最多可存储多少个元素
    语法: 数组名 = new 数据类型 [ 数组长度 ];
    其中,数组长度就是数组中能存放元素的个数,如:

    scores = new int[5];//长度为5的整数数组
    height = new double[5];//长度为5的浮点数组
    names = new String[5];//长度为5的字符串数组
    

    话说,我们也可以将上面的两个步骤合并,在声明数组的同时为它分配空间,如:

    int[] scores = new int[5];
    

    3、 赋值
    分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的,例如向 scores 数组中存放学生成绩

    scores[0] = 89;
    scores[1] = 79;
    

    在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成,如

    int[] scores = {79,91,84,68};//创建一个长度为4的整型数组
    

    它等价于

    int[] scores = new int[]{78,91,84,68};//第二个方括号内必须为空,不能指定长度
    
  5. 使用 Arrays 类操作 Java 中的数组
    Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序、搜索等。
    Arrays 中常用的方法:
    1、 排序
    语法: Arrays.sort(数组名);
    可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号 中, 就可以完成对该数组的排序(按升序排列),如:

    package com.test;
    import java.util.Arrays;//使用Arrays类时必须添加此行,导入包
    
    public class demo03 {
    	public static void main(String[] args){
            //定义一个整型数组
            int[] scores = {78,93,97,84,63};
            //使用Arrays类的sort()方法对数组进行排序
            Arrays.sort(scores);
            System.out.println("排序后数组中元素的值:");
            //循环遍历输出数组中元素的值
            for(int i=0;i<scores.length;i++){
                System.out.println(scores[i]);
            }
        }
    }
    
    

    运行结果

    排序后数组中元素的值:
    63
    78
    84
    93
    97
    

    2、 将数组转换为字符串
    语法: Arrays.toString(数组名);
    可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开,如:

    package com.test;
    import java.util.Arrays;//使用Arrays类时必须添加此行,导入包
    
    public class demo03 {
    	public static void main(String[] args){
            //定义一个整型数组
            int[] scores = {78,93,97,84,63};
            //// 使用Arrays类的toString()方法将数组转换为字符串并输出
            System.out.println("排序后数组中元素的值:"+Arrays.toString(scores));
          
        }
    }
    
    

    运行结果

    排序后数组中元素的值:[78, 93, 97, 84, 63]
    
  6. 使用 foreach 操作数组
    foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思,那么到底怎么使用 foreach 语句呢?
    语法:for(元素类型 元素变量:遍历对象){执行代码};
    我们分别使用 for 和 foreach 语句来遍历数组

    package com.test;
    import java.util.Arrays;//使用Arrays类时必须添加此行,导入包
    
    public class demo03 {
    	public static void main(String[] args){
            //定义一个整型数组
            int[] scores = {78,93,97,84,63};
            //for循环遍历
            System.out.println("for循环遍历");
            for(int i=0;i<scores.length;i++){
            	System.out.println(scores[i]);
            }
            //foreach方法遍历
            System.out.println("foreach方法遍历");
            for(int nums:scores){
            	System.out.println(nums);
            }
          
        }
    }
    
    

    运行结果

    for循环遍历
    78
    93
    97
    84
    63
    foreach方法遍历
    78
    93
    97
    84
    63
    

    foreach方法遍历中:那个nums与scores其实没有任何必然联系,int后的nums仅仅是新建一个整型变量用来存储遍历scores数组后的数据。
    foreach操作二维数组:

    public class HelloWorld {
        public static void main(String[] args) {
        /*
         *功能要求:
         *定义一个两行三列的二维数组names并赋值,使用二重循环输出二维数组中的元素
         */
            
    		// 定义两行三列的二维数组并赋值
    		   String[][] names={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
                     
    		// 通过二重循环输出二维数组中元素的值
    		for (String[] x:names) 
    		{
                
    			for (String e:x)
    			{
                    
    				System.out.println(e);
    			}
                
    			System.out.println();
    		}
    	}
    }
    

    运行结果

    tom
    jack
    mike
    
    zhangsan
    lisi
    wangwu
    

    编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组

    //导入java.util.Arrays;
    import java.util.Arrays;
    
    
    public class HelloWorld {
        public static void main(String[] args) {
            
             // 创建对象,对象名为hello
        	HelloWorld hello = new HelloWorld();
            
            // 调用方法并将返回值保存在变量中
    		int[] nums = hello.getArray(8);
            
            // 将数组转换为字符串并输出
    		System.out.println(Arrays.toString(nums)); 
    	}
    
    	/*
    	 * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
    	 * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
    	 */
    	public int[] getArray(int length) {
            // 定义指定长度的整型数组
    		int[] nums = new int[length];
    
            // 循环遍历数组赋值
    		for ( int num:nums) {
                
    			// 产生一个100以内的随机数,并赋值给数组的每个成员
               		 num=(int)(Math.random() * 100);
     
            
    		}
    		return nums; // 返回赋值后的数组
    	}
    }
    

    输出结果

    [0, 0, 0, 0, 0, 0, 0, 0]
    

    为什么会出现这种结果呢?
    for(int num:nums) {

    num =(int)( Math.random()*100);

    }
    这里只是遍历nums , 其中的num 是 nums每一项的拷贝,修改num 的值nums的值不会变的
    nums默认的值就是0
    若偏要用foreach来编写应该这么写,但是显然不如直接用for循环写有逻辑性。

    //导入java.util.Arrays;
    import java.util.Arrays;
    
    
    public class HelloWorld {
        public static void main(String[] args) {
            
             // 创建对象,对象名为hello
        	HelloWorld hello = new HelloWorld();
            
            // 调用方法并将返回值保存在变量中
    		int[] nums = hello.getArray(8);
            
            // 将数组转换为字符串并输出
    		System.out.println(Arrays.toString(nums)); 
    	}
    
    	/*
    	 * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
    	 * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
    	 */
    	public int[] getArray(int length) {
            // 定义指定长度的整型数组
    		int[] nums = new int[length];
            int i=0;
            // 循环遍历数组赋值
    		for ( int num:nums) {
                
    			// 产生一个100以内的随机数,并赋值给数组的每个成员
                num=(int)(Math.random() * 100);
                nums[i]=num;
                i++;
            
    		}
    		return nums; // 返回赋值后的数组
    	}
    }
    

    运行结果

    [13, 53, 60, 59, 73, 77, 6, 94]
    
  7. 二维数组中:
    数组名.length
    指示数组的行数。
    数组名[行下标] .length
    指示该行中的元素个数。

  8. 如何定义 Java 中的方法
    所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。
    一般情况下,定义一个方法的语法是:

    访问修饰符 返回值类型 方法名(参数列表){
    方法体
    }

    其中,
    1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴

    2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值

    3、 方法名:定义的方法的名字,必须使用合法的标识符

    4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 。形参需要定义数据类型,实参不用。

    根据方法是否带参、是否带返回值,可将方法分为四类:

    Ø 无参无返回值方法

    Ø 无参带返回值方法

    Ø 带参无返回值方法

    Ø 带参带返回值方法

    public class HelloWorld {
        
        //定义了一个方法名为 print 的方法,实现输出信息功能
        public void print() {
    		System.out.println("Hello World");
    	}
        
        public static void main(String[] args){
            
            //在 main 方法中调用 print 方法
            HelloWorld test=new HelloWorld();
            /*这是Java当中创建一个类的对象的语法:类名 对象名 = new 类名();
            相当于创建一个HelloWorld类 的一个test对象*/
            test.print();
        }
    }
    
  9. 方法的重载
    假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法。
    接下来通过一个案例来实现对两个整数相加、对三个整数相加以及对两个小数相加的功能。

    package com.imooc;
    
    public class demo01 {
    	public static void main(String[] args) {
    		//下面是针对求和方法的调用
    		int sum1=add1(1,2);
    		double sum2=add2(1.30,1.60);
    		int sum3=add3(1,2,3,4);
    		//打印求和结果
    		System.out.println("sum1="+sum1);
    		System.out.println("sum2="+sum2);
    		System.out.println("sum3="+sum3);
    		
    	}
    	//下面方法实现了两个整数相加
    	public static int add1(int a,int b) {
    		return a+b;
    	}
    	//下面方法实现两个小数相加
    	public static double add2(double a,double b) {
    		return a+b;
    	}
    	//下面方法是实现四个整数相加
    	public static int add3(int a,int b,int c,int d) {
    		return a+b+c+d;
    	}
    }
    
    

    运行结果

    sum1=3
    sum2=7.3
    sum3=10
    
    

    从上面代码不难看出,程序需要针对每一种求和的情况都定义一个方法,如果每个方法的名称都不同,在调用时就很难分清哪种情况该调用哪种方法。为了解决这个问题,java允许在一个程序中定义多个名称相同的方法,但是参数类型或参数个数必须不同,这就是方法的重载,修改后的程序如下:

    package com.imooc;
    
    public class demo01 {
    	public static void main(String[] args) {
    		//下面是针对求和方法的调用
    		int sum1=add(1,2);
    		float sum2=add(1.30f,1.60f);
    		int sum3=add(1,2,3,4);
    		//打印求和结果
    		System.out.println("sum1="+sum1);
    		System.out.println("sum2="+sum2);
    		System.out.println("sum3="+sum3);
    		
    	}
    	//下面方法实现了两个整数相加
    	public static int add(int a,int b) {
    		return a+b;
    	}
    	//下面方法实现两个小数相加
    	public static float add(float a,float b) {
    		return a+b;
    	}
    	//下面方法是实现四个整数相加
    	public static int add(int a,int b,int c,int d) {
    		return a+b+c+d;
    	}
    }
    
    

    运行结果相同

    sum1=3
    sum2=2.9
    sum3=10
    
    

    问: 如何区分调用的是哪个重载方法呢?

    答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。

    判断方法重载的依据:

    1、 必须是在同一个类中

    2、 方法名相同

    3、 方法参数的个数、顺序或类型不同

    4、 与方法的修饰符或返回值没有关系

相关文章:

  • 2021-11-26
  • 2022-03-06
  • 2021-07-02
  • 2021-10-15
  • 2022-12-23
  • 2022-01-07
  • 2021-04-16
  • 2021-08-27
猜你喜欢
  • 2019-07-25
  • 2021-11-07
  • 2022-01-25
  • 2022-12-23
  • 2021-08-29
  • 2021-06-29
  • 2021-09-06
相关资源
相似解决方案