- 方法的基础语法:
-
【方法修饰列表】 返回值类型 方法名 (方法参数列表){
-
方法体
-
}
-
方法修饰列表
-
是可选项,方法的修饰符可以包括:public protected private abstract static final synchronized,其中public protected private 不能同时存在
-
返回值类型
-
如果没有返回值使用void关键字,如果存在返回值可以是基本类型和引用类型
-
如果存在返回值,使用return语句,Return语句后面不能再执行语句,因为不可能会执行到,编译器会发生错误。
-
方法名
-
任何合法的标识符
-
方法参数列表
-
参数列表可以多个,如:method1(int a, int b),多个采用逗号分割
-
方法的作用:使某一功能代码只需要写一遍,就可以重复使用,使用时只需要传递具体的数据。
-
方法定义在类体当中,在一个类当中可以定义多个方法,方法编写的位置没有先后顺序,可以随意。
-
方法体当中不能再定义方法!!!!!!!!!
-
方法的调用
-
类型.方法名(实际参数列表);
-
返回值类型
-
什么是返回值? 一个方法可以完成某个特定功能,这个功能结束之后大多需要返回一个最终执行结果,执行结果可能是一个具体存在的数据。而这个具体存在的数据就是返回值。
-
返回值类型? 返回值是一个具体存在的数据,数据都是有类型的,此处需要指定的返回值的具体类型。
-
返回值类型都可以指定哪些类型呢? java任何一种类型都可以,包括基本数据类型和所有引用数据类型。
-
也可能这个方法执行结束之后不返回任何数据,java中规定,当一个方法执行结束之后不返回任何数据的话,返回值类型位置必须编写:void关键字。
-
return 值,必须要和方法返回值类型一致不然编译报错
-
方法名:
-
只要是合法的标识符就行
-
方法名最好见名知意
-
方法名最好是动词
-
方法名首字母要求小写,后面每个单词首字母大写
-
形式参数列表:简称形参
-
形参是局部变量: int a; doublie b;......
-
形参的个数可以是:0~N个
-
多个形参之间用“逗号”隔开
-
形参中起决定性作用的是形参的数据类型,形参的名字就是局部变量的名字。
-
方法在调用的时候,实际给这个方法传递的真是数据被称为:实际参数,简称实参
-
实参和形参必须满足:数量相同 类型相同
public class main(){
public static void main(String[] args) {
main.sum(100,20);
}
public static void sum(int a , int b) {
int c = a+b;
System.out.println(c);
}
}
//控制台打印输出 120
-
方法在执行过程中,在jvm中的内存是如何分配的呢,内存是如何变化的?
-
1、方法只定义,不调用,是不会执行的,并且在jvm中也不会给该方法分配“运行所属”的内存空间。只有在调用这个方法的时候,才会动态的给这个方法分配所属的内存空间。
-
2、在jvm内存划分上有这样三块主要的内存空间:
-
方法区内存
-
方法代码片段属于.class字节码文件的一部分,字节码文件在类加载的时候,
-
将其放到了方法区当中。所以jvm中的三块主要的内存空间中方法区内存最先有数据。
-
存放了代码片段
-
堆内存
-
栈内存
-
栈:stack,是一种数据结构,数据结构反应的是数据的存储形态。
-
数据结构是独立的学科,不属于任何编程语言的范畴,只不过在大多数编程语言当中要使用数据结构。
-
作为程序员需要提前精通:数据结构+算法。 但是java有一套庞大的类库可供使用,所以java程序员也可以在不精通数据结构的情况下进行编程。
-
代码片段虽然在方法区内存当中只有一份,但是可以被重复调用。每一次调用
-
这个方法的时候,需要给该方法分配独立的活动场所,在栈内存中分配。【栈内存中分配
-
方法运行的所属内存空间】
-
局部变量在“方法体”中声明。局部变量运行阶段内存在栈中分配。 
-
方法的重载
-
方法存重载机制的作用是?
-
为了使程序编写简单,不需要记忆大量的方法名。
-
什么时候考虑使用方法重载?
-
功能相似的时候,方法名可以相同,但是功能不同时候,尽可能让这两个方法名不同
-
什么条件满足之后构成了方法的重载?
-
在同一个类中
-
方法名相同
-
参数列表不同:
-
数量不同 顺寻不同 类型不同
-
方法重载和什么有关系,和什么没有关系?
-
方法重载和方法名+参数列表有关系
-
方法重载和返回值类型无关
-
方法重载和返回值类型无关
public class main(){
public static void main(String[] args) {
main.工具1(100,20);
main.工具1();
}
public static void 工具1() {
System.out.println("我是工具1");
}
public static void 工具1(int a , int b ) {
int c = a+b;
System.out.println(c);
}
}
//120
//我是工具1
转载:https://blog.csdn.net/weixin_43973684/article/details/101989317
查看评论