【狂神说Java】学习笔记13:Java方法详解
【狂神说Java】学习笔记13:Java方法详解
[01] 何谓方法
[02] 方法定义以及调用
[03] 方法重载
★[04] 命令行传参★
[05] 可变参数
★[06] 递归★
--------------------------------------------------------------------
[01] 何谓方法
方法:是语句的集合。在一起执行一个功能
System.out.println() 语句里,System是类,out是对象,println()是方法。
翻译:调用系统类System里的标准输出对象out里的println方法。
package Chapter5_method;
public class Demo1 {
// main 方法 :调用加法里的方法
public static void main(String[] args) {
int sum = add(1,2);
System.out.println(sum);
}
// 加法
public static int add(int a, int b){
return a+b;
}
}
--------
3
[02] 方法定义以及调用
举例:比较数字大小的写法
package Chapter5_method;
public class Demo02 {
public static void main(String[] args) {
int bigOne =max(10,20); //实际参数10和20
System.out.println("bigOne = "+bigOne);
}
// 比较数字大小,写好以下流程,然后到main方法里套用并运行。
public static int max(int num1,int num2){ //形式参数num1和num2
int result = 0;
if(num1 ==num2){
System.out.println("num1 = num2");
return 0; // return 0;此时是中止方法的作用。
}
if( num1 > num2){
result = num1;
}else{
result = num2;
}
return result;
}
}
----------------------
bigOne = 20
[03] 方法重载
一个class里有两个相同名称的方法,只是参数类型不同。
比如int max和double max两个方法。
★[04]★ 命令行传参
通过命令行cmd的互联,来给java文件传参数并执行。
命令行传参的实例应用:
第一步:写好如下的java代码。内容是将数组内的元素一一输出。
package Chapter5_method;
public class Demo03 {
public static void main(String[] args) {
// 命令行传参的应用。将cmd输入的参数一一输出。
// args.length 数组长度
for (int i = 0; i < args.length; i++) {
System.out.println("args["+ i+ "]:" +args[i]);
}
}
}
第二步:找到java文件所在路径,并找到java文件。
第三步:通过文件夹cmd
命令,打开编辑器,输入javac Demo03.java
,
编译器把java文件编译为class文件。
第四步:返回到src文件夹包的层级加载(不找到这个src层的话无法被执行),
然后输入:完整路径 + 文件 + 参数 。
java Chapter5_method.Demo03 this is a joke
此时编译器就把我们空格输入的每一个参数都当作数组元素,一一输出。
总结:
先找到java文件的存在路径,然后编译成class文件。
再回到src层级,输入完整文件路径和参数即可执行。
有点复杂有点绕。
[05] 可变参数
可变参数:同类型方法的可变参数的合写。
package Chapter5_method;
public class Demo04 {
public static void main(String[] args) {
// 调用可变参数的方法
printMax(34, 3, 7, 2, 56.5);
printMax(new double[]{1,2,3});
}
public static void printMax( double... numbers){
if (numbers.length == 0){
System.out.println("No argument passed");
return;
}
double result = numbers[0];
// 排序!
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > result){
result = numbers[i];
}
}
System.out.println("The Max Value is " + result);
}
}
————————————————————————————
The Max Value is 56.5
The Max Value is 3.0
★[06] 递归★
面试笔试的高频问题。必须掌握。
递归就是自己调用自己的方法。
递归结构包括两部分:递归头(什么时候不调用自身方法)和递归体(什么时候调用自身方法)
package Chapter5_method;
public class Demo06 {
// 用递归 计算阶乘。
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int n){
// 2! = 2*f(1)=2*1
// 3! = 3*f(2)*f(1)=3*2*1
if (n==1){
return 1;
}else{
return n*f(n-1);
}
}
}
-------------------
120