方法(method)是程序中最小的执行单元
注意:
方法必须先创建才可以使用,该过程成为方法定义
方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用
定义格式:
public static void 方法名 ( ) {
// 方法体;
}
范例:
public static void playgame(){
System.out.println("a");
System.out.println("b");
System.out.println("c");
System.out.println("d");
调用格式:
方法名();
范例:
method();
注意:
需求:定义一个方法,在方法内部定义两个变量。
求出他们的和并进行打印。
package com.wy.methoddemo;public class MethodDemo1 {
public static void main(String[] args) {
getsum();
}
public static void getsum(){
int num1=10;
int num2=20;
int result=num1+num2;
System.out.println(result);
}
}
定义格式:
参数范例:
int a
public static void 方法名 (参数1) {
方法体;
}
public static void 方法名 (参数1, 参数2, 参数3...) {
方法体;
}
范例:
public static void isEvenNumber(int number){
...
}
public static void getMax(int num1, int num2){
...
}
注意:
方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
方法定义时,多个参数之间使用逗号( ,)分隔
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
调用格式:
方法名(参数);
方法名(参数1,参数2);
package com.wy.methoddemo;
public class MethodDemo2 {
public static void main(String[] args) {
getsum(10,20);
}
public static void getsum(int num1,int num2){
int result=num1+num2;
System.out.println(result);
}
}
需求:定义一个方法,求长方形的周长,将结果在方法中进行打印。
public class MethodDemo3 {
public static void main(String[] args) {
getlength(5.2,6.7);
}
public static void getlength(double len,double width){
double reslt=(len+width)*2;
System.out.println(reslt);
}
}
1.形参:方法定义中的参数
等同于变量定义格式,例如:int number
2.实参:方法调用中的参数
定义格式
public static 数据类型 方法名 ( 参数 ) {
return 数据 ;
}
范例
public static boolean isEvenNumber( int number ) {
return true ;
}
public static int getMax( int a, int b ) {
return 100 ;
}
注意:
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
调用格式
方法名 ( 参数 ) ;
数据类型 变量名 = 方法名 ( 参数 ) ;
范例
isEvenNumber ( 5 ) ;
boolean flag = isEvenNumber ( 5 );
注意:
方法的返回值通常会使用变量接收,否则该返回值将无意义
需求:
定义一个方法,求一家商场每个季度的营业额。根据方法结果再计算出全年营业额。
package com.wy.methoddemo;
public class MethodDemo4 {
public static void main(String[] args) {
// //直接调用
// getSum(10,20,30);
// //赋值调用
// int sum=getSum(10,20,30);
// System.out.println(sum);
// //输出调用
// System.out.println(getSum(10,20,30));
//第一季度
int sum1=getSum(10,20,30);
//2
int sum2=getSum(10,20,30);
//3
int sum3=getSum(10,20,30);
//4
int sum4=getSum(10,20,30);
int sum=sum1+sum2+sum3+sum4;
System.out.println(sum);
}
public static int getSum(int num1,int num2,int num3){
int result=num1+num2+num3;
return result;
}
}
需求:
定义方法,比较两个长方形的面积。
package com.wy.methoddemo;
public class MethodDemo5 {
public static void main(String[] args) {
double area1=getArea(5.3,1.7);
double area2=getArea(2.4,2.7);
if(area1>area2){
System.out.println("第一个大");
}else{
System.out.println("第二个大");
}
}
public static double getArea(double len,double width){
double area=len*width;
return area;
}
}
方法重载概念
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不相同,类型不同或者数量不同
需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
package com.wy.methoddemo;
public class MethodDemo6 {
public static void main(String[] args) {
compare((byte) 10,(byte) 20);
compare(10,20);
}
public static void compare(byte b1,byte b2){
System.out.println(b1==b2);
System.out.println("byte");
}
public static void compare(short s1,short s2){
System.out.println(s1==s2);
System.out.println("short");
}
public static void compare(int i1,int i2){
System.out.println(i1==i2);
System.out.println("int");
}
public static void compare(long n1,long n2){
System.out.println(n1==n2);
System.out.println("long");
}
}
1.数组遍历
需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]
package com.wy.methoddemo.test;
public class Test1 {
public static void main(String[] args) {
int[] arr={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.print(arr[i]);
}else{
System.out.print(arr[i]+", ");
}
}
System.out.println("]");
}
}
2.
需求:设计一个方法用于获取数组中元素的最大值
package com.wy.methoddemo.test;
public class Test2 {
public static void main(String[] args) {
int[] arr={1,5,7,3,8,10};
int max = getMax(arr);
System.out.println(max);
}
public static int getMax(int[] arr){
int max=arr[0];
for (int i = 1; i < arr.length; i++) {
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
}
3.
需求:定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处
package com.wy.methoddemo.test;
public class Test3 {
public static void main(String[] args) {
int[] arr={1,5,3,6,99,36};
boolean flag=contains(arr,99);
System.out.println(flag);
}
public static boolean contains(int[] arr,int number){
for (int i = 0; i < arr.length; i++) {
if(arr[i]==number){
return true;
}
}
return false;
}
}
4.
需求:定义一个方法copyOfRange(int[] arr,int from, int to)
功能:将数组arr中从索引from(包含from)开始。到索引to结束(不包含to)的元素复制到新数组中。将新数组返回
package com.wy.methoddemo.test;
public class Test4 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6,7,8,9};
int[] copyArr = copyOfRange(arr, 3, 7);
for (int i = 0; i < copyArr.length; i++) {//打印
System.out.print(copyArr[i]);
}
}
public static int[] copyOfRange(int[] arr,int from, int to){//动态定义数组:不知道元素
int[] newArr=new int[to-from];//拷贝
int index=0; //伪造索引
for (int i = from; i < to; i++) {
newArr[index]=arr[i];
index++;
}
return newArr;
}
}
数组 new---》堆
总结