day04【 Idea、方法】
一. idea
二. 方法
1. 回顾方法的格式
修饰符 返回值类型 方法名(参数列表) {
方法体;
return;
}
2. 返回值类型和参数列表
- 方法: 当成是一种功能.
- 返回值类型: 使用了这个功能, 我能得到什么.
- 参数列表: 使用了这个功能, 我要提供什么.
举例:
- 无参无返回
- 无参有返回
- 有参无返回
- 有参有返回
3. 需求: 求两个数的和
public static void main(String[] args) {
int i = getSum(10, 20); // 实际参数
System.out.println(i);
}
/**
*
* 此方法用于求两个数的和
* 两个明确:
* 明确返回值类型: 和, int
* 明确参数列表: 两个数, int a, int b
* (数据类型 变量名, 数据类型 变量名 ... )
*
*/
public static int getSum(int a, int b) { // 形式参数
return a + b;
}
4. 方法定义和调用时的注意事项
- 如果方法有明确的返回值类型, 必须使用return返回一个该类型的值.
- 如果方法有明确的参数列表, 在调用时, 必须传入对应数据类型的参数(值).
- 如果方法有明确的返回值类型, 方法返回什么类型, 就可以用什么类型来接收方法的调用.
5. 练习
(1) 求两个数的最大值
public class Demo02_求两个数的最大值 {
public static void main(String[] args) {
int max = getMax(30, 30);
System.out.println(max);
}
/**
*
* 此方法用于求两个数的最大值
*
* 明确返回值类型: 最大值, int
* 明确参数列表: 两个数, int a, int b
*
*/
public static int getMax(int a, int b) {
// 求最大值
// 如果a大于b
if (a > b) {
// 返回a
return a;
}else {
// 否则
// 返回b
return b;
}
}
}
(2) 比较两个整数是否相同
package com.itheima._02method;
public class Demo03_比较两个整数是否相同 {
public static void main(String[] args) {
boolean b = isEquals(20, 20);
System.out.println(b);
}
/**
* 此方法用于比较两个整数是否相同
*
* 明确返回值类型: 是否相同, boolean
* 明确参数列表: 两个整数, int a, int b
*/
public static boolean isEquals(int a, int b) {
// if
/*if (a == b) {
return true;
}else {
return false; // return: 结束方法
}*/
// 三元运算符
/*boolean equal = a == b ? true : false;
return equal;*/
// 直接返回
return a == b;
// return false; // 不可达代码
}
}
(3) 求1一直加到100的和
package com.itheima._02method;
public class Demo04_求1一直加到100的和 {
public static void main(String[] args) {
int sum1 = get100Sum();
System.out.println(sum1);
int sum2 = getNSum(99); // 实参
System.out.println(sum2);
}
/**
* 此方法用于计算1+2+3...+100的和
*
* 明确返回值类型: 和, int
* 明确参数列表: 无
*/
public static int get100Sum() {
// 定义变量, 用来记录每一次相加得到的和
int sum = 0;
// 1 ~ 100的循环
for (int i = 1; i <= 100; i++) {
sum += i; // sum = sum + i;
}
// 返回和
return sum;
}
/**
* 此方法用于计算1+2+3...+n的和
*
* 明确返回值类型: 和, int
* 明确参数列表: int n
*/
public static int getNSum(int n) { // 形参
// 定义变量, 用来记录每一次相加得到的和
int sum = 0;
// 求和
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
}
(4) 实现不定次数打印
package com.itheima._02method;
public class Demo05_实现不定次数打印 {
public static void main(String[] args) {
print(1);
}
/**
* 需要指定n, 方法中需要完成打印n次"HelloWorld"
*
* 明确返回值类型: 无
* 明确参数列表: n次, int n
*/
public static void print(int n) {
for (int i = 1; i <= n; i++) {
System.out.println("HelloWorld");
}
}
}
三. 方法的其他概念
1 . 方法的三种调用格式
- 直接调用
方法名(参数);
- 赋值调用
数据类型 变量名 = 方法名(参数);
- 输出语句调用
System.out.println(方法名(参数));
直接调用 | 赋值调用 | 输出语句调用 | |
---|---|---|---|
无返回值的方法 | √ | × | × |
有返回值的方法 | √, 没有意义 | √, 推荐使用 | √, 只能打印一次 |
总结:
- 无返回值的方法只能使用直接调用
- 有返回值的方法都可以使用, 但是推荐使用赋值调用
2. 方法的重载
- 同一个类中, 出现方法名相同, 参数列表不同, 与返回值类型和修饰符无关.
参数列表不同:
1. 类型不同
2. 个数不同
3. 顺序不同
/**
* 此方法用于求两个整数的和
*/
public static int getSum(int a, int b) {
return a + b;
}
/**
* 此方法用于求三个整数的和
*/
public static int getSum(int a, int b, int c) {
return a + b + c;
}
/**
* 此方法用于求两个小数的和
*/
public static double getSum(double a, double b) {
return a + b;
}
/**
* 此方法用于求一个整数和一个小数相加的和
*/
public static double getSum(int a, double b) {
return a + b;
}
public static double getSum(double a, int b) {
return a + b;
}