方法
方法的通用格式
public static 返回值类型 方法名(参数){
方法体;
return 数据;
}
定义方法时要注意两个明确:
1.明确返回值类型;
2.明确参数的类型和数量。
调用方法时要注意:
1.void类型的方法,直接调用即可;
2.非void类型的方法,推荐使用变量接受调用。
方法重载
定义:方法重载指同一个类中定义的多个方法之间的关系,满足一下条件多个方法相互构成重载
1.多个方法在同一个类中
2.多个方法具有相同的方法名
3.多个方法的参数不相同,参数类型不同或数量不同。
特点:
1.重载对应方法的定义,与方法的调用无关,调用方式为标准调用格式。
2.重载针对的是同一个类中方法名称与参数的识别,与返回值无关,不能通过返回值来判定方法是否相互构成重载。
在调用的时候,java虚拟机会通过参数的不同来区分同名的方法。
Demo:设计一个方法用于获取数组元素最大值,调用方法输出结果。
package JavaStudyDay09;
//数组、方法案例
public class ArrayDemo2 {
public static void main(String[] args) {
int[] arr = new int[]{16,17,18,10,11,12};
System.out.println(getArrayMax(arr));
}
//设计一个方法用于获取数组元素最大值,调用方法输出结果。
public static int getArrayMax(int[] arr){
int max = arr[0];
for (int x = 1; x < arr.length; x++){
if(arr[x] > max ){
max = arr[x];
}
}
return max;
}
}
练习
package JavaStudyDay09;
import java.util.Scanner;
public class Practice_plus {
public static void main(String[] args) {
//输入星期输制定减肥计划
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数:");
int week_number = sc.nextInt();
switch (week_number) {
case 1:
System.out.println("Running");
break;
case 2:
System.out.println("Swimming");
break;
case 3:
System.out.println("Walking");
break;
case 4:
System.out.println("Spinning");
break;
case 5:
System.out.println("Boxing");
break;
case 6:
System.out.println("Climbing");
break;
case 7:
System.out.println("Eatttttt!");
break;
default:
System.out.println("输入星期数有误:(");
break;
}
}
}
导包的三种方法:
1.手动导包
2.快捷键导包 ALT+ENTER
3.自动导包 ENTER
查找数组索引
package JavaStudyDay09;
import java.util.Scanner;
public class Find {
//键盘输入一个数据,查找在数组中的索引值并输出。
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
Scanner sc = new Scanner(System.in);
System.out.println("输入要查询的数字:");
int num = sc.nextInt();
int result = getIndex(arr,num);
System.out.println(result);
}
public static int getIndex(int[] arr, int num) {
int index = -1;
for (int x = 0; x < arr.length; x++) {
if(num == arr[x]){
index = x;
System.out.println("index:"+index);
break;
}
}
return index;
}
}
数组元素反转
package JavaStudyDay09;
public class ArrayPractice {
//数组反转
public static void main(String[] args) {
int arr[] = {19, 28, 37, 46, 50};
reverse(arr);
printArray(arr);
}
public static void reverse(int[] arr){
for (int start = 0, end = arr.length - 1; start < end; start++, end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
public static void printArray ( int[] arr){
System.out.print("[");
for (int x = 0; x < arr.length; x++) {
if (x == arr.length - 1) {
System.out.print(arr[x]);
} else {
System.out.print(arr[x] + ",");
}
}
System.out.println("]");
}
}
评委打分
package JavaStudyDay09;
import java.util.Scanner;
/*
6个评委打分,去掉一个最高分,去掉一个最低分求平均值。
用动态定义的方法来定义一个数组来保存评委输入的成绩。
定义三个方法并调用:
1.求最大值
2.求最小值
3.求和
*/
public class Score {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个评委的分数");
arr[i] = sc.nextInt();
}
int max = getMax(arr);
int min = getMin(arr);
int sum = getSum(arr);
int avg = (sum - max - min) / (arr.length - 2);
System.out.println("平均分为:"+avg);
}
public static void printArray(int[] arr) {
System.out.println("[");
for (int x = 0; x < arr.length; x++) {
if (x == arr.length - 1) {
System.out.println(arr[x]);
} else {
System.out.println(arr[x] + ",");
}
}
}
public static int getMax(int[] arr) {
int max = arr[0];
for (int x = 0; x < arr.length; x++) {
if (arr[x] > max) {
max = arr[x];
}
}
return max;
}
public static int getMin(int[] arr) {
int min = arr[0];
for (int x = 0; x < arr.length; x++) {
if (arr[x] < min) {
min = arr[x];
}
}
return min;
}
public static int getSum(int[] arr) {
int sum = 0;
for (int x = 0; x < arr.length; x++) {
sum += arr[x];
}
return sum;
}
}