java中方法是完成特定的功能的,相对独立的程序段,与其他编程语言中的子程序,函数等概念相当。
方法一定义,就可以在不同的程序段中调用,因此方法可以增强程序的清晰度,提高编码的效率
方法的声明
[修饰符] 返回值类型 方法名称([参数表]){
//方法体
}
- 如果方法没有返回值,则要用void声明
- 如果没有声明,则一定要用return返回
- return返回值的类型必须与定义的方法的类型一致
方法的调用
调用方法,就是执行该方法,发出调用的方法称为主调用方法,被调用的方法称为被调方法
方法的重载就是方法名是同一个名字,但是参数列表不相同
方法的参数
形参:方法中调用的是形参
实参:在主方法中调用时传入的是实参
参数除了固定的长度为还可以有可变参数(以下为可变参数的用法),不需要定义好长度根据输入就会给定长度,如果还定义了一个方法,而恰好输入的可变参数的长度与其一样,那么就会优先调用不是可变参数的方法(因为要精准定位);
public class Main10 {
static int sum(int...nums){
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum = sum + nums[i];
}
return sum;
}
public static void main(String[] args) {
int sum = sum(1,2,3,4,5);
System.out.println(sum);
}
}
方法的返回值
return语句后面的返回值必须与方法声明的返回值的类型一致
一些具体的例题可以输入理解
import jdk.swing.interop.SwingInterOpUtils;
import java.util.Arrays;
import java.util.Random;
/**
* @author jkk
*/
public class Main3 {
static void getNewArr(int []arr){
for (int i = 0; i < arr.length; i++) {
if(arr[i] < 10){
arr[i] = 0;
}
}
}
public static void main(String[] args) {
int []arr = new int[5];
Random rand = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = rand.nextInt(46)+5;
}
getNewArr(arr);
System.out.println(Arrays.toString(arr));
}
}
import java.util.Random;
import java.util.Scanner;
/**
* @author jkk
*/
public class Main4 {
static void guess(){
Random rand = new Random();
Scanner sc = new Scanner(System.in);
int val = rand.nextInt(11)+70;
System.out.println("请输入要猜的值:");
int num = sc.nextInt();
while (val != num){
if(num >val){
System.out.println("猜大了");
}
if(num < val){
System.out.println("猜小了");
}
System.out.println("请输入要猜的值:");
num = sc.nextInt();
}
System.out.println("猜对了");
}
public static void main(String[] args) {
guess();
}
}
import java.util.Arrays;
import java.util.Random;
/**
* @author jkk
*/
public class Main5 {
static int judge(int []arr){
int count = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]%2==0){
count++;
}
}
return count;
}
public static void main(String[] args) {
Random rand = new Random();
int []arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = rand.nextInt(35)+23;
}
System.out.println(Arrays.toString(arr));
// int count = judge(arr);
System.out.println("数组中偶数的个数为"+judge(arr));
}
}
/**
* @author jkk
*/
public class Main6 {
static int judge(int []arr,int n){
int count = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i] % n==0 ){
count++;
}
}
return count;
}
public static void main(String[] args) {
int []arr = new int[]{12,43,45,76,78,98,23,21,34,56};
System.out.println(judge(arr,2));
}
}
import java.util.Arrays;
import java.util.Random;
/**
* @author jkk
*/
public class Main7 {
static void print(int[]arr1,int []arr2){
int count2 = 0;
int count3 = 0;
for (int i = 0; i < arr1.length; i++) {
if(arr1[i]%2==0){
count2++;
}
if(arr1[i]%3==0){
count3++;
}
}
arr2[0] = count2;
arr2[1] = count3;
System.out.println(Arrays.toString(arr2));
}
public static void main(String[] args) {
Random rand = new Random();
int []arr1 = new int[5];
int []arr2 = new int[2];
for (int i = 0; i < arr1.length; i++) {
arr1[i] = rand.nextInt(9)+1;
}
System.out.println(Arrays.toString(arr1));
print(arr1,arr2);
}
}