java基础——方法

1.概念:

  • 实现特定功能的⼀段代码,可反复使⽤。

2.定义无参方法

public static void 方法名() {
    //方法体,就是逻辑代码
}
  • 定义的位置,要和main定义在同一级

  • 可以通过 方法名() 调用此方法,目的就是执行方法体中的代码

  • 好处:代码提高的复用性

package com.qfedu;
​
public class Demo01 {
​
    public static void main(String[] args) {
        //打印六行******
        printstar();
        
        System.out.println("----------------------------");
        
        /*
         * 在main方法中,使用  方法名()  调用此方法
         * 
         * 调用此方法:就是执行该方法中定义的代码
         */
        printstar();
        
    }
​
    //方法  对一些逻辑代码的整合/重构
    public static void printstar() {
        
        System.out.println("******");
        System.out.println("******");
        System.out.println("******");
        System.out.println("******");
        System.out.println("******");
        System.out.println("******");
        
    }
    
    //编写方法打印5行,一行十个-,调用此方法
    public static void main(String[] args) {
        //打印五行----------
        printSign(5);
    }
    
    //方法  对一些逻辑代码的整合/重构
    public static void printSign(int n) {
        for(int i=0;i<=n;i++) {
            System.out.println("----------");
        }
}

3.定义有参方法

  • 把方法中可能会变化的值,定义成一个变量

  • 变量需定义在方法的小括号中,叫做型参

  • 在调用时,必须为括号中的变量赋值,赋的值叫做实参

public static void 方法名(数据类型 参数1, 数据类型 参数2, 数据类型 参数3,....) {
    //方法体,就是逻辑代码
}

package com.qfedu;
​
public class Demo02 {
    
    public static void main(String[] args) {
        printstar(5);
        
        printTriangle(7,"@");
    }
​
    
    
    /*
     * 定义有参数的方法
     * 1. 要把参数(变量),定义在方法的小括号,起个名字叫形参
     * 2. 如果调用这个方法,必须要形参赋值,给形参赋的值,咱们叫实参
     */
    public static void printstar(int n) {
        for(int i=1; i<=n; i++) {
            System.out.println("******");
        }
    }
    
    /*
     *      1. 一个方法中可以定义多个形参,形参和形参之间使用逗号分隔
     *      2. 当调用方法时,需要为每个形参赋值,形参和实参的顺序一定要一致
     */
    public static void printTriangle(int n, String sign) {
        for(int i=1; i<=n; i++) {
            
            for(int j=1; j<=i; j++) {
                System.out.print(sign);
            }
            System.out.println();
            
        }
    }
    
    /*
     * 定义一个方法,方法有三个参数
     * 第一个参数,打印多少行
     * 第二个参数,每行打印多个个图形
     * 第三个参数,打印什么图形
     * 
     * 
     * 打印五行
     */
    public static void printSign4(int rows, int cols, String sign) {
        for(int i=1; i<=rows; i++) {
            for(int j=1; j<=cols; j++) {
                System.out.print(sign);
            }
            System.out.println();
        }
    }
}

4.有返回值得方法

public static 返回数据类型 方法名(数据类型 参数1, 数据类型 参数2, 数据类型 参数3,....) {
    //方法体,就是逻辑代码
    return 值;
}
  • void 修改成一种数据类型(你想要得到的是什么数据,那么就定义成该种数据的类型)

  • 该方法必须使用return 返回该数据类型的一个具体值

  • 在调用此方法时,必须使用该数据类型的变量 接受这个值

  • 如果一个方法中,已经执行了return关键字,那么程序就不再往下执行了

    /*
     * 定义一个方法,方法有两参数,获取两个参数的和
     */
    public static int sum(int n, int n2) {
        int sum = n+n2;
        return sum;
    }
package com.qfedu;
​
public class Demo03 {
    
    public static void main(String[] args) {
        int sum = sum(1, 3);
        System.out.println(sum);
    }
    
    /*
     * 定义一个方法,方法有两参数,获取两个参数的和
     * 
     * 定义有返回值的方法
     * 1. void 修改成一种数据类型(你想要得到的是什么数据,那么就定义成该种数据的类型)
     * 2. 该方法必须使用return 返回该数据类型的一个具体值
     * 3. 在调用此方法时,必须使用该数据类型的变量 接受这个值
     * 4. 如果一个方法中,已经执行了return关键字,那么程序就不再往下执行了
     */
    public static int sum(int n, int n2) {
        int sum = n+n2;
        return sum;
    }
    
    /*
     * 定义一个方法,参数为两个整数,返回最大的值
     */
    public static int max(int n, int n2) {
        //int max=n>n2?n:n2;
        //return max;
        if(n > n2) {
            return n;
        } 
        
        return n2;
    }
    
}

5.方法名命名规范

  • 方法名是由数字,字母,下划线,美元符组成(不推荐使用汉字)

    • 不能以数字开头

  • 首字母小写

  • 见闻知意

    • 使用英语翻译(一定不要使用汉语拼音)

  • 驼峰法

    • 除了第一个单词的首字母小写,后面每个单词的首字母都大写

  • 不能使用java关键字

6.实例代码

//定义方法,有一个参数n,返回1+2+3+4......n
class Text{
    public static void main(String[] args) {
        
        System.out.println(sum(10));
    }
    
    public static int sum(int n ) {
        int sum=0;
        for(int i=1;i<=n;i++) {
            sum+=i;
        }
        return sum;
    }
}
​
​
//定义方法,有一个参数n,返回n!  (1*2*3**....n)
class Text2{
    public static void main(String[] args) {
        
        System.out.println(sum(10));
    }
    
    public static double sum(int n ) {
        double sum=1;
        for(int i=1;i<=n;i++) {
            sum*=i;
        }
        return sum;
    }
}

7.递归

递归方法就是自己调用自己,然后有一个程序的出口

​
//用递归的方法    定义方法,有一个参数n,返回n!  (1*2*3**....n)
class Text3{
    public static void main(String[] args) {
        
        System.out.println(factorial(10));
    }
​
    /*
     * factorial(n) = factorial(n-1)*n
     * 
     * factorial(100) = factorial(99)*100
     * factorial(99) = factorial(98)*99
     * ...
     * factorial(3) = factorial(2)*3
     * factorial(2) = factorial(1)*2
     * 
     * factorial(1) = 1
     * 
     * factorial(100)= 1*2*3*....*98*99*100
     */
​
    public static double factorial(int n ) {
        if(n==1) {
            return 1;
        }
        return factorial(n-1)*n;
    }
}
//用递归的方法    定义方法,有一个参数n,返回1+2+3+4+5+6....+n
class Text3_1{
    public static void main(String[] args) {
        
        int sum = sum(100);
        System.out.println(sum);
​
    }
    /*
     * sum(100) = sum(99)+100
     * sum(99) = sum(98)+99
     * ...
     * sum(3) = sum(2)+3
     * sum(2) = sum(1)+2
     * 
     * sum(1) = 1
     * 
     * 
     * sum(100)=sum(99)+100
     */
    public static int sum(int n) {
        if (n ==1) {
            return 1;
        }
        
        return sum(n-1)+n;
    }
​
}
​

8.斐波那契数列

package com.qfedu;
​
public class Demo07 {
​
    /*
     * 斐波那契数列
     *  0 1 1 2 3 5 8 13 21 34 55
     * 
     * m是个方法,返回第n个数的值   n是个参数,代表第几个值
     *  m(n) = m(n-1)+m(n-2)     n>=3
     *  1                        n=2
     *  0                        n=1
     */
    public static int fibonacci(int n) {
        if(n ==1) {
            return 0;
        } else if(n ==2) {
            return 1;
        }
        
        return fibonacci(n-1)+fibonacci(n-2);
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值