欢迎光临
我们一直在努力

Java方法

前言

本人的技术笔记会优先发布在个人站点longyxblg.cn

方法的概念和使用

在编程中,某段功能的代码可能频繁使用到,如果在每个位置都重新实现一遍,会:

  • 使程序变得繁琐

  • 开发效率低下,做了大量重复性的工作

  • 不利于维护,需要改动时,所有用到该段代码的位置都需要修改

  • 不利于复用

因此,在 Java 编程中,我可以将频繁使用的代码封装成方法,类似于 C 语言中的函数,需要时直接拿来链接(即方法名–方法的入口地址)使用即可,避免了一遍一遍的累赘。

使用方法有以下好处:

  • 模块化的组织代码

  • 一份代码可以在多个位置使用

  • 让代码更好理解更简单

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

方法的定义

语法格式

修饰符 返回值类型 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}

比如此时,要定义一个方法来判断一个整数的奇偶性

public static boolean IsOdd(int num){
// 判断 num 是不是奇数
if(num % 2 != 0)
{
return true;
}
else
{
return false;
}
}

int a = 10;
if(IsOdd(a))
{
System.out.println("变量 a 是奇数");
}
else
{
System.out.println("变量 a 是偶数");
}

在这里插入图片描述

  • 修饰符:现在直接使用public static 固定搭配,更多的修饰符会在后面介绍

  • 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void

  • 方法名字:采用小驼峰命名

  • 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开

  • 方法体:方法内部要执行的语句

  • 在java当中,方法必须写在类当中

  • 在java当中,方法不能嵌套定义

  • 在java当中,没有方法声明一说

方法调用的执行过程

调用方法—>传递参数—>找到方法地址—>执行被调方法的方法体—>被调方法结束返回—>回到主调方法继续往下执行

  • 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行

  • 一个方法可以被多次调用

实参和形参的关系

类似于 C 语言中的传值调用,形参只是实参的一份临时拷贝,形参的改变不会影响实参的值。

public static void Swap(int x , int y){
// 测试能不能交换实参的值
x = x ^ y;
y = x ^ y;
x = x ^ y;
}

int a = 10;
int b = 20;
Swap(a,b);
System.out.println(a);
System.out.println(b);

在这里插入图片描述

调试查看到在函数中形参确实是成功交换了值

在这里插入图片描述

实参并没有交换

由于 Java 中是没有指针这一概念的,具体要怎么实现将放到类与对象中说明。

方法重载

在自然语言中,一个词语如果有多重含义,那么就说该词语被重载了,具体代表什么含义需要结合具体的场景。

在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。

注意,构成重载的条件:

  • 方法的名字必须相同

  • 参数列表必须不同

  • 与返回值类型无关

在这里插入图片描述

public static double add(double x,double y){
// 方法的重载
return x + y;
}

public static int add(int x, int y ,int z){
// 方法的重载
return x + y + z;
}

public static int add(int x,int y){
// 方法的重载
return x + y;
}

int num1 = 10;
int num2 = 20;
int num3 = 30;
double num4 = 5.0;
double num5 = 10.0;
System.out.println(add(num1,num2));
System.out.println(add(num1,num2,num3));
System.out.println(add(num4,num5));

在这里插入图片描述

编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法。

递归

有时候遇到的问题直接并不好解决,但是发现将原问题拆分成其子问题之后,子问题与原问题有相同的解法,等子问题解决之后,原问题就迎刃而解了。这种思想称为递归。

递归的概念

一个方法在执行过程中调用自身, 就称为 “递归”。递归有一个递推公式,还有一个终止条件。每一次递归都更接近这个终止条件。

递归的使用

public static void Reverse(int num){
// 逆序打印一个数字
if(num > 0)
{
System.out.print(num % 10);
Reverse(num / 10);
}
}

public static int Factorial(int n){
// 递归求 n 的阶乘
if(n != 1)
{
return n * Factorial(n 1);
}
return 1;
}

System.out.println(Factorial(5));
Reverse(1234);

在这里插入图片描述

赞(0)
未经允许不得转载:171主机测评 » Java方法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址