目录
方法的概述
方法就是一个函数,是一个实现特定功能的代码段,不调用不执行,方法可以提升代码的复用性。
方法的定义和调用格式
方法的定义:
public static void 方法名{
方法体
}
方法的调用:
方法名();
方法的练习
需求:设计一个方法method,方法中定义一个变量(数值随意),判断这个变量是基数还是偶数,并在main方法中调用method。
思路:
1、定义方法,名称为method。
2、方法中定义一个变量num,并赋值 100。
3、if(num % 2 == 0){打印是偶数}else{打印是基数}
4、在main方法中调用method方法。
**示例:**
```bash
package top.djzxdx.method1;
public class Demo1Method {
public static void main(String[] args) {
eat();
}
public static void eat(){
study();
System.out.println("吃饭");
}
public static void study(){
System.out.println("学习");
}
}
带参数方法的定义和调用
形参和实参
案例:带参数方法的练习
需求:设计一个方法(print)用于打印n到m之间所有的奇数
思路 :
1、定义一个方法名为print。
2、方法内写一个for循环,遍历n到m之间的数字,在for循环内再写一个if语句,判断这个数字是否是奇数,如果是奇数的话,输出这个数字。
for(i = n; i <= m ; i++){
if(i % 2 != 0){
System.out.println(i);
}
}
3、main方法中调用这个print方法。
package top.djzxdx.method2;
import java.util.Scanner;
public class Demo2Method2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[2];
for(int i = 0; i < 2; i++){
System.out.println("请键盘输入第" + (i + 1) + "个数:");
arr[i] = sc.nextInt();
}
System.out.print("您输入的"+arr[0]+"和"+arr[1]+"之间的奇数为");
print(arr[0], arr[1]);
}
public static void print(int n, int m){
for(int i = n; i <= m; i++){
if(i % 2 != 0){
System.out.print(i + " ");
}
}
}
}
带返回值方法的定义和调用
带返回值方法练习
需求:设计一个方法可以获取两个数的较大值,数据来自于参数。
思路:
1、定义一个方法getMax,声明2个形参接收待比较的数值,求出结果并返回。
2、使用if语句判断哪个值最大。
3、main方法中调用这个方法。
package top.djzxdx.method3;
public class Demo3Method3 {
public static void main(String[] args) {
int max = GetMax(10,20);
System.out.println(max);
}
public static int GetMax(int a , int b){
if(a > b){
return a;
}else{
return b;
}
}
}
方法的通用格式
方法的注意事项
方法重载
方法重载练习
需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
package top.djzxdx.method4;
public class Demo4Method4 {
public static void main(String[] args) {
int a = 10; //更换成short byte long均可以
int b = 20; //更换成short byte long均可以
boolean result = compare(a, b);
System.out.println(result);
}
public static boolean compare(int a, int b){
return a == b;
}
public static boolean compare(byte a, byte b){
return a == b;
}
public static boolean compare(short a, short b){
return a == b;
}
public static boolean compare(long a, long b){
return a == b;
}
}
方法参数传递基本数据类型
如果方法参数传递的是基本数据类型,传进方法当中的是具体的数值。
方法参数传递引用数据类型
如果方法参数传递的是引用数据类型,传进方法当中的是内存地址。
数组遍历
需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]
package top.djzxdx.method5;
public class Demo5Method5 {
public static void main(String[] args) {
int[] arr = new int[]{11, 22, 33, 44, 55};
printArr(arr);
}
public static void printArr(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr[i] + "]"); //这里必须用println,否则在第6行代码之后再写print代码会和第6行内容打印在同一行。
} else {
System.out.print(arr[i] + " ,");
}
}
}
}
案例:获取数组的最大值
需求:写一个方法,用于获取数组的最大值
package top.djzxdx.getmax;
public class GetMax {
public static void main(String[] args) {
int[] arr = {11,22,33,44,-55};
int max = getMax(arr);
System.out.println(max);
}
public static int getMax(int[] arr){
int max = arr[0];
for(int i = 0; i < arr.length; i ++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
}
案例:获取数组的最大值和最小值
需求:设计一个方法,该方法能够同时获取数组的最大值和最小值。
package top.djzxdx.getmaxandmin;
public class GetMaxAndMin {
public static void main(String[] args) {
int[] arr = {11, -22, 33, 44, 55};
int[] arr2 = getMaxAndMin(arr);
System.out.println("最大值是:"+arr2[0]+",最小值是"+arr2[1]+"");
}
public static int[] getMaxAndMin(int[] arr) {
int[] arr2 = {arr[0], arr[1]};
// int max = arr[0], min = arr[arr.length - 1];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > arr2[0]) {
arr2[0] = arr[i];
}
if (arr[i] < arr2[1]) {
arr2[1] = arr[i];
}
}
return arr2;
}
}