java中的方法使用
一.方法是什么
1.方法的定义
方法是就是一段具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集,可供重复调用。
2.方法的位置
类里面,别的方法外面。
二.无参的方法
1.无参的方法的基本格式
public static void 方法名(){
方法体;
}
2.无参的方法的调用
方法名();
3.代码示列
判断奇偶数
public static void main(String[] args) {
isEvenNumber();//调用同类中的方法
}
public static void isEvenNumber(){
int number = 10;
if (number%2==0){
System.out.println("偶数");
}else {
System.out.println("奇数");
}
}
运行结果
偶数
三.带参的方法
1.带参的方法的基本格式
public static void 方法名(数据类型 变量名,数据类型 变量名){
方法体;
}
2.带参的方法的调用
方法名(参数);
3.代码示列
获取两个数中谁更大的方法
public static void main(String[] args) {
int a = 10;
int b = 8;
getMax(a, b); //a,b是实参
getMax(15, 20); //15,20是实参
}
//获取最大值的方法
public static void getMax(int a1, int a2) { //a1,a2是形参
if (a1 >= a2) {
System.out.println(a1);
} else {
System.out.println(a2);
}
return; //可省略
}
运行结果
10
20
知识点补充:
- void是无返回值的关键字,表示可以无返回值,可以省略return,也可以单独书写return,后面不加数据。
- 基于数据类型的参数,形式参数的改变,不影响实际参数的值。
形参:方法定义中的参数
实参:方法调用中的参数
四.带返回值的方法
1.带返回值的方法的基本格式
public static 数据类型 方法名(参数){
方法体;
return 数据;
}
知识点补充:
- return:结束方法,返回对应参数
- 返回值类型需要和方法发定义数据类型相同
2.带返回值的方法调用
数据类型 变量名=方法名(参数);
3.代码示列
判断是否是偶数
public static void main(String[] args) {
boolean flag=isEvenNumber(10);
System.out.println(flag);
}
public static boolean isEvenNumber(int a){
if (a%2==0){
return true;
}else {
return false;
}
}
运行结果
true
五.方法的调用
1.代码示列
分别对有返回值和无返回值的方法进行单独调用,赋值调用,打印调用
public static void main(String[] args) {
//单独调用(多用于无返回值的方法。对于有返回值类型的,接收不到。)
jsq(10,20);
method();
//赋值调用(只能使用于有返回值的方法)
int c=jsq(12,13);
System.out.println(c);
//打印调用(只能使用于有返回值的方法)
System.out.println(jsq(11,14));
}
//无返回值方法
public static void method(){
System.out.println(1);
}
//有返回值方法
public static int jsq(int a,int b){
int sum=a+b;
return sum;
}
运行结果
1
25
25
六.方法的重载
1.方法的重载判定条件
- 多个方法在一个类里面
- 多个方法名相同
- 多个方法的参数列表不同,参数个数或者类型或者顺序不同
- 注意
重载与返回值无关,在调用的时候,java虚拟机通过参数的不同来区分调用哪个方法。
2.代码示列
案例一:参数不同的重载
public static void main(String[] args) {
System.out.println(sum(1, 2));
System.out.println(sum(1.2, 1.8));
System.out.println(sum(1, 2, 3));
}
public static int sum(int a, int b) {
return a + b;
}
//个数不同
public static int sum(int a, int b, int c) {
return a + b + c;
}
//参数类型不同
public static double sum(double a, double b) {
return a + b;
}
//参数类型不同
public static int sum(int a, double b) {
return 1;
}
//类型顺序不同
public static int sum(double a, int b) {
return 1;
}
运行结果
3
3.0
6
案例二:参数类型不同的方法重载
public static void main(String[] args) {
System.out.println(compare(10,20));
System.out.println(compare((byte) 10,(byte) 20));
System.out.println(compare((short) 10,(short) 20));
System.out.println(compare(10L,20L));
}
public static boolean compare(int a, int b) {
System.out.println("int");
return a==b;
}
public static boolean compare(byte a, byte b) {
System.out.println("byte");
return a==b;
}
public static boolean compare(short a, short b) {
System.out.println("short");
return a==b;
}
public static boolean compare(long a, long b) {
System.out.println("long");
return a==b;
}
运行结果
int
false
byte
false
short
false
long
false
七.方法参数传递(引用数据类型)
1.代码示列
案例一:基本数据类型的参数
public static void main(String[] args) {
int num=100;
System.out.println("调用之前:"+num);
chang(num);
System.out.println("调用之后:"+num);
}
public static void chang(int num){
num=200;
}
运行结果
调用之前:100
调用之后:100
知识点补充
- 基于基本数据类型的参数,形式参数的改变,不影响实际参数的值。
- 形参:方法定义中的参数
实参:方法调用中的参数
案例二:引用类型的参数
public static void main(String[] args) {
int[] arr={1,2,3};
System.out.println("调用前:"+arr[1]);
change(arr); //这里传递的是地址值,所以找到的是同一个空间,所以会被影响改变
System.out.println("调用后:"+arr[1]);
}
public static void change(int[] hh){
hh[1]=20;
}
运行结果
调用前:2
调用后:20
知识点补充
- 对于引用类型的参数,形式参数改变,会影响实际参数的值。
八.综合案例
1.代码示列
数组遍历和数组最大值
public static void main(String[] args) {
int[] arr = {11, 33, 22, 44};
int[] arr1 = {1, 3, 2, 4};
//打印数组
printArray(arr);
printArray(arr1);
//求数组最大值
int a = getArrayMax(arr);
int b = getArrayMax(arr1);
System.out.println(a);
System.out.println(b);
}
//打印数组
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
//求数组最大值
public static int getArrayMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
运行结果
11 33 22 44
1 3 2 4
44
4