ackage com.itheima_01;
/*
* 方法:其实就是完成特定功能的代码块
*
* 定义格式:
* 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
* 方法体;
* return 返回值;
* }
* 格式解释:
* A:修饰符 目前记住public static
* B:返回值类型 用于限定返回值的数据类型
* C:方法名 为了方便我们调用方法的名字
* D:参数类型 用于限定调用方法时传入的数据的类型
* E:参数名 用于接收调用方法时传入的数据的变量
* F:方法体 完成功能的代码
* G:return 结束方法,并且把返回值带给调用者
*
* 写一个方法有两个明确:
* A:返回值类型 明确功能结果的数据类型
* B:参数列表 明确有几个参数,以及参数的数据类型
*
* 案例:
* 写一个方法用于求和。
*/
public class MethodDemo {
public static void main(String[] args) {
}
/*
* 两个明确:
* 返回值类型:int
* 参数列表:int a,int b
*/
public static int sum(int a,int b) {
int c = a + b;
return c;
}
}
package com.itheima_01;
/*
* 方法的调用:(有明确返回值的方法调用)
* A:单独调用,没有意义
* B:输出调用,有意义,但是不够好,因为我可能需要拿结果进行进一步的操作
* C:赋值调用,推荐方式
*/
public class MethodDemo2 {
public static void main(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,int b) {
int c = a + b;
return c;
}
}
package com.itheima_01;
import java.util.Scanner;
/*
* 键盘录入两个数据,返回两个数中的较大值
*/
public class MethodTest {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
//调用方法
int max = getMax(a,b);
//输出结果
System.out.println("max:"+max);
}
/*
* 返回两个数中的较大值
*
* 两个明确:
* 返回值类型:int
* 参数列表:int a,int b
*/
public static int getMax(int a,int b) {
if(a > b) {
return a;
}else {
return b;
}
}
}
ackage com.itheima_01;
import java.util.Scanner;
/*
* 键盘录入两个数据,比较两个数是否相等
*/
public class MethodTest2 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(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,int b) {
if(a == b){
return true;
}else {
return false;
}
}
}
ackage com.itheima_01;
import java.util.Scanner;
/*
* 键盘录入三个数据,返回三个数中的最大值
*/
public class MethodTest3 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(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:"+max);
}
/*
* 返回三个数中的最大值
*
* 两个明确:
* 返回值类型:int
* 参数列表:int a,int b,int c
*/
public static int getMax(int a,int b,int c) {
if(a > b) {
if(a > c) {
return a;
}else {
return c;
}
}else {
if(b > c) {
return b;
}else {
return c;
}
}
}
}
ackage com.itheima_02;
/*
* 需求:写一个方法,在控制台输出10次HelloWorld案例
*
* 两个明确:
* 返回值类型:void
* 参数列表:没有参数
*
* 如果一个方法没有明确的返回值类型,也不能把返回值类型的地方空出来,应该写void表示该方法无返回值类型。
*
* 方法调用:(void修饰的方法的调用)
* 只能单独调用
*
*/
public class MethodDemo {
public static void main(String[] args) {
//单独调用
printHelloWorld();
//输出调用
//System.out.println(printHelloWorld());
//赋值调用
//void v = printHelloWorld();
}
/*
* 在控制台输出10次HelloWorld案例
*
* 两个明确:
* 返回值类型:void
* 参数列表:
*/
public static void printHelloWorld() {
// for(int x=1; x<=10; x++) {
// System.out.println("HelloWorld");
// }
for(int x=0; x<10; x++) {
System.out.println("HelloWorld");
}
}
package com.itheima_02;
/*
* 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值
*/
public class MethodTest {
public static void main(String[] args) {
//调用方法
printNumber(3);
System.out.println("------------");
printNumber(10);
}
/*
* 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值
*
* 两个明确:
* 返回值类型:void
* 参数列表:int n
*/
public static void printNumber(int n) {
for(int x=1; x<=n; x++) {
System.out.println(x);
}
}
package com.itheima_02;
/*
* 写一个方法,把所有的水仙花数打印在控制台
*/
public class MethodTest2 {
public static void main(String[] args) {
//调用方法
printFlower();
}
/*
* 写一个方法,把所有的水仙花数打印在控制台
*
* 两个明确:
* 返回值类型:void
* 参数列表:无参数
*/
public static void printFlower() {
for(int x=100; x<1000; x++) {
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
System.out.println(x);
}
}
}
}
package com.itheima_03;
/*
* 方法重载:在同一个类中,出现了方法名相同的情况。
* 方法重载的特点:
* 方法名相同,参数列表不同。与返回值无关。
* 参数列表不同:
* 参数的个数不同
* 参数对应的数据类型不同
*
* 注意:
* 在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法。
*/
public class MethodDemo {
public static void main(String[] args) {
//定义变量
int a = 10;
int b = 20;
//求和方法
int result = sum(a,b);
System.out.println("result:"+result);
//定义变量
int c = 30;
//求和方法
//int result2 = sum2(a,b,c);
int result2 = sum(a,b,c);
System.out.println("result2:"+result2);
}
//不能出现方法名相同,并且参数列表也相同的情况
// public static int sum(int x,int y) {
// return x + y;
// }
public static float sum(float a,float b) {
return a + b;
}
//求三个数据的和
/*
public static int sum2(int a,int b,int c) {
return a + b + c;
}
*/
public static int sum(int a,int b,int c) {
return a + b + c;
}
//求两个数据的和方法
public static int sum(int a,int b) {
//int c = a + b;
//return c;
return a + b;
}
}
package com.itheima_03;
/*
* 比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,并在main方法中进行测试
*/
public class MethodTest {
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));
}
//byte
public static boolean compare(byte a,byte b) {
System.out.println("byte");
return a == b;
}
//short
public static boolean compare(short a,short b) {
System.out.println("short");
return a == b;
}
//int
public static boolean compare(int a,int b) {
System.out.println("int");
return a == b;
}
//long
public static boolean compare(long a,long b) {
System.out.println("long");
return a == b;
}
}
package com.itheima_04;
/*
* 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。
*
* 形式参数:用于接收实际参数的变量
* 实际参数:实际参与运算的变量
*/
public class ArgsDemo {
public static void main(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
}
}