方法
方法概述
方法是社么:
具有特定的代码段。
方法的声明:
[权限修饰符][修饰符] 返回值类型 方法名称 (参数列表){
方法体;
}
① 权限修饰符: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
方法
正在执行的方法,在栈中执行。