方法
方法概述
方法:一堆代码的集合,为了完成某个特定的功能,当我们再次使用这个方法的时候,就等于使用了该代码。
方法的目的:代码复用,提高程序灵活度,易维护,易扩展。
方法声明
* 方法声明 : 修饰符列表 返回值类型 方法名 (参数列表){ 方法体 }
* 修饰符列表 : 可以有,可以没有,可以有多个
* 权限控制的 : public private protected 不写 四选一
* 其他修饰符 : final , synchronized , static 等 static 表示静态
* public 表示公共的 , 哪里都可以访问 private 表示私有的 只能自己访问
* static 修饰静态,不加就是成员
* 返回值类型 : 11种数据类型中的任意一种,如果没有返回值则写void
* 如果有返回值, 方法体中,必须有return语句
* return : 1.终止方法运行 , 2 .返回数据
* 比如返回值为int那么方法体中必须有return int值;
* 如果没有返回值类型(void),可以不写return语句 , 如果要写return 那么也只能终止方法运行,不能返回数据
* 方法名 : 符合命名规则就行
* 参数列表 () : 可以有,可以没有,可以有多个,多个之间使用逗号隔开 , 就是局部变量
* 方法体 : 要做的事。
// 无参 无返回值
public static void m1() {
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
}
// 返回值
public static int m2(){
return 0;
}
// 有参
public static void m3(int a , int b , double c){
// 由于没有返回值类型,所以可以不写return
// 如果要写,也不能返回任何数据
return;
}
方法分类
* 静态方法 : 使用static修饰的就是静态方法。
* 成员方法 : 没有使用static修饰的就是成员方法。
* 构造方法 : 创建对象使用。
方法调用
* 方法不调用不执行,调用才执行,并把结果返回给调用处。
* 编写方法,只保证功能的实现,最终方法被用在什么地方,与声明无关。
* 静态方法 : 类名.静态方法名(参数) 调用 , 同类中类名可以省略。
* 成员方法 : 对象.成员方法名(参数)。
// 类名.方法名(参数) 因为m1是无参的
Method_01.m1();
// 如果有参,必须传递相同类型的值
Method_01.m6(15);
// 当前类中类名可以省略
m6(22);
入参和出参
* 入参 : 调用的时候,需要传入的数据。
* 做这件事,需要用的到必要的未知数据,定义为入参。
* 出参 : 完成功能后,响应的结果就是出参(返回值)。
* 一般是你的打印语句,是出参。
public static void main(String[] args) {
test1();
test2(15);
// 接收返回值
int result = test3(1, 100);
System.out.println(result);
}
// 需求 : 向控制台打印1-10的累加加和
public static void test1(){
int sum = 0;
for (int i = 1; i <=10; i++) {
sum+=i;
}
System.out.println(sum);
}
// 需求 : 打印 1~n的累加加和
public static void test2(int n){
int sum = 0;
for (int i = 1; i <=n; i++) {
sum+=i;
}
System.out.println(sum);
}
// 需求 : 计算m~n的加和,并返回 , 假设m小于n
public static int test3(int m ,int n){
int sum = 0;
for (int i = m; i <=n; i++) {
sum+=i;
}
return sum;
// return后面不能写代码,因为return会终止方法运行,后面代码执行不到
// System.out.println("==");
}
方法重载
* 方法名可以重复吗? 可以。
* 方法重载 : 相同功能,相同名字,方便记忆和使用。
* 什么是方法重载呢? overload 方法名一样,参数列表不同(个数不同 或 类型不同 或个数类型都不同)。
println打印也是方法重载
sumDouble(2.2, 33.4);
sumLong(23L, 44L);
sumInt(22, 3);
// 相同功能,相同名字,方便记忆
sum(48, 5);
sum(48.2, 5.6);
sum(48L, 5L);
//println也是方法重载
System.out.println(1);
System.out.println(false);
System.out.println("asdsadas");
System.out.println(23.5);
}
public static void sumInt(int a , int b){
System.out.println(a+b);
}
public static void sumDouble (double a , double b){
System.out.println(a+b);
}
public static void sumLong (long a , long b){
System.out.println(a+b);
}
public static void sum(int a , int b){
System.out.println(a+b);
}
public static void sum (double a , double b){
System.out.println(a+b);
}
public static void sum (long a , long b){
System.out.println(a+b);
}