2021-10-17  2021-10-17    1603 字   4 分钟

方法

方法概述

方法是社么:

具有特定的代码段。

方法的声明:

[权限修饰符][修饰符] 返回值类型 方法名称 (参数列表){
	
    方法体; 
    
}
① 权限修饰符:public 

② 修饰符: static 

③ 返回值类型:

		 void 无返回值的。 

④ 方法名称:任意标识符。 

		注意:程序的入口 在javase阶段,就是main。 

⑤ 参数:

	实质:

		外界传入的数据。 

	格式:

		(数据类型 参数名称,数据类型 参数名称) 

实参与形参:

  • 实参:实际参数: 方法调用时,传递的数据

  • 形参:形式参数:方法声明时,声明的参数名称

方法的使用

不调用 不执行。

调用格式:

  • 如果在同一个类中,直接用方法名称调用。

  • 如果在不同类中,通过对象的名称.方法()

代码

/**
1.方法: 
具有特定的代码段。
2.方法的声明: 
[权限修饰符][修饰符] 返回值类型 方法名称 (参数列表){ 方法体; }
① 权限修饰符:public 
② 修饰符: static 
③ 返回值类型:1> void 无返回值的。
④ 方法名称:任意标识符。 
注意:程序的入口 在javase阶段,就是main。
⑤ 参数:实质:外界传入的数据。 格式:(数据类型 参数名称,数据类型 参数名称)
3.方法的使用: 不调用 不执行。 调用格式: 
1》 如果在同一个类中,直接用方法名称调用。
2》 如果在不同类中,通过对象的名称.方法() 
*/
class 方法概述{
    public static void main(String[] args) {
        //printRect(1); 
        //printRect(2);
        //printRect(3); 
    }
    public static void printRect(int a){ 
        //数据类型 变量名称 = 值
        for (int i = 1; i <=a; i++ ) {
            for (int j = 1; j<=a;j++ ) {
                System.out.print("*"); 
            }
            System.out.println();
        } 
    } 
}

方法的概述

1.方法的返回值:

  • void 无返回值

  • 数据类型 有返回值的

格式:

[权限修饰符][修饰符] 数据类型 方法名称(参数列表){

方法体;

return 数据;

}

​ 其中,return后面的数据是哪种类型,方法声明上的数据类型就是哪个。

2.带有返回值的方法调用:

​ ① 通过变量记录返回值。

​ ② 直接在输出语句中打印。

​ ③ 作为方法的参数使用。

3.return 关键字:

​ 表示方法返回调用位置并结束该方法。

​ ① return + 数据值 表示方法的返回值

​ ② return 单独用 表示方法结束,实质方法中默认含有return,我们没写,编译器为我们添加。

代码

/** 1.方法的返回值: 
1》 void 无返回值
2》 数据类型 有返回值的
格式:[权限修饰符][修饰符] 数据类型 方法名称(参数列表){ 方法体; return 数据; }
其中,return后面的数据是哪种类型,方法声明上的数据类型就是哪个。 
2.带有返回值的方法调用:
① 通过变量记录返回值。 
② 直接在输出语句中打印。 
③ 作为方法的参数使用。 
3.return 关键字: 
表示方法返回调用位置并结束该方法。
① return + 数据值 表示方法的返回值 
② return 单独用 表示方法结束,实质方法中默认含有return,
我们没写,编译器为我们添 加。
*/
class 方法的返回值 { 
    public static void main(String[] args) { 
        //① 通过变量记录返回值 
        /*
        int value = add(1,2);
        //1+2的基础上 +3 
        System.out.println(value +"=============");
        */ 
        //② 直接在输出语句中打印。 
        //System.out.println(add(1,2)); 
        //③ 作为方法的参数使用。 
        //System.out.println(add(add(1,2),3)); 
        /*
        add(1,2); 
        Scanner sc = new Scanner(System.in);
        int value1 = sc.nextInt();
        */ 
        //add(3,4); 
        show();
    }
    //加法 
     public static int add(int a,int b){
        //System.out.println(a+b);
        return a+b;
    }
    public static void add1(int a,int b,int c){ 
        System.out.println(a+b+c);
    }
    public static void show(){ 
        if(true){
            System.out.println("bbbb"); 
            return;
            //默认编译器会加,我们省略不写。
        }
        System.out.println("aaaa");
    } 
}

方法的重载

方法的好处

提高代码的复用性

方法的重载

1.好处: 为了降低程序员记忆的复杂度。

2.方法重载 overload

​ 在同一个类中,方法名称相同,参数列表不同,称为方法重载。

  • 与返回值类型无关。

  • 参数列表不同:

    • 参数个数不同。
    • 参数数据类型不同。
  • 参数顺序不同。

/**

1.好处: 为了降低程序员记忆的复杂度。

(***)2.方法重载 overload

在同一个类中,方法名称相同,参数列表不同,称为方法重载。

1> 与返回值类型无关。

2> 参数列表不同:

① 参数个数不同。

② 参数数据类型不同。

③ 参数顺序不同。

*/

class 方法的重载

{

public static void main(String[] args)

{

//add(10,15);

//add(1,2,3);

//System.out.println(1);

//System.out.println("abc");

add(10.1,10);

}

/*public static int add(int a,int b){

return a+b;

}*/

// ① 参数个数不同。

/*public static void add(int c,int d){

System.out.println(11111111);

}*/

public static void add(int a,int b ,int c){

}

//② 参数数据类型不同。

public static void add(int a,double b){
System.out.println(2222222);

}

//③ 参数顺序不同。

public static void add(double a,int b){

System.out.println(333333);

}

}

方法的内存图

jvm运行时内存图

stack

​ 栈 : 运算受限的线性表。 只能从一端 进行插入和删除操作。

栈的特点:

​ 先进后出,后进先出。

栈底: 封口端

栈顶:可以进行插入或删除数据的。

压栈: 存入数据 push .

弹栈: 从里面取出数据。pop

方法

正在执行的方法,在栈中执行。


avatar
青山
悟已往之不谏 知来者之可追
一言
今日诗词
站点信息
本站访客数 :
本站总访问量 :