JAVA学习<四>
一. 数组:
Java 中操作数组只需要四个步骤:
1、 声明数组
语法: 数据类型[ ] 数组名;
或者 数据类型 数组名[ ];
其中,数组名可以是任意合法的变量名。
2、 分配空间
简单地说,就是指定数组中最多可存储多少个元素
语法: 数组名 = new 数据类型 [ 数组长度 ];
其中,数组长度就是数组中能存放元素的个数。
话说,我们也可以将上面的两个步骤合并,在声明数组的同时为它分配空间,如:
3、 赋值
分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的,例如向 scores 数组中存放学生成绩
4、 处理数组中数据
我们可以对赋值后的数组进行操作和处理,如获取并输出数组中元素的值
在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成
二.循环遍历数组的值:
public class HelloWorld { public static void main(String[] args) { // 定义一个长度为 3 的字符串数组,并赋值初始值 String[] hobbys = { "sports", "game", "movie" }; System.out.println("循环输出数组中元素的值:"); // 使用循环遍历数组中的元素 for(int i = 0; i < hobby.count; i++){ System.out.println(hobby[i]); } } }
public class HelloWorld { public static void main(String[] args) { // 定义一个整型数组,并赋初值 int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 }; int max = nums[0]; // 假定最大值为数组中的第一个元素 int min = nums[0]; // 假定最小值为数组中的第一个元素 double sum = 0;// 累加值 double avg = 0;// 平均值 for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素 // 如果当前值大于max,则替换max的值 if(nums[i] > max){ max = nums[i]; } // 如果当前值小于min,则替换min的值 if(nums[i] < min) { min = nums[i]; } // 累加求和 sum += sums[i]; } // 求平均值 avg = sum / i; System.out.println("数组中的最大值:" + max); System.out.println("数组中的最小值:" + min); System.out.println("数组中的平均值:" + avg); } }
三.使用 Arrays 类操作 Java 中的数组:
1、 排序
语法: Arrays.sort(数组名);
2、 将数组转换为字符串
语法: Arrays.toString(数组名);
可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开,如:
//导入Arrays类
import java.util.Arrays;
public class HelloWorld { public static void main(String[] args) { // 定义一个字符串数组 String[] hobbys = { "sports", "game", "movie" }; // 使用Arrays类的sort()方法对数组进行排序 Arrays.sort(hobby); // 使用Arrays类的toString()方法将数组转换为字符串并输出 System.out.println( Arrays.toString(hobby)); } }
五.使用 foreach 操作数组:
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { // 定义一个整型数组,保存成绩信息 int[] scores = { 89, 72, 64, 58, 93 }; // 对Arrays类对数组进行排序 Arrays.sort(scores); // 使用foreach遍历输出数组中的元素 for ( Int score: scores ) { System.out.println(score); } } }
六. 二维数组:
public class HelloWorld { public static void main(String[] args) { // 定义两行三列的二维数组并赋值 String[][] names={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}}; // 通过二重循环输出二维数组中元素的值 for (int i = 0; i <names.length ; i++) { for (int j = 0; j < names[i].length; j++) { System.out.println( names[i][j] ); } System.out.println(); } } }
七.如何定义 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(); test.print(); } }
八.Java 中无参带返回值方法的使用:
public class HelloWorld { public static void main(String[] args) { // 创建名为hello的对象 HelloWorld hello = new HelloWorld(); // 调用hello对象的calcAvg()方法,并将返回值保存在变量avg中 double avg = hello.calcAvg(); System.out.println("平均成绩为:" + avg); } // 定义一个返回值为double类型的方法 public Double calcAvg() { double java = 92.5; double php = 83.0; double avg = (java + php) / 2; // 计算平均值 // 使用return返回值 return avg; } }
九.编程练习:
public class HelloWorld { //完成 main 方法 public static void main(String[] args) { // 创建对象,对象名为hello HelloWorld hello = new HelloWorld(); // 调用方法并将返回值保存在变量中 hello.getMaxAge(); // 输出最大年龄 System.out.println("最大年龄为:" + maxScore); } /* * 功能:输出学生年龄的最大值 * 定义一个无参的方法,返回值为年龄的最大值 * 参考步骤: * 1、定义一个整形数组 ages ,保存学生年龄,数组元素依次为 18 ,23 ,21 ,19 ,25 ,29 ,17 * 2、定义一个整形变量 max ,保存学生最大年龄,初始时假定数组中的第一个元素为最大值 * 3、使用 for 循环遍历数组中的元素,并与假定的最大值比较,如果比假定的最大值要大,则替换当前的最大值 * 4、使用 return 返回最大值 */ public int getMaxAge() { Int[] ages = { 18 ,23 ,21 ,19 ,25 ,29 ,17 }; Int max = ages[0]; for(Int i = 0; i < ages.length; i++) { if(ages[i] > max) { max = ages[i]; } } returm max; } }
十.Java 中带参无返回值方法的使用:
public class HelloWorld { public static void main(String[] args) { // 创建对象,对象名为hello HelloWorld hello = new HelloWorld(); // 调用方法,传入两门课程的成绩 hello.calcAvg(94, 81); } /* * 功能:计算两门课程考试成绩的平均分并输出平均分 * 定义一个包含两个参数的方法,用来传入两门课程的成绩 */ public Double calcAvg(Double class1, Double class2) { return (class1 + class2) / 2; } }
十一.Java 中方法的重载:
如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。
判断方法重载的依据:
1、 必须是在同一个类中
2、 方法名相同
3、 方法参数的个数、顺序或类型不同
4、 与方法的修饰符或返回值没有关系
public class HelloWorld { public static void main(String[] args) { // 创建对象 HelloWorld hello = new HelloWorld(); // 调用无参的方法 hello.print(); // 调用带有一个字符串参数的方法 hello.print("SiSi"); // 调用带有一个整型参数的方法 hello.print(66); } public void print() { System.out.println("无参的print方法"); } public void print(String name) { System.out.println("带有一个字符串参数的print方法,参数值为:" + name); } public void print(int age) { System.out.println("带有一个整型参数的print方法,参数值为:" + age); } }
练习:
//导入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 i = 0; i < nums.length; i++ ) { // 产生一个100以内的随机数,并赋值给数组的每个成员 nums[i] = (Int)(Math.random() * 100); } return nums; // 返回赋值后的数组 } }