方法定义及调用
访问控制符] [修饰符] 返回值类型 方法名(参数类型 形式参数,参数类型 形式参数,…){
方法体
根据参数个数:
无参方法:
有参方法:
参数类型为基本数据类型
参数类型为引用数据类型
根据返回值类型:
有返回值的方法:
返回值类型为基本数据类型
返回值类型为引用数据类型
无返回值的方法
返回值类型使用void关键字
public static int add(int x,int y) {
int z=x+y;
return z;
}
static void drawRect(int width,int height){
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){
System.out.print("#");
}
System.out.println();
}
}
方法返回值
public static int absolut(int x){
if(x>=0){
return x;
}
else{
return -x;
}
}
该方法体有两个return 语句,但是只有一个return语句能被执行。
方法的返回类型可以是java中的任何数据类型: 基本数据类型(4种整型、2种浮点型、字符型、布尔型共8种) 引用数据类型(数组、类、接口)
方法的调用
无返回值无参方法的调用同一个类
下的静态方法
public void static getmin(){
System.out.print("222");
}
public static void main (System.in){
getmin();
}
无返回值有参数的方法调用
public static void getmin(int s , int d){
System.out.print(s+d);
}
public static void main (System.in){
getmin(2 , 3);
}
有参数有返回值得方法掉用
public static int getmin(int s , int d){
return s+d;
}
public static void main (System.in){
int a = getmin(2,3);
getmin(2,3);//也可以不声明变量接收方法返回的值。
}
方法中改变形参值
基本数据类型和应用数据类型比较
public static void getx(int a ){
x= 3*x;
}
public static void gety(int b){
y[0] = 3*y[0];
}
public static void main (String[] args){
int x= 10;
System.out.print("x调用方法前:"+x);
getx(x);
System.out.print("x调用方法前:"+x);
int [] y = {10};
System.out.print("x调用方法前:"+x);
gety(y);
System.out.print("x调用方法前:"+x);
}
//输出结果
//x调用方法前:10
//x调用方法前:10
//y调用方法前:10
//y调用方法前:30
方法注意问题
1.形参必须注明数据类型。
2.实参直接写, 不需要类型生命。
3.return只能返回一次。
4.遇到return语句,方法结束执行,后续语句不执行;
5.方法的返回值,必须与方法声明中的返回值类型匹配。
6.方法定义,不能雪灾 main()方法中。
7.方法是不能嵌套的。
递归调用方法
递归方法:一个方法体内调用它自身,这样的方法我们称之为方法的递归。
递归方法的特点:方法递归包含了一种隐式的循环,他会重复执行某段代码,但这种重复执行无须循环控制。
public static int show(int x){
if(x>0){
x--;
return;
}else{
return 0;
}
}
public static void main(String[] args){
show(2);
}
//输出0
注释:递归方法占用的内存比较大所以不适合进行大数据量的进行多次的递归。
方法的重载
方法的重载(overload)
方法的重载就是在同一个类中允许同时存在一个以上同名的方法
方法重载的规则
方法名称相同
方法的参数必须不同
1.参数个数不同 或
2.参数类型不同
方法的返回值类型可以不相同,也可以不同
示例:
class SumFunc{
public int gerSum(int end){
int sum = 0 ;
for(int i = 0 ;i <= end;i++){
sum += i ;
}
return sum;
}
public int getSum(int start , int end){
int sum = 0;
for(int i = start;i < end ;i++){
sum += i;
}
return sum;
}
}
网友评论