方法的概念及作用
概念:方法,也叫函数,但是一般在java中都叫方法,可以看成是一个可以完成独立功能的代码块,可以反复使用,每次使用都是独立的!存在于类的结构体
作用:完成功能,数据的处理!方法可以拿来反复使用。每次使用都是独立的
认识方法+语法
public static void main(String[] args){
}
- public static (可有可无):修饰符,修饰给与特殊意义
- void (必须有):此处位置返回值类型,void 表示没有返回值
- main (必须有):方法名字
- ( )(必须有):小括号,括号内填形式参数
- (String[] args) (可有可无): 一个形式参数,String[] 数据类型 args形式参数名字形式参数
告诉函数的使用者:你在使用函数的时候,应该给什么数据
函数的设计者:自己定义形式参数,完成函数功能的设计 - { } (必须有):方法的结构体,完成功能的设计
- 存在于类的结构体
设计一个方法+方法的使用
步骤:
- 修饰符 返回值 方法名字,参数列表(根据需要) 大括号
- 方法内部完成功能设计
使用方法的三种方式:
- 方法有static修饰:类名.方法名+参数列表[个数,顺序,类型必须一致]
- 方法没有static修饰:对象名.方法名+参数列表[个数,顺序,类型必须一致]
- 方法在同一个类中:方法名+参数列表[个数,顺序,类型必须一致]:传入对应类型的数据
注意事项:
- 对于方法的使用者而言,无需关心方法内部的实现
- 同一个类中:静态方法不能调用非静态的方法
- 同一个类中:非静态方法可以调用静态方法
标题方法签名+方法重载
- 方法签名概念:方法名字+参数列表[类型,个数,顺序:必须一致]
- 方法重载概念:在同一个类中,方法名字相同,参数列表不同
方法return
如果方法运算的结果,还需要跟其他数据进行运算怎么办?
- 方式:将方法运算的结果返回给方法调用着,方法内部 将运算结果 使用语句:
return 值/变量/表达式; - 方法返回值的位置,必须写与方法内部返回值的数据一致的数据类型
- 注意:返回的是数据,不是变量或者表达式
- 方法返回值的结果,怎么使用?
a) 直接使用
b) 先存在变量里,再使用
注意事项:有返回值方法,一定要有对应返回语句
示例一:
return 不一定执行得到
public static int add(){
if(true){
return 1;//语法检查只看结构不看值,return语句不一定会执行得到
}
}
示例二: return 不一定执行得到
public static int add(){
if(true){//语法检查只看结构不看值,return语句一定会执行得到
return 1;
}else if(false){
return 2;
}
}
示例三:return 一定执行得到
public static int add(){
if(true){//同上语法检查只看结构不看值,return语句不一定会执行得到
return 1;
}else{
return 2;
}
}
结论:
-
如果一个方法的返回类型不是void,那么要求[不管方法里面做了什么事情]都必须返回一个和返回值类型匹配的值
-
对于结构体语句中写返回值:编译检查语法,只看结构不看值:结构体中写了返回值不一定执行的到,编译语法会不通过!
方法参数传递
概念:在使用方法的时候,传入值或者变量
值传递:方法传递的是值
- 形式参数类型是基本数据类型
- 基本类型数据传递的是值
值引用:方法传递的是值得引用
- 形式参数类型是引用数据类型
- 引用传递其实传的是地址,形式参数类型是引用数据类型或数组。
- 实际参数(数据)是对象(或数组),这时实际参数与形式参数指向同一个地址
- 在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被
保留了下来,所以方法执行中形式参数的改变将会影响实际参数。
注意:方法调用时,实际参数把它的值传递给对应的形式参数,相当于拷贝了一份值给形式参数, 所以方法执行中形式参数值的改变不影响实际参数的值。
- 基本数据不影响原来的值
- 引用数据不影响原来的地址值:
- 引用地址,引用的值,如果被改变,原来引用的的值所引用的值也会被改变,因为都是同一个引用