📂java
🔖java
2021-11-17 16:19阅读: 32评论: 0推荐: 0

方法

何为方法?

Java方法是语句的集合,它们在一起执行一个功能.
方法是解决一类问题的步骤的有序组合.
方法包含与类或对象中.
方法在程序中被创建,在其他地方被引用.

package com.kuang.Method;

public class Demo01 {
    //方法
    public static void main(String[] args) {
         int sum = add(1,2);
         System.out.println(sum);
        test();
    }
    //加法
    public static int add(int a,int b){
        return a+b;
    }
    public static void test(){
        for (int i = 1; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
            }
            if (i%(5*3)==0){//换行
                System.out.println();//System.out.print("\n");
            }
        }
        //println 输出完会换行
        ///print 输出完不会换行
    }
}

方法的定义:Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:

方法包含一个方法头和一个方法体.下面是一个方法的所有部分:
1.修饰符:修饰符,这是可选的,告诉编译器如何调用该方法.定义了该方法的访问类型.
2.返回值类型:方法可能会返回值.returnValueType是方法返回值的数据类型.有些方法执行所需的操作,但没有返回值.在这种情况下,returnValueType是关键字void
3.方法名:是方法的实际名称.方法名和参数表共同构成方法签名.
4.参数类型:参数是一个占位符.当方法调用时,传递值给参数.这个值被成为实参或变量.参数列表是指方法的参数类型、顺序和参数的个数.参数是可选的,方法不包含任何参数.

形式参数:在方法被调用是用于接收外接输入的数据.
实参:调用方法是实际传给方法的数据.

方法体:方法包含具体的语句,定义该方法的功能

方法的调用:

调用方法:对象名.方法名(实参列表)
Java支持两种调用方式,根据方法是否返回值来选择.
当方法返回一个值的时候,方法调用通常被当做一个值.例如

int larger = max(30,40);

如果方法返回值是void,方法调用一定是一条语句.

System.out.println("Hello,kuangshen!");

值传递:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

Java只有值传递没有引用传递

引用传递:是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

方法的重载

重载是在一个类中,有相同的函数名称,但形参不同的函数.
**方法重载的规则:
1.方法的名称必须相同.
2.参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等).
3.方法的返回类型可以相同也可以不同.
4.仅仅返回类型不同不足以成为方法的重载.

实现理论:方法名称相同,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。

package com.kuang.Method;

public class Demo02 {
    public static void main(String[] args) {
        int max  = max(10,20);
        System.out.println(max);
    }
    //比大小
    public static double max(double num1, double num2){

        double result=1;
        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result =  num1;
        }else {
            result =num2;
        }
        return result;
    }
    public static int max(int num1,int num2){

        int result=1;
        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result =num2;
        }
        return result;
    }
}

命令行传参

有时候你希望运行一个程序时候在传递给他消息,这要靠传递命名行参数给main()函数实现

package com.kuang.Method;
public class Demo03 {
    public static void main(String[] args) {
        for(int i=0; i<args.length;i++){
            System.out.println("args["+i+"]:"+args[i]);
        }
    }
}

无返回值
打开此文在所在的位置,再次打开cmd
用javac编译此文件在java此文件的.class
但是发现还是不能完成,因为这有个包,需要退到包的根目录:


此时我们需要回到文件所在包的根目录:

此时虽然没有输出但是我们可以给他一些输出:

当我们在后面给他赋值后就会有返回值,这就是命令行传参.

可变参数

1.JDK1.5开始,Java支持传递同类型的可变参数给一个方法.
2.在方法声明中,在指定参数后加一个省略号(...).
3.一个方法中只能指定一个可变参数,它必须是方法的最后一个参数.任何普通的参数必须在它之前声明.

package com.kuang.Method;

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(5,3,2,5,41,5,1,214,14,12);
    }
    public void test(int... i){
        System.out.println(i[4]);
    }
}

递归

A方法调用B方法,我们很容易理解!
递归就是:A方法调用A方法!就是自己调用自己.
利用递归可以有简单的程序来解决一些复杂的问题,它通常把一些大型复杂的问题层层转化为一个
与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出解题过程所需要的
多次差重复计算,大大地减少了程序的代码量.递归的能力在于用有限的语句来定义对象的无限集合.

递归结构包括两个部分:
1.递归头:什么时候不调用自身方法.如果没有头,将陷入死循环.
2.递归体:什么时候需要调用自身方法.
就像这个自己调用自己,会陷入死循环.

package com.kuang.Method;

public class Demo05 {
    public static void main(String[] args) {
        Demo05 test = new Demo05();
        test.test();
    }
    public void test(){
        test();
    }
}

阶乘的计算

package com.kuang.Method;

public class Demo06 {
    public static void main(String[] args) {
        System.out.println(f(5));
    }
    public static  int f(int n){
        if (n==1){
            return 1;
        }else {
            return n*f(n-1);
        }
    }
}

本文作者:freedomAndWind

本文链接:https://www.cnblogs.com/linjiangplus/p/15563959.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   freedomAndWind  阅读(32)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 Meet Fi9江澈,果妹
Meet - Fi9江澈,果妹
00:00 / 00:00
An audio error has occurred.

作词 : Fi9江澈

作曲 : Fi9江澈

她不是很瘦 她的个子也够不高

她不是很瘦 她的个子也够不高

她有时很逗 有时候 她也够SAO

每次她化完妆盯着问我 我会说她很丑

但每次离开的时候 我们互相 谁都不肯走

她爱吃粉丝的醋 也爱跟我 生气

她做傻事的时候 也都是和我会有争议

她不化妆的时候 我会刻意的说她很漂亮

总爱素颜的时候 去和别的女生去较量

她喜欢我性格的好 和行为上的屌丝

喜欢我的城市还有运河街道边的小吃

她有时很任性 莫名的跟我吵架

每次她耍小性子 也都会被我都一顿的好骂

她叫我玩游戏 我总故意不跟她玩

每次吵架的时候 总骂我是个渣男

她会讨好我爸妈 也会买礼物给悄悄

每次 卖萌 我也心领神会的笑笑

HOOK:街边的落雨下 我在这个小小世界

你走进我生命 又出现在我面前

谁又能代替呢 我所有的留恋

每次的遇见都是我们的永恒的瞬间

她一直都很敏感 总是常常怕我失去

她不知道 在我心里 她是我写下的诗句

她会在心情不好的时候 跟朋友去酗酒

大醉之后会说以后的路 她会陪着我去走

总爱问我分手了 会不会像以前 那样去对她

提些奇怪的问题 手机屏保为什不是她

说我对你这么好 你竟然想要跟我分手

哎 这个贱男人 我就知道 你可真狗

这个不可理喻的女人让我又爱又恨

生病的时候让人心疼 看起来又乖又笨

就算吵架的时候 不爱跟你讲道理

在人群中我依然 一眼就能找到你

我可以为 她遮风为她挡雨

也可以陪她一整天 依偎在我房里

还记得第一次见她 是我 第一次的演出

还记得她也曾在 夜里 为我闭着眼哭

HOOK:街边的落雨下 我在这个小小世界

你走进我生命 又出现在我面前

谁又能代替呢 我所有的留恋

每次的遇见都是我们的永恒的瞬间

街边的落雨下 我在这个小小世界

你走进我生命 又出现在我面前

谁又能代替呢 我所有的留恋

每次的遇见都是我们的永恒的瞬间

混音:Fi9江澈

混音:Fi9江澈

统筹:杨冰

OP:汇音文化