06 Java方法

简介: 06 Java方法

6 方法

6.1 概念

方法:封装了一些为了解决某个问题而编写的代码片段称之为一个方法。可以反复使用

PS:方法:其实就是一段功能代码封装,只要利用方法中提供名字,就可以在任意位置执行一段功能代码

将一段功能代码写入到一个代码块中【大括号括起来就是代码块】,这个代码块有一个名字,每次要执行这段功能代码的时候只需要写入这个名字,就可以完成代码的执行,这个就是方法

6.2 方法的组成部分

public static void main(String[] args) {

}

  • public 公共的 方法的访问修饰符
  • static 静态的 方法的修饰符
  • void 空白的 方法的返回值类型
  • main 主要的 方法的名称
  • () 方法的参数列表
  • {} 方法体

方法的组成部分:

  • 方法的定义
  • 方法体
/*通用语法:
访问权限修饰符 [其他修饰符] 返回值类型 方法名(参数列表){
      方法体【方法可以执行的操作】
      return
}
*/
package JavaseDemo;
public class Demo {
    public static void main(String[] args) {
        System.out.println("----------调用方法1---------");
        //调用方法
        printSign(10,'=');
        System.out.println("----------调用方法2---------");
        printSign(15,'*');
        System.out.println("----------调用方法3---------");
        printSign(6,'8');
        System.out.println("----------调用方法4---------");
        printSign(3,'y');

    }
    //定义多个参数的方法,多个形参直接用逗号隔开
    public static void printSign(int count,char sign){
        for (int i = 0; i < count; i++) {
            System.out.print(sign);
        }
        System.out.println();
    }
}
//----------调用方法1---------
//==========
//----------调用方法2---------
//***************
//----------调用方法3---------
//888888
//----------调用方法4---------
//yyy

6.3 方法的定义

DRY原则:don’t repeat youself

方法详细说明:

  1. 访问权限修饰符:作用当前这个方法谁可以调用,在Java中权限修饰符一共有4个,这4个修
    饰符都可以用于修饰方法,“这里我们先固定使用一个修饰 public【公有的】
  2. 其他修饰符:可以在通用语法中可以看到,使用中括号将其他修饰符括起来,代表意思是可
    以省略不写,从Java8开始其他修饰符一共有4个【其中包含接口中1个】,“这里我们先固定
    使用一个修饰符 static【静态的】

3.返回值类型:作用外界调用【触发】这个方法之后可以得到一个什么样的结果

返回值类型在方法中一共有三种:“基本数据类型、引用类型和void【无返回值类型(方法专

用)】

这三种类型将决定可以得到一个什么样的结果

PS:这个返回值类型与方法内部中return关键字有很大的关联

4.方法名: 就是方法名字,方便记忆与调用,但是需要遵守某些规则**【基础规则:满足标识符**
命名规则,进阶规则:不要使用拼音、拼音缩写、不要写中文,英文单词(有意义),单词

组成要遵守小驼峰的规则(首个单词首字母小写,后续每个单词首字母大写 —getStudentAge)

5.参数列表: 作用提供方法从外界获取到数据在方法内部使用(参数列表写法就是在定义变

量,每个变量之间都使用【,】逗号分隔)

在定义方法时,方法的参数列表一共有两种定义形态:

5.1 如果方法中没有使用外界传递数据在方法内部使用,此时可以不定义参数列表,直接使

用空的小括号()

5.2 如果方法中使用外界传递数据在方法内适用,必须定义与传递数据类型一致的变量进行

接收,有多少个数据传递进来就可以定义多少个变量,但是变量与变量之间必须使用逗号分隔

6.{ }大括号:方法的主体,提供方法内部实现代码就写在这个大括号中

7.在方法体中机大括号中,可以使用到一个关键字return这个关键具备两个意义

return关键字的作用是:结束一个方法或结束一个方法并带回一个返回值

return关键字的使用跟返回值类型有关:

如果方法的返回值类型使用void,此时方法中可以使用return关键字也可以不使用,但是如果使

用绝对不允许带有返回值

如果方法返回值类型使用基本数据类型或引用数据类中的一种,方法必须使用return关键字,

return关键字带回的返回值需要和返回值类型一致并且有一个值

方法在类文件中书写的位置

Java中最小的程序单元是类不是方法

Java中所有方法都是平级关系,不允许出现方法嵌套方法的定义

Java中定义方法不存在先后顺序,影响方法的顺序是方法调用的

6.3.1 无参无返回值

public static void 方法名(){}

无返回值的方法多用与打印语句操作【在方法内部使用打印语句输出效果】

6.3.2 有参无返回值

public static void 方法名(数据类型 参数名,数据类型 参数名,…){}

//案例1:定义一个方法,打印三角形,(三角形行数有调用者来确定)
import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int n =input.nextInt();
        printSJ(n);
    }
    public static void printSJ(int rows) {
        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= i ; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
6.3.3 无参有返回值

public static 数据类型 方法名(){}

package JavaseDemo;
public class Demo {
    public static void main(String[] args) {
        //定义变量接收返回值
        int r = add(10,40);
        System.out.println("结果是"+r);
    }
    public static int add(int x,int y){
        int z=x+y;
        return z;
    }
}
//50
6.3.4 有参有返回值

public static 数据类型 方法名(数据类型 参数名,…){}

6.4 方法的调用
6.4.1 调用无参无返回值

方法名();

//调用方法
printGuShi();
closeDoor();
6.4.2 调用有参无返回值

方法名(实参);

//调用方法
printSJ(10);
showLevel(90);
6.4.3 调用无参有返回值

返回值类型 变量名 = 方法名();

System.out.println(方法名());

//调用方法
int sum = sum();
System.out.println(sum);
//调用方法
System.out.println(count());
6.4.4 调用有参有返回值

返回值类型 变量名 = 方法名(实参);

System.out.println(方法名(实参));

//方法调用
long jc = jc(10);
System.out.println(jc);
//方法调用
System.out.println(max(10,20));


public class Demo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入两个整数");
        int n =input.nextInt();
        int m =input.nextInt();
        System.out.println(jc(n));
        System.out.println(max(n,m));
    }
    //案例1:定义一个方法,求1-n的阶乘
    public static long jc(int n) {
        long jc = 1;
        for (int i = 1; i <= n; i++) {
            jc = jc * i;
        }
        return jc;
    }
    //案例2:方法包含 2 个参数 num1 和 num2,它返回这两个参数的最大值。
    public static int max(int num1,int num2) {
        if(num1 > num2) {
            return num1;
        }else {
            return num2;
        }
    }
}
6.5 return关键字

return关键字的作用:表示结束当前方法

  • return可以用在有返回值的方法中:
  • 表示方法返回值(必须) return 值; 一个方法只能有一个返回值
  • return也可以用在没有返回值的方法中:
  • 表示结束方法。 return;
  • 在return的后面不能直接写任何代码,因为不可能执行的到
  • 没有返回值的方法可以写return,有返回值的方法必须要写return 返回值
6.6 方法使用注意细节
  • 方法的定义位置:方法需要定义在类的里面其他的方法的外面,方法之间不能互相嵌套
  • 方法的实参要与形参保持一致(个数、类型、顺序)
  • 方法的返回值,并不一定要接收,但是一般方法定义了返回值没有去接受那么就没有意义
6.7 方法的好处
  • 方法的定义位置:方法需要定义在类的里面其他的方法的外面,方法之间不能互相嵌套
  • 方法的实参要与形参保持一致(个数、类型、顺序)
  • 方法的返回值,并不一定要接收,但是一般方法定义了返回值没有去接受那么就没有意义
6.8 方法递归(了解)
6.8.1 递归

什么是递归?

  • 解决具有既定规律的问题时,在方法内部再次调用自身方法的一种编程方式。

何时使用递归?

  • 当需要解决的问题可以拆分成若干个小问题,大小问题的解决方式相同,方法中自己调用自己。
  • 使用循环解决的常规问题,都可以替换为递归解决。

如何正确使用递归?

  • 设置有效的出口条件,可以让调用链上的每个方法都可以正确返回,避免无穷递归
6.8.2 递归应用

案例1:求某个数的阶乘

案例2:求斐波那契数列第n项

案例3:输出一个数的每一位上的值

6.9 方法的重载(Overload)
6.10 练习

后面再补上

案例1:求某个数的阶乘

案例2:求斐波那契数列第n项

案例3:输出一个数的每一位上的值

练习1:输入一个数字使用方法计算1-这个数字的和,并返回结果。

练习2:使用方法输出100~200之间能被3整除的数。

练习3:使用方法判断一个数是否为素数。

练习4:使用方法求1-100之间可以被7整除的数的个数。

6.11练习(加强)
6.12 方法的内存调用(补充)

需求:使用方法完成两个数的交换,并在调用之后打印交换过后的值

import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println("交换之前a的值是:"+a);
        System.out.println("交换之前b的值是:"+b);
//在不使用方法的前提下交换两个数据的值
/* //提供第三方变量进行数据存交换
int tmp = a; //tmp中存储是a变量值
a = b; //将b变量的值存储在a中 a就具有b的值
b = tmp; //将tmp的值赋值b,间接的等于将a的值赋值给b,所以b中存储这个a值*/
//使用方法交换两个数据的值
        swap(a,b);
        System.out.println("交换之后a的值是:"+a);
        System.out.println("交换之后b的值是:"+b);
    }
    public static void swap(int a, int b){
        int tmp = a; //tmp中存储是a变量值
        a = b; //将b变量的值存储在a中 a就具有b的值
        b = tmp; //将tmp的值赋值b,间接的等于将a的值赋值给b,所以b中存储这个a值
    }
}

//        交换之前a的值是:1
//        交换之前b的值是:2
//        交换之后a的值是:1
//        交换之后b的值是:2

目录
相关文章
|
4月前
|
前端开发 JavaScript Java
Java 开发中 Swing 界面嵌入浏览器实现方法详解
摘要:Java中嵌入浏览器可通过多种技术实现:1) JCEF框架利用Chromium内核,适合复杂网页;2) JEditorPane组件支持简单HTML显示,但功能有限;3) DJNativeSwing-SWT可内嵌浏览器,需特定内核支持;4) JavaFX WebView结合Swing可完美支持现代网页技术。每种方案各有特点,开发者需根据项目需求选择合适方法,如JCEF适合高性能要求,JEditorPane适合简单展示。(149字)
415 1
|
14天前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
155 18
|
22天前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
139 4
|
2月前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
86 11
|
27天前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
179 5
|
2月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
3月前
|
算法 Java 开发者
Java 项目实战数字华容道与石头迷阵游戏开发详解及实战方法
本文介绍了使用Java实现数字华容道和石头迷阵游戏的技术方案与应用实例,涵盖GUI界面设计、二维数组操作、游戏逻辑控制及自动解法算法(如A*),适合Java开发者学习游戏开发技巧。
218 46
|
4月前
|
Java 索引
Java ArrayList中的常见删除操作及方法详解。
通过这些方法,Java `ArrayList` 提供了灵活而强大的操作来处理元素的移除,这些方法能够满足不同场景下的需求。
451 30
|
3月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
286 0
|
4月前
|
安全 Java API
Java 17 及以上版本核心特性在现代开发实践中的深度应用与高效实践方法 Java 开发实践
本项目以“学生成绩管理系统”为例,深入实践Java 17+核心特性与现代开发技术。采用Spring Boot 3.1、WebFlux、R2DBC等构建响应式应用,结合Record类、模式匹配、Stream优化等新特性提升代码质量。涵盖容器化部署(Docker)、自动化测试、性能优化及安全加固,全面展示Java最新技术在实际项目中的应用,助力开发者掌握现代化Java开发方法。
159 1
下一篇
开通oss服务