Java基础精讲方法的使用

目录
  • 一、方法
  • 二、方法的重载
  • 三、方法递归
  • 四、小结

一、方法

方法是什么?

在Java中方法就相当于C语言中的函数。因为有时候我们需要一块代码重复使用,这时候就可以使用方法。

为什么要用方法?

1. 是能够模块化的组织代码 ( 当代码规模比较复杂的时候 ).

2. 做到代码被重复使用 , 一份代码可以在多个位置使用 .

3. 让代码更好理解更简单 .

4. 直接调用现有方法开发 , 不必重复造轮子

方法的基本语法格式:

public static 返回类型 方法名称(形参列表){}

在这里要注意形参是实参的一份临时拷贝,形参并不能改变实参!!!

来看个例子:

public class TestModer {
public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("交换前"+"a = " + a + " b = " + b);
        swap(a, b);
        System.out.println("交换后"+"a = " + a + " b = " + b);
    }
    public static void swap(int x, int y) {
        int tmp = x;
        x = y;
        y = tmp;
    }
}

我们可以看看运行结果:

我们可以看到这里是传值调用,所以改变形参并不能改变实参。还有需要注意的就是在C语言中,被调用的函数需要放在调用函数前面,在Java中,方法的位置可以放前面也可以放后面,因为在Java中是从主函数开始执行的。

二、方法的重载

方法的重载是什么意思呢?我们通过一个例子来了解:

public class TestModer {
public static void main(String[] args) {
 int a = 10;
 int b = 20;
 int ret = add(a, b);
 System.out.println("ret = " + ret);
 double a2 = 10.5;
 double b2 = 20.5;
 double ret2 = add(a2, b2);
 System.out.println("ret2 = " + ret2);
 double a3 = 10.5;
 double b3 = 10.5;
 double c3 = 20.5;
 double ret3 = add(a3, b3, c3);
 System.out.println("ret3 = " + ret3);
public static int add(int x, int y) {
 return x + y;
   }
 public static double add(double x, double y) {
 return x + y;
   }
 public static double add(double x, double y, double z) {
 return x + y + z;
   }
}

在这里我们可以看到结果:

我们可以看看这三个方法,分别代表了两个整数的加法,两个浮点数的加法,三个浮点数的加法。这三个方法的方法名字都相同,第一个方法和第二个方法参数个数相同,第二个方法和第三个方法参数类型相同。

在C语言中同一个工程中每个函数函数名不能相同,但是Java中这里可以,同一个方法名字, 提供不同版本的实现, 称为 方法重载。

重载需要满足的条件:

1、方法名相同 。

2、方法的参数不同 ( 参数个数或者参数类型 ) 。

3、方法的返回值类型不做要求。

三、方法递归

递归是什么?

一个方法在执行过程中调用自身 , 就称为 " 递归 "。

注意:

1、递归需要有个趋近于终止的条件,否则会无限循环。

2、每次执行会越来越接近这个条件。

递归执行过程是什么样的呢?来看看几个例题:

//输出一个整数的每一位,如:123的每一位是1 ,2 ,3
public class TestModer {
public static void print(int n) {
        if (n < 10) {
            System.out.print(n + " ");
        } else {
            print(n / 10);
            System.out.print(n % 10 + " ");
        }
    }
    public static void main5(String[] args) {
        int num = 123;
        print(num);
    }
}

我们可以看到方法print自己调用自己的过程,每次执行时,n都越来越接近终止条件,这就是递归的一个过程。

//求斐波那契数列的第3项。(递归实现)
    public class TestModer {
    public static int fib(int num) {
        if(num==1||num==2){
            return 1;
        }
        else{
            return fib(num-1)+fib(num-2);
        }
    }
    public static void main(String[] args) {
        int n=3;
        int x=fib(n);
        System.out.println(x);
    }
}

四、小结

以上就是方法的一些使用,其中递归是一种重要的编程解决问题的方式,有些问题天然就是使用递归方式定义的(例如斐波那契数列, 二叉树等), 此时使用递归来解就很容易,有些问题使用递归和使用非递归(循环)都可以解决,那么此时更推荐使用循环, 相比于递归, 非递归程序更加高效。

到此这篇关于Java基础精讲方法的使用的文章就介绍到这了,更多相关Java方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java File类常用方法与文件过滤器详解

    目录 File类 File类常用的构造方法 查看文件的相应信息 遍历目录下的文件 文件过滤器 对子目录进行遍历 删除文件及目录 File类 File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,也可以是相对于当前目录的相对路径,File类内部封装的路径可以指向一个文件,也可以指向一个目录,在File类中提供了针对这些目录或文件的一些常规操作. File类常用的构造方法 File(String pathname)//通过指定的一个字符串类型的文件路径来创建一个新的File对象 Fil

  • 全面分析Java方法的使用与递归

    目录 java中方法的使用 什么是方法 方法的定义与使用 方法如何进行调用及其方法调用过程 方法的形参和实参 方法重载 方法签名 递归 java中方法的使用 什么是方法 举一个日常生活中的例子,比如我们在学校班长都会发送消息,比如它想让班级里的每一个人到某某教学楼某某班级进行开会,他就会给每个人发信息,同学今天我们有重要会议要进行开班会请你到某某教学楼某某班级来,如果班长要给每一个人发送信息,一个班里有很多人这样班长发信息就会很累,换个思路,班长要群发消息这样是不就会很省心.这也就是与java中

  • Java由浅入深全面讲解方法的使用

    目录 一.方法的概念及其使用 1.1.什么是方法 1.2.方法的定义 1.3.方法调用的执行过程 1.4.实参和形参的关系(重要) 二.方法的重载 2.1.为什么需要方法重载 2.2.方法重载的定义 2.3.方法签名 三.递归 3.1.递归的概念 3.2.递归过程分析 3.3.递归小练习 一.方法的概念及其使用 1.1.什么是方法 方法就是一个代码片段. 类似于 C 语言中的 “函数”.作用如下: 1. 是能够模块化的组织代码(当代码规模比较复杂的时候). 2. 做到代码被重复使用, 一份代码可

  • Java详细讲解文件的读写操作方法

    目录 java的IO 字节流 InputStream的常用方法 OutputStream的常用方法 字节流读写文件 如何将数据写入到文件中 java的IO Java程序允许通过流的方式与输入输出设备进行数据传输.Java中的流都在java.io包中,称为IO(输入输出)流.IO流按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同,又可以分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据,在IO包中,字节流的输入输出分别用java.InputStream和java.io

  • Java基础精讲方法的使用

    目录 一.方法 二.方法的重载 三.方法递归 四.小结 一.方法 方法是什么? 在Java中方法就相当于C语言中的函数.因为有时候我们需要一块代码重复使用,这时候就可以使用方法. 为什么要用方法? 1. 是能够模块化的组织代码 ( 当代码规模比较复杂的时候 ). 2. 做到代码被重复使用 , 一份代码可以在多个位置使用 . 3. 让代码更好理解更简单 . 4. 直接调用现有方法开发 , 不必重复造轮子 方法的基本语法格式: public static 返回类型 方法名称(形参列表){} 在这里要

  • C++ primer类的基础精讲

    目录 定义抽象数据类型 初探this和 构造函数 访问控制和封装 友元 类的其他特性 可变数据成员 返回*this的成员函数 友元类 构造函数再探 构造函数初始值列表 默认构造函数的作用 聚合类 类的静态成员 定义抽象数据类型 初探this和 struct Sales_data { string isbn(){return bookNo;} Sales_data & combine(const Sales_data&); double avg_price() const; string b

  • Java基础学习之方法的重载知识总结

    一.什么是方法的重载? 方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法. 调用时,会根据不同的参数自动匹配对应的方法. 二.构成方法重载的条件 1).不同的含义:形参类型.形参个数.形参顺序不同 2).只有返回值不同不构成方法的重载 如:int a(String str){} 与 int void(String str){} 不构成方法重载 3).只有形参的名称不同,不构成方法的重载. 如:int a(String str){} 与 int a(String s){} 不构成方法

  • Java基础之多线程方法状态和创建方法

    目录 Java之线程的五大状态及其常用方法(六个状态还有timed_wating超时等待) 1.线程的五大状态及其转换 2.设置或获取多线程的线程名称的方法 3.线程休眠------sleep()方法 4.线程让步------yield()方法 5. 等待线程终止------join()方法 6. 线程停止 7. 线程等待------wait()方法 8. 线程唤醒-------notify()方法 9. notifyAll()方法 JAVA多线程有哪几种实现方式? 1. 继承Thread类 2

  • Java基础第二篇方法与数据成员

    目录 1.调用同一对象的数据成员 2.方法的参数列表 3.调用同一对象的其他方法 4.数据成员初始化 5.总结 上一篇文章Java基础 从HelloWorld到面向对象 1.调用同一对象的数据成员 方法可以调用该对象的数据成员.比如下面我们给Human类增加一个getHeight()的方法.该方法返回height数据成员的值: public class Test { public static void main(String[] args) { Human aPerson = new Huma

  • Java基础之toString的序列化 匿名对象 复杂度精解

    目录 序列化 匿名对象 复杂度 时间复杂度 大O的渐进表示法 时间复杂度的分类 计算时间 复杂度的方法 空间复杂度 toString的序列化.匿名对象.复杂度 序列化 toString 方法的原理就是序列化,他可以帮助我们讲一个抽象的对象变得具体,譬如把对象里面的名字.年龄.身高等信息具象为字符串.(总之,序列化:将对象转化为字符串:反序列化:将字符串转化为对象). 匿名对象 匿名对象适用于只想使用一次的情况,因为匿名对象是没有引用的,每次用都要重新new 一遍对象,很麻烦. class Per

  • Java 数据结构与算法系列精讲之排序算法

    概述 从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章. 冒泡排序 冒泡排序 (Bubble Sort) 是一种简单的排序算法. 它重复地遍历要排序的数列, 一次比较两个元素, 如果他们的顺序错误就把他们交换过来. 遍历数列的工作是重复地进行直到没有再需要交换, 也就是说该数列已经排序完成. 这个算法的名字由来是因为越小的元素会经由交换慢慢 "浮" 到数列的顶端. 冒泡排序流程: 通过比较相邻的元素, 判断两个元素位置是否需要互换 进行 n-1 次比较,

  • Java 数据结构与算法系列精讲之单向链表

    目录 概述 链表 单向链表 单向链表实现 Node类 add方法 remove方法 get方法 set方法 contain方法 main 完整代码 概述 从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章. 链表 链表 (Linked List) 是一种递归的动态数据结构. 链表以线性表的形式, 在每一个节点存放下一个节点的指针. 链表解决了数组需要先知道数据大小的缺点, 增加了节点的指针域, 空间开销较大. 链表包括三类: 单向链表 双向链表 循环链表 单向链表 单向链表

  • Java 数据结构与算法系列精讲之环形链表

    目录 概述 链表 环形链表 环形链表实现 Node类 insert方法 remove方法 main 完整代码 概述 从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章. 链表 链表 (Linked List) 是一种递归的动态数据结构. 链表以线性表的形式, 在每一个节点存放下一个节点的指针. 链表解决了数组需要先知道数据大小的缺点, 增加了节点的指针域, 空间开销较大. 链表包括三类: 单向链表 双向链表 循环链表 环形链表 环形链表 (Circular Linked Li

  • Java 数据结构与算法系列精讲之栈

    目录 概述 栈 栈实现 push方法 pop方法 main 完整代码 概述 从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章. 栈 栈 (Stack) 是一种运算受限的线性表, 遵循先进后出的原则 (Last-In-First-Out). 举个例子, 当我们灌调料的时候, 后灌进去的调料会先被使用. 栈只能在表尾部进行插入和删除的操作. 开口的一端被称为栈顶, 另一端则被称为栈底. 如图: 栈实现 push 方法 栈 (Stack) 的 push 方法, 把项压入栈顶部.

随机推荐