-
注释:
一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦! 一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!java 中注释有三种类型:单行注释、多行注释、文档注释
-
输入操作
使用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 -
数组名.length
用于获取数组的长度用于获取数组的长度 -
操作数组
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};//第二个方括号内必须为空,不能指定长度 -
使用 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 972、 将数组转换为字符串
语法: 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] -
使用 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 63foreach方法遍历中:那个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] -
二维数组中:
数组名.length指示数组的行数。
数组名[行下标] .length指示该行中的元素个数。 -
如何定义 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(); } } -
方法的重载
假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法。
接下来通过一个案例来实现对两个整数相加、对三个整数相加以及对两个小数相加的功能。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、 与方法的修饰符或返回值没有关系
相关文章: