java基础:方法

一、方法

1、Java方法是语句的集合,它们在一起执行一个功能。

  • 方法是解决一类问题的步骤的有序集合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用

2、设计方法的原则:方法的本意是功能块 ,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样有利于我们后期的扩展。

二、方法的定义及调用

1、java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段。

2、方法包含一个方法头和方法体,方法的所有部分:

  • **修饰符:**是可选择的,告诉编译器应该如何调用该方法,定义了该方法的访问类型。
  • 返回值类型:方法可能会返回值,returnValueType是方法返回值的数据类型。有些方法执行所需的操作但没有返回值,这种情况下,returnValueType的关键字是void。
  • **方法名:**是方法的实际名称,方法名和参数名共同构成方法签名。
  • **参数类型:**参数像是一个占位符,当方法被调用时,传递值给参数,这个值被称为实参或者变量,参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
  • **形参:**在方法被调用时用于接收外界输入的数据。
  • **实参:**调用方法时,实际传给方法的数据。
  • **方法体:**方法体包含具体的语句,定义该方法的功能。(该方法具体实现的代码)

3、访问控制修饰符

  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
  • public : 对所有类可见。使用对象:类、接口、变量、方法
  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

4、static、final、consnt

5、方法调用

对象名.方法名(实参列表)

Java支持两种调用方法的方式,根据方法是否返回值来选择,当方法返回一个值时,方法调用通常被当做一个值:

int larger = max(30,40);

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

System.out.println("Hello World");

6、值传递(Java)与引用传递

三、方法重载

重载就是在一个类中,有相同的函数名称,但是形参不同的函数。

重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同等)
  • 方法的返回类型可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

四、命令行传参

运行一个程序时在传递给它消息,这要靠传递命令行参数给main()函数实现。

五、可变参数

在方法声明中,在指定参数类型后加一个省略号(...),一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明。

六、递归

1、利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归测罗只需要少量的程序就可描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

2、递归包含两个部分

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
  • 递归体:什么时候需要调用自身方法。
java 复制代码
public class Demo3 {
    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);
        }
    }
相关推荐
言之。6 小时前
【Python】免费的中文 AI 配音方案
开发语言·人工智能·python
tq10866 小时前
因果本是叙事
笔记
天天进步20156 小时前
Python全栈项目:从零手操一个高性能 API 网关
开发语言·python
晓梦林6 小时前
Baji1靶场学习笔记
笔记·学习
Java面试题总结6 小时前
java高频面试题(2026最新)
java·开发语言·jvm·数据库·spring·缓存
希冀1237 小时前
【CSS学习第十一篇】
前端·css·学习
苦逼的猿宝7 小时前
学生心理咨询评估系统
java·毕业设计·springboot·计算机毕业设计
隔窗听雨眠7 小时前
doctype、charset、meta如何控制整个渲染流水线
java·服务器·前端
安生生申7 小时前
使用pygame实现2048
开发语言·python·pygame
魔法阵维护师8 小时前
从零开发游戏需要学习的c#模块,第十六章(安装 MonoGame 并创建第一个窗口)
学习·游戏·c#·monogame