java入门 -- 函数(方法)

本文深入讲解了Java中的函数(方法),包括其定义、格式(包括静态与非静态,有形参与无形参)、调用方式,以及内存调用、函数重载和递归的概念。通过实例演示和原理剖析,帮助读者掌握函数在编程中的关键运用。

1.函数

1. 1什么是函数(method、方法):

▪ 函数是定义在类中的一段独立的代码块,用来实现某个功能。Java中,函数又被称为方法。
▪ 将功能封装为函数,可以使其重复使用,简化代码。
▪ java里函数必须定义在类里面。

1.2函数的格式:

▪ 修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){方法体程序代码
return 返回值; }

例如:

public class Person{
private int age;
public int getAge() { //声明方法getAge()
return age; 
}

▪ Java中静态方法没有办法直接调用非静态方法,只能调用静态方法。
▪ static 表示函数是静态的。
▪ void 表示函数有无返回值。
函数名(形参列表) 表示函数有无形参。

▪ 有形参 静态

public  static void setAge(int i) { //声明方法setAge
age = i; //将参数i的值赋给类的成员变量age
}

▪ 无形参 非静态

public  int setAge() { 
return age;
}

1.3函数的调用:

▪ 函数的调用通过"类名.方法名(参数)"调用,例如:x(t)

	public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入n的值");
    int t =sc.nextInt();

    System.out.println(x(t));
	}
    public static int x(int i ) {
	  int sum =i;
	  
			boolean x=(i>0)&&((sum +=x(i-1))>0);
//	     sum +=x(i-1);
//	        boolean flg = (n>0) && ((sum += Sum_Solution(n-1)) > 0);

			  return sum;
			  }}

2.函数进一步理解

2.1函数的内存调用:

在这里插入图片描述
后续会进行函数的内存解析。

2.2 函数重载(overload):

▪ 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
▪ 与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。

例如:

1:
int add(int x,int y){return x+y;}
2:
int add(int x,int y,int z){return x+y+z;}
3:
double add(double x,double y){return x+y;}
4:
int add(double p,double q){return p+q;}

▪ 1,2,3构成重载
▪ 3,4不构成重载

2.3 递归:

一个方法体内调用它自身。

/计算1-100之间所有自然数的和
public int sum(int num){
if(num == 1){
return 1;
}else{
return num + sum(num - 1);
}
 }

递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死
循环

▪ 注意递归要有结束条件,不然会报StackOverflowError
▪ jvm规定了栈的最大深度,当执行时栈的深度大于了规定的深度,就会抛出StackOverflowError错误。

### Java 方法入门使用教程 在 Java 中,方法是一种用于执行特定操作的功能单元。通过定义和调用方法,可以实现代码的模块化设计,提高可读性和重用性。 #### 什么是方法方法是一组用来完成某一功能的语句集合。它允许开发者将复杂的逻辑分解成更小的部分以便于管理和维护。Java 中的方法分为两种:实例方法和静态方法[^2]。 #### 定义方法 以下是定义一个简单方法的基本语法: ```java // 返回型为 int方法示例 public int add(int a, int b) { return a + b; } ``` 在这个例子中: - `public` 是访问修饰符,表示该方法可以在任何地方被调用。 - `int` 表示返回值的数据型。 - `add` 是方法名称。 - `(int a, int b)` 是参数列表,指定传递给方法的变量及其数据型。 如果方法不需要返回任何值,则可以将其声明为 `void` 型: ```java public void greet() { System.out.println("Hello, world!"); } ``` #### 调用方法 要调用已定义的方法,只需按照其签名书写即可。例如,在主方法中调用上述两个方法如下所示: ```java public class MainClass { public static void main(String[] args) { // 创建对象并调用实例方法 MyClass myObject = new MyClass(); int result = myObject.add(5, 3); System.out.println(result); // 调用静态方法 MyStaticClass.greet(); } } class MyClass { public int add(int a, int b) { return a + b; } } class MyStaticClass { public static void greet() { System.out.println("Hello from static method"); } } ``` 注意这里区分了 **实例方法** 和 **静态方法** 的不同之处——前者需要先创建的对象才能调用;而后者可以直接通过名来调用。 #### 参数与返回值 方法可以通过形参接收外部输入,并通过返回值向外界提供计算结果。下面是一个带有多个参数以及复杂返回型的例子: ```java public double calculateArea(double radius) { final double PI = Math.PI; // 常量圆周率 return PI * radius * radius; } ``` 此函数接受半径作为参数,并基于公式 \(A=\pi r^{2}\),返回对应的面积值。 #### 默认参数支持(仅限 Java 8 及以上版本) 从 JDK 8 开始,默认方法的概念引入到了接口当中,但这并不适用于普通中的常规方法。不过对于 Lambda 表达式的某些场景下可能间接涉及默认行为设定[^3]。 --- ### 总结 本文介绍了 Java 方法的基础概念、定义方式、调用形式等内容。理解这些基础知识有助于进一步深入学习面向对象编程的核心理念和技术应用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值