【JavaSE笔记】第七章 方法
作者:互联网
7.方法
方法的定义及调用
定义
[修饰符列表] 返回值类型 方法名(形参列表)
{
方法体;
}
- 修饰符列表是可选项,目前统一写成public static
- 返回值类型可以是基本数据类型也可以是引用数据类型,没有返回值一定要写void
- 方法名:开发规范要求首字母小写,遵循驼峰命名
- 形式参数列表:每一个形参都是局部变量,多个参数用", "分隔
调用
类名.方法名(实际参数列表);
public class MethodTest
{
public static void main(String[] args)
{
MethodTest.sumInt(100, 200);
MethodTest.sumDouble(1.0, 2.0);
}
public static void sumInt(int x, int y)
{
System.out.println(x + "+" + y + "=" + (x + y));
}
public static void sumDouble(double a, double b)
{
System.out.println(a + "+" + b + "=" + (a + b));
}
}
Note:
- 实参和形参一定要一一对应:个数要一样,类型要相同
- 也会存在自动类型转换
- a方法在调用b方法,且在同一个类的时候,类名.可以不写
方法返回值详解
一个方法返回值不是void的情况下,要求方法体中必须有负责返回数据的语句即return
并且返回的数据类型要和声明的一致
return关键字的语句只要执行,方法结束
在同一个域中,return后面不能写任何代码
方法返回值类型是void的时候,方法体中允许出现return;语句
方法的返回值在接收的时候要求变量的数据类型和返回值一致,也遵循自动类型转换规则
栈数据结构
允许在表的一端插入和删除(栈顶)
push(入栈)-pop(出栈)
特点:先进后出,后进先出
方法执行过程中内存的变化
方法区中存储类的信息,可以理解为代码片段
java程序开始执行的时候先通过类加载器子系统找到硬盘上的字节码文件,将其加载到java虚拟机的方法区中
开始调用main方法,main方法调用的瞬间会给main方法在栈内存中分配所属的活动空间,压栈
方法只定义不调用java虚拟机不会在栈内存给该方法分配活动空间
方法执行结束,活动空间被释放掉,弹栈
public class MethodTest02
{
public static void main(String[] args)
{
System.out.println("main begin");
m1();
System.out.println("main over");
}
public static void m1()
{
System.out.println("m1 begin");
m2();
System.out.println("m1 over");
}
public static void m2()
{
System.out.println("m2 begin");
System.out.println("m2 over");
}
}
main begin
m1 begin
m2 begin
m2 over
m1 over
main over
方法重载(overload)
是指在一个类中定义多个重名的方法,但要求每个方法具有不同的参数的类型或者参数的个数。调用重载方法时,Java编辑器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。
在同一个类当中,如果多个功能是相似的,可以考虑将它们的方法名定义得一致,使用方法重载机制
构成方法重载的三个条件:
- 在同一个类当中
- 方法名相同
- 参数列表不同:个数不同/顺序不同/类型不同
public class OverloadTest
{
public static void doSome(int i)
{
}
public static void doSome(long i)
{
}
public static void doSome(int i, long j)
{
}
public static void doSome(long j, int i)
{
}
public static void doSome(long x, int y)
{
}
public static int doSome(int i)
{
return 1;
}
void doSome(int i)
{
}
}
方法重载和修饰符无关
方法递归
public class RecursionTest03
{
public static void main(String[] args)
{
int n = 5;
int result = accumulate(n);
System.out.println("1到"+ n + "的和是:" + result);
}
public static int accumulate(int n)
{
if(n == 1)
{
return 1;
}
return n + accumulate(n - 1);
}
}
标签:int,void,笔记,static,第七章,JavaSE,main,方法,public 来源: https://blog.csdn.net/weixin_45965462/article/details/123584933