01.方法定义格式及格式解释
packagecom.bird_01;/** 方法:其实就是完成特定功能的代码块
*
* 定义格式:
* 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
* 方法体;
* return 返回值
* }
* 格式解释:
* A:修饰符 目前记住public static
* B:返回值类型 用于限定返回值的数据类型
* C:方法名 为了方便我们调用方法的名字
* D:参数类型 用于限定调用方法时传入的数据的类型
* E:参数名 用于接收调用方法时传入的数据的变量
* F:方法体 完成功能的代码
* G:return 结束方法,并且把返回值带给调用者
**/
public classMethodDemo {
}
02.求和方法的编写
packagecom.bird_01;/** 写一个方法有两个明确:
* A:返回值类型 明确功能结果的数据类型
* B:参数列表 明确有几个参数,以及参数的数据类型*/
public classMethodDemo {public static voidmain(String[] args) {
}/** 两个明确:
* 返回值类型:int
* 参数列表:int a, int b*/
public static int sum(int a,intb){int c = a +b;returnc;
}
}
03.求和方法的调用
packagecom.bird_01;/** 方法的调用:(有明确返回值的方法调用)
* A:单独调用:没有意义
* B:输出调用,有意义,但是不够好,因为我可能需要拿结果进行进一步的操作
* C:赋值调用,推荐方式*/
public classMethodDemo2 {public static voidmain(String[] args) {//单独调用//sum(10,20);//输出调用//System.out.println(sum(10,20));//赋值调用
int result = sum(10,20);//可以对result进行操作//result += 10;
System.out.println(result);
}/** 求和方法
*
* 两个明确: 返回值类型:int 参数列表:int a,int b
**/
public static int sum(int a, intb) {int c = a +b;returnc;
}
}
04.求和方法调用图解
05.方法练习之获取两个数据中较大值
packagecom.bird_01;importjava.util.Scanner;/** 键盘录入两个数据,返回两个数中的较大值*/
public classMethodTest {public static voidmain(String[] args) {//创建输入对象
Scanner sc = newScanner(System.in);//接收数据
System.out.println("请输入第一个数据");int a =sc.nextInt();
System.out.println("请输入第二个数据");int b =sc.nextInt();//调用方法
int c =getMax(a, b);
System.out.println("最大的数是:" +c);
}/** 返回两个数中的较大值
*
* 两个明确: 返回值类型:int 参数列表:int a,int b*/
public static int getMax(int a, intb) {if (a >b) {returna;
}else{returnb;
}
}
}
06.方法练习之比较两个数是否相等
packagecom.bird_01;importjava.util.Scanner;/** 键盘录入两个数据,比较两个数是否相等*/
public classMethodTest2 {public static voidmain(String[] args) {//创建输入对象
Scanner sc = newScanner(System.in);//接收数据
System.out.println("请输入第一个数据");int x =sc.nextInt();
System.out.println("请输入第二个数据");int y =sc.nextInt();//调用方法
boolean b =compare(x,y);//输出结果
System.out.println("b:"+b);
}/** 比较两个数是否相等
*
* 两个明确: 返回值类型:boolean 参数列表:int a,int b*/
public static boolean compare(int a, intb) {if (a ==b) {return true;
}else{return false;
}
}
}
07.方法练习之比较三个数的最大值
packagecom.bird_01;importjava.util.Scanner;/** 键盘录入三个数,返回其中最大值*/
public classMethodTest3 {public static voidmain(String[] args) {//创建键盘输入对象
Scanner sc = newScanner(System.in);//接收录入数据
System.out.println("请输入第一个数据");int a =sc.nextInt();
System.out.println("请输入第二个数据");int b =sc.nextInt();
System.out.println("请输入第三个数据");int c =sc.nextInt();//调用方法
int max =getMax(a,b,c);//输出结果
System.out.println("最大数是:"+max);
}/** 返回三个数的最大值
*
* 两个明确: 返回值类型:int 参数列表:int a, int b,int c*/
public static int getMax(int a, int b, intc) {int max =a;if (b >max) {
max=b;
}if (c >max) {
max=c;
}returnmax;
}
}
08.void修饰符方法的调用
packagecom.bird_02;/** 需求:写一个方法,在控制台输出10次HelloWorld案例
*
* 两个明确:
* 返回值类型:void
* 参数列表:无
*
* 如果一个方法没有明确的返回值类型,也不能把返回值类型空出来,应该写void表示无返回值类型。
*
* 方法调用:(void修饰符方法调用)
* 只能单独调用*/
public classMethodDemo {public static voidmain(String[] args) {//单独调用
printHelloWorld();//输出调用//System.out.println(printHelloWorld());//赋值调用//void v = printHelloWorld();
}/** 在控制台输出10次HelloWorld
*
* 两个明确:
* 返回值类型:void
* 参数列表:没有参数*/
public static voidprintHelloWorld(){for(int i=0;i<10;i++){
System.out.println("HelloWorld");
}
}
}
09.方法练习之打印1~n之间的数
packagecom.bird_02;/** 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值*/
public classMethodTest {public static voidmain(String[] args) {//调用方法
printNumber(10);
}/** 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值
*
* 两个明确:
* 返回值类型:void
* 参数列表:int n*/
public static void printNumber(intn){for(int i=1;i<=n;i++){
System.out.print(i+" ");
}
}
}
10.方法练习之打印所有的水仙花数
packagecom.bird_02;/** 写一个方法,使用打印所有水仙花数在控制台*/
public classMethodTest1 {public static voidmain(String[] args) {//调用
printFlower();
}/** 写一个方法,使用打印所有水仙花数在控制台
*
* 两个明确:
* 返回值类型:void
* 参数列表:没有参数*/
public static voidprintFlower(){for(int i=100;i<1000;i++){int ge = i%10;int shi = i/10%10;int bai = i/100%10;if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i){
System.out.println(i);
}
}
}
}
11.方法重载的概述和基本使用
packagecom.bird_03;/** 方法重载:在同一个类中,出现了方法名相同的情况
* 方法重载特点:
* 方法名相同,参数列表不同。与返回值无关
* 参数列表不同:
* 参数的个数不同
* 参数对应的类型不同
*
* 注意:
* 在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法*/
public classMethodDemo {public static voidmain(String[] args) {//定义变量
int a = 10;int b = 20;//求和方法
int ruselt =sum(a, b);
System.out.println("ruselt:" +ruselt);//定义变量
int x = 10;int y = 20;int z = 30;//求和方法
int ruselt2 =sum(x, y, z);
System.out.println("ruselt2:" +ruselt2);
}//不能出现方法名相同,参数类型相同的情况//public static int sum(int x,int y){//
//}//求三个数据的和
public static int sum(int a, int b, intc) {return a + b +c;
}//求两个数据的和
public static int sum(int a, intb) {return a +b;
}
}
12.方法重载练习之比较两个数据是否相等
packagecom.itheima_03;/** 比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,并在main方法中进行测试*/
public classMethodTest {public static voidmain(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));
}//byte
public static boolean compare(byte a,byteb) {
System.out.println("byte");return a ==b;
}//short
public static boolean compare(short a,shortb) {
System.out.println("short");return a ==b;
}//int
public static boolean compare(int a,intb) {
System.out.println("int");return a ==b;
}//long
public static boolean compare(long a,longb) {
System.out.println("long");return a ==b;
}
}
13.方法的形式参数是基本类型
packagecom.bird_04;/** 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。
*
* 形式参数:用于接收实际参数的变量
* 实际参数:实际参与运算的变量*/
public classArgsDemo {public static voidmain(String[] args) {int a = 10;int b = 20;
System.out.println("a:"+a+",b:"+b);//a:10,b:20
change(a,b);
System.out.println("a:"+a+",b:"+b);//??? a:10,b:20
}public static void change(int a,int b) {//a=10,b=20
System.out.println("a:"+a+",b:"+b);//a:10,b:20
a = b;//a=20
b = a + b;//b=40
System.out.println("a:"+a+",b:"+b);//a:20,b:40
}
}
14.方法的形式参数是基本类型图解
15.方法的形式参数是引用类型
packagecom.bird_04;/** 如果参数是引用数据类型:
* 形式参数的改变直接影响实际参数*/
public classArgsDemo2 {public static voidmain(String[] args) {int[] arr = {1,2,3,4,5};for(int x=0; x
System.out.println(arr[x]);
}
change(arr);for(int x=0; x
System.out.println(arr[x]);
}
}public static void change(int[] arr) {for(int x=0; x
{if(arr[x]%2==0)
{
arr[x]*=2;
}
}
}
}
16.方法的形式参数是引用类型图解
17.方法练习之数组遍历
packagecom.bird_05;/** 把遍历数组改进为方法实现,并调用方法*/
public classMethodTest {public static voidmain(String[] args) {//声明数组
int[] arr = { 11, 22, 33, 44, 55};//调用方法
printArray(arr);
}/** 两个明确: 返回值类型:void 参数列表:int[] arr*/
public static void printArray(int[] arr) {
System.out.print("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {
System.out.print(i+ "]");
}else{
System.out.print(i+",");
}
}
}
}
18.方法练习之获取数组最值
packagecom.bird_05;/** 把获取数组最值用方法实现,并调用*/
public classMethodTest2 {public static voidmain(String[] args) {//定义数组
int[] arr = {22,88,61,72,10};
//调用方法int max =getMax(arr);
System.out.println("数组最大数max="+max);
}/** 两个明确:
* 返回值类型:int
* 参数列表:int[] arr*/
public static int getMax(int[] arr){//定义参照数
int max = arr[0];//循环比较
for(int i=1;imax){
max=arr[i];
}
}returnmax;
}
}
19.方法练习之数组元素求和
packagecom.bird_05;/** 写一个方法,用于对数组进行求和,并调用方法。*/
public classMethodTest3 {public static voidmain(String[] args) {//定义数组
int[] arr = {1,2,3,4,5};//调用方法
int sum =sum(arr);
System.out.println("数组的总和是"+sum);
}/** 两个明确:
* 返回值类型:int
* 参数列表:int[] arr*/
public static int sum(int[] arr){//定义求和参数
int sum = 0;for (int i = 0; i < arr.length; i++) {
sum+=arr[i];
}returnsum;
}
}