01-方法介绍
-
介绍 : 方法 | 函数 (method) 一段具有独立功能的代码块, 不调用就不执行
-
好处 :
-
提高了代码的可阅读性
-
体现 : 将原本挤在一起的臃肿代码, 按照功能进行分类管理
-
-
提高了代码的复用性
-
体现 : 写好的一个方法, 是可以进行多次调用
-
-
-
问题 : 方法的出现是否可以提高程序的执行效率 ?
-
不能 !
-
02-方法的通用定义格式
public static 返回值类型 方法名 (参数列表) {
方法体;
return 结果数据;
}
public static : (修饰符)目前来说, 暂时记忆
返回值类型 : 跟return返回的结果有关
方法名 : 见名知意, 小驼峰命名法
参数列表 : 方法运行之前, 需要的材料
方法体 : 方法中真正执行的逻辑代码
return :
1. 用于结束方法
2. 用于将结果返还给调用者.
思考: 自己这个方法, 内部使用的数据, 是否有灵活性的要求?
有 : 声明参数
没有 : 不需要声明参数
2. 返回值
先正常编写方法逻辑
观察: 自己这个方法是否有结果产生
有 : 通过return语句返回, 并将void修改为对应的数据类型
没有 : 返回值类型写void (标识此方法没有结果返回)
03-方法的调用
赋值调用 (推荐)
拿到了真实的数据, 数据在手, 干什么都行
04-方法的常见问题
1. 方法不调用就不执行
2. 方法与方法之间是平级关系, 不允许嵌套定义
3. 方法的编写顺序和执行顺序无关, 要想梳理执行顺序, 就看调用顺序
4. 方法的返回值类型如果是void, 表示此方法没有返回值, 可以省略return语句不写
如果非要写的话, 只能写成return;
5. return语句下面不能写代码, 因为执行不到, 属于无效代码
6. 如果一个方法有具体的返回值类型, 一定要通过return语句带回结果, 无论什么情况下
05-方法重载 (Overload)
-
介绍 : 方法与方法之间的一种关系
-
目标1 : 能够独立识别出方法与方法之间是否是正确的重载
-
在同一个类中, 方法名相同, 参数不同, 与返回值无关
参数不同: 1. 个数不同 2. 类型不同 3. 顺序不同
06-方法练习
package com.wanxi;
import java.util.Scanner;
public class AddOrEven {
public static void main(String[] args) {
int num = getNumber("请输入一个整数: ");
judgement(num);
}
/**
* 得到键盘输入的一个整数
*
* @return
*/
private static int getNumber(String tips) {
Scanner scanner = new Scanner(System.in);
System.out.print(tips);
int num = scanner.nextInt();
return num;
}
/**
* 判断奇数偶数,输出结果
*
* @param num
*/
private static void judgement(int num) {
if (num % 2 == 0) {
System.out.println("偶数");
}
if (num % 2 != 0) {
System.out.println("奇数");
}
}
}
package com.wanxi;
import java.util.Scanner;
public class GetEven {
public static void main(String[] args) {
int start = getNumber("请输入开始数字:");
int end = getNumber("请输入结束数字:");
getEven(start,end);
}
/**
* 得到键盘输入的一个整数
*
* @return
*/
private static int getNumber(String tips) {
Scanner scanner = new Scanner(System.in);
System.out.print(tips);
int num = scanner.nextInt();
return num;
}
/**
* 等到n~m之间的所有偶数
* @param n
* @param m
*/
private static void getEven(int n, int m) {
for (int i = n; i <= m; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
}
}
package com.wanxi;
import java.util.Scanner;
public class GetMax {
public static void main(String[] args) {
int num1 = getNumber("请输入第一个数字: ");
int num2 = getNumber("请输入第一个数字: ");
getMax(num1, num2);
}
/**
* 得到键盘输入的一个整数
*
* @return
*/
private static int getNumber(String tips) {
Scanner scanner = new Scanner(System.in);
System.out.print(tips);
int num = scanner.nextInt();
return num;
}
/**
* 得到2个数的最大值,并输出
*
* @param n
* @param m
*/
private static void getMax(int n, int m) {
int max = n > m ? n : m;
System.out.println(max);
}
}
package com.wanxi;
import java.util.Scanner;
public class MaxOfArray {
public static void main(String[] args) {
int length = getNumber("请输入数组长度: ");
int[] array = getOneArray(length);
assignmentArray(array, length);
runArray(array);
int max = getMaxOfArray(array);
System.out.println("数组元素的最大值是: " + max);
}
/**
* 得到键盘输入的一个整数
*
* @return
*/
private static int getNumber(String tips) {
Scanner scanner = new Scanner(System.in);
System.out.print(tips);
int num = scanner.nextInt();
return num;
}
/**
* 得到一个数组
*
* @param length
* @return
*/
private static int[] getOneArray(int length) {
int[] array = new int[length];
return array;
}
/**
* 为数组的元素赋值,赋值内容键盘输入
*
* @param array
* @param length
*/
private static void assignmentArray(int[] array, int length) {
for (int i = 0; i < length; i++) {
int num = getNumber("请输入索引为" + i + "的元素数据: ");
array[i] = num;
}
}
/**
* 遍历数组,并打印数组元素
*
* @param array
*/
private static void runArray(int[] array) {
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if (i != array.length - 1) {
System.out.print(array[i] + " ");
}
if (i == array.length - 1) {
System.out.println(array[i] + "]");
}
}
}
/**
* 找出数组的最大元素
*
* @param array
*/
private static int getMaxOfArray(int[] array) {
int max = 0;
for (int i = 0; i < array.length; i++) {
max = max > array[i] ? max : array[i];
}
return max;
}
}
package com.wanxi;
import java.util.Scanner;
public class RunArray {
public static void main(String[] args) {
int length = getNumber("请输入数组长度: ");
int[] array =getOneArray(length);
assignmentArray(array, length);
runArray(array);
}
/**
* 得到键盘输入的一个整数
*
* @return
*/
private static int getNumber(String tips) {
Scanner scanner = new Scanner(System.in);
System.out.print(tips);
int num = scanner.nextInt();
return num;
}
/**
* 得到一个数组
*
* @param length
* @return
*/
private static int[] getOneArray(int length) {
int[] array = new int[length];
return array;
}
/**
* 为数组的元素赋值,赋值内容键盘输入
* @param array
* @param length
*/
private static void assignmentArray(int[] array, int length) {
for (int i = 0; i < length; i++) {
int num = getNumber("请输入索引为" + i + "的元素数据: ");
array[i] = num;
}
}
/**
* 遍历数组,并打印数组元素
* @param array
*/
private static void runArray(int[] array) {
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if (i != array.length - 1) {
System.out.print(array[i] + " ");
}
if (i == array.length - 1) {
System.out.println(array[i] + "]");
}
}
}
}
package com.wanxi;
import java.util.Scanner;
public class RunChenMing {
public static void main(String[] args) {
String information = getInformation("请输入打印的信息: ");
int num = getNumber("请输入打印次数: ");
soutIfon(num, information);
}
/**
* 得到键盘输入的一个整数
*
* @return
*/
private static int getNumber(String tips) {
Scanner scanner = new Scanner(System.in);
System.out.print(tips);
int num = scanner.nextInt();
return num;
}
/**
* 得到键盘输入的信息
*
* @param tips
* @return
*/
private static String getInformation(String tips) {
Scanner scanner = new Scanner(System.in);
System.out.print(tips);
String information = scanner.next();
return information;
}
/**
* 打印n次信息
*
* @param n
* @param information
*/
private static void soutIfon(int n, String information) {
for (int i = 0; i < n; i++) {
System.out.println(information);
}
}
}