Java方法介绍

目录

什么是方法?

为什么会需要方法?

方法带来的好处

方法的基本格式

方法的分类

1:无参无返回值的方法

2:无参有返回值的方法

3:有参无返回值的方法

4:有参有返回值的方法

方法的调用

1:普通调用

2:递归调用

拓展

1:驼峰命名法

2:return

3:修饰符

小结


什么是方法?

方法method,就相当于其他语言中的函数function;就是解决问题/完成某个功能的一段代码。

为什么会需要方法?

  1. 如果方法都设计在main方法中,会使代码杂乱,执行也会变得很麻烦;
  2. 使用变量时也很容易产生冲突,而且由于代码自上而下执行的特性;
  3. 当我们需要一个重复功能的时候,就需要重复写功能,会使逻辑变得混乱

方法带来的好处

  1. 每个代码片段都是独立的,可以单独执行
  2. 每个方法中的变量互不影响
  3. 方法定义完之后可以重复使用

方法的基本格式

以主方法(main方法)为例:

public static void main(String[] args) {
    System.out.println("这是main方法");
}
  • public和static部分是方法的修饰符;
  • void部分是方法返回值类型,方法的返回值类型可以是任何有效的数据类型,包括原始数据类型(如int、double等)、引用数据类型(如String、数组、自定义类等)、枚举类型和void类型。需要注意的是,方法的返回值类型必须与方法声明中的返回值类型相匹配。返回值的类型可以是基本类型,也可以是引用类型。选择返回值类型时,根据方法的逻辑和需求选择合适的数据类型。
  • main部分是方法名,起名规范一般遵循小驼峰命名,小驼峰命名是一种命名约定,即其中除了第一个字母外,每个单词的首字母都大写;
  • ()内是方法的参数列表,也就是在调用参数时需要传入的数据,类型可以是任何有效的数据类型,可以根据需求选择适合的类型,参数数量可以是多个,多个参数之间用逗号隔开;
  • {}内是代码块,也就是这个方法执行时,要运行的代码部分,可以实现功能,如果有返回值,需要在{}最后加上return,用来返回数据。

解析代码:

public boolean userLogin(int id,String password) {
    boolean b = false;
    System.out.println("这里可以编写代码用来实现代码的功能!");
    b = true;
    return b;
}

以上代码的public是方法的修饰符,boolean代表该方法返回的是boolean类型的数据,userLogin是方法名,遵循小驼峰命名法,int和String代表需要传入的参数类型,id和password代表接收参数的变量名,方便在代码块内调用,{}是代码实现功能的部分,最后的return用来将boolean类型的b返回给调用方法的部分。

要注意的是:

  • 每个方法都是独立的,定义时方法是平级,不能嵌套
  • 所有方法都需要在main方法中调用才能执行,被执行的方法也可以调用其他代码
  • 方法在类中的位置无所谓,上下都行

方法的分类

1:无参无返回值的方法

即返回值为void且方法名后括号内为空的方法,如下:

public void method (){
    System.out.println("这是一个无参无返回值的方法");
}

无参无返回值的方法一般都用来执行固定功能,用处较为单一;

2:无参有返回值的方法

即返回值不为void且方法名后括号内为空的方法,如下:

public String method (){
    System.out.println("这是一个无参有返回值的方法");
    return "返回值类型是String类型";
}

无参有返回值的方法一般都用来获取固定返回值,例如:返回一个日期和固定字符串拼接的String类型的值;

3:有参无返回值的方法

即返回值为void且方法名后括号内不为空的方法,如下:

public void method (int i){
    System.out.println("这是一个有参无返回值的方法,参数为:" + i);
}

有参无返回值的方法一般根据不同的参数实现不同的功能,或者根据不同的参数调用不同的方法;

4:有参有返回值的方法

即返回值不为void且方法名后括号内也不为空的方法,如下:

public String method (String str){
    System.out.println("这是一个有参有返回值的方法");
    return str;
}

有参有返回值的方法能够进行的操作,实现的功能较多,也是使用量较多的方法。

方法的调用

1:普通调用

方法和方法之间可以互相调用,调用格式为:

  • 数据类型 变量 = 方法名([参数]);(有返回值定义变量接收,参数有就写,没有就不写)
  • 方法名([参数]);(无返回值,参数有就写,没有就不写)

如果被调用的方法存在返回值,可以设置与返回值同类型的变量来接收返回值,要注意的是,返回值是谁调用就返回给谁:

public static void main(String[] args) {
    m1();
}
public static void m1 (){
    System.out.println("方法m1执行");
    int i = m2();
    System.out.println("i = " + i);
}
public static int m2 (){
    System.out.println("方法m2执行");
    return m3();
}
public static int m3 (){
    System.out.println("方法m3执行");
    return 7;
}

该代码执行结果为:

方法m1执行
方法m2执行
方法m3执行
i = 7 

如上代码,执行顺序为:

  • main调用m1
  • m1执行打印语句
  • m1调用m2
  • m2执行打印语句
  • m2调用m3获取返回值
  • m3执行打印语句
  • m3返回int类型的7
  • m3执行结束
  • m2接收到7返回给m1
  • m2执行结束
  • m1中变量i接收7
  • m1输出i = 7
  • m1执行结束
  • main执行结束

2:递归调用

递归调用就是方法自己调用自己,直到达成某个条件会跳出调用:

public static void main(String[] args) {
    int jc = jc(4);
    System.out.println("jc = " + jc);
}

/**
 * 递归求阶乘
 * 4! = 4 * 3 * 2 * 1
 */
public static int jc(int n){
    if (n == 1){
        return 1;
    }
    return n * jc(n-1);
}

以上代码就是比较典型的递归调用,用来求阶乘,要注意的是,递归调用使用需要谨慎,如果出现无法停止的问题,请手动停止代码的运行,否则容易造成堆栈内存溢出。如果非必要,尽量少用递归调用。

拓展

1:驼峰命名法

我们通常将驼峰命名分为小驼峰命名(camelCase)和大驼峰命名(PascalCase),大小驼峰命名(CamelCase)是一种命名约定:

  • 在小驼峰命名中,其中除了第一个字母外,每个单词的首字母都大写。小驼峰命名通常用于变量和方法的命名。
  • 在大驼峰命名中,每个单词的首字母都大写。大驼峰命名通常用于类和接口的命名。

遵循大小驼峰命名约定可以使你的代码更易读、更清晰,并符合Java编码规范。在编写代码时,见名知意也会使代码的可阅读性大大提高。

2:return

关于return,有两个作用

  1. 用来返回值,在有返回值的方法中,return必须有,而且return后必须跟返回值
  2. 在没有返回值的方法中,return可写可不写,如果存在return,便会结束当前代码

3:修饰符

在Java中,可以使用多种访问修饰符来修饰方法,这些修饰符指定了方法的可见性、行为和限制。下面是一些常见的方法修饰符:

  • public:公共修饰符,表示方法可以被任何类访问。
  • private:私有修饰符,表示方法只能在定义该方法的类内部访问。
  • protected:受保护修饰符,表示方法可以在同一包内的其他类以及其子类中访问。
  • 默认(没有修饰符):如果没有指定修饰符,方法默认具有包级私有的访问权限,即只能在同一个包中的其他类中访问。

除了上述访问修饰符之外,还有一些其他的方法修饰符,可以用于更精细地控制方法的行为和限制,例如:

  • static:静态修饰符,表示该方法属于类而不是对象,可以直接通过类名调用。
  • final:最终修饰符,表示该方法不能被子类重写。
  • synchronized:同步修饰符,用于多线程编程,表示该方法在同一时间只能被一个线程执行。
  • abstract:抽象修饰符,表示该方法没有实现,需要在子类中进行实现。
  • native:本地修饰符,表示该方法使用非Java代码实现,通常用于与本地系统或库进行交互。

小结

合理的使用方法可以提高代码的重用性、可读性、可维护性和可靠性,使程序更结构化和模块化,提高开发效率和代码的性能优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值