5.1 定义方法
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...){
函数体;
return 返回值;
}
注意:对每一个参数都要进行独立的数据类型声明
5.2 调用方法
class text{
public static void main(String[] args){
//实际参数
int a=3;
int b=4;
System.out.println(add(1,2));//输出调用
//add(b,a); //单独调用
//int c=add(a,10);//赋值调用
System.out.println(c);
}
public static int add(int a,int b){//形式参数
return a+b;
}
}
进栈
出栈
注意 :带返回值的方法必须有return语句
- 程序编译错误,编辑器认为可能不返回任何值
public static int sign(int n){
if(n>0){
return 1;
}else if(n==0){
return 0;
}else if(n<0){
return -1;
}
}
- 改进
public static int sign(int n){
if(n>0){
return 1;
}else if(n==0){
return 0;
}
return -1;
}
5.3 参数的传递(传值)
public static void main(String[] args){
int n1=1;
int n2=2;
swap(n1,n2);
System.out.println("n1="+n1+" , "+"n2="+n2);
//n1=1 , n2=2,实参n1,n2的值不变
}
public static void swap(int a,int b){
int temp=a;
a=b;
b=temp;
System.out.println("a="+a+" , "+"b="+b);
//a=2 , b=1形参a,b的值交换
}
形参a,b有独立的存储空间,a,b互换不影响n1,n2的值
栈中运行过程
练习1:将16进制转化为10进制
import java.util.*;
class Transform16_10{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("输入一个16进制数:");
//输入1个16进制数
String hex=scanner.nextLine();
System.out.println("16进制数:"+hex+"->"+"10进制数:"+transform(hex));
}
//转换为10进制
public static int transform(String hex){
//初始化10进制数
int num=0;
for(int i=0;i<hex.length();i++){
//提取16进制数的每一个字符
char a=hex.charAt(i);
//调用change()函数,转换每个字符为数字
num+=change(a)*(Math.pow(16,Math.abs(i-hex.length()+1)));
}
return num;
}
//将16进制中的字符转化为数字
public static int change(char a){
if(a>='A' && a<='F'){
return 10+a-'A';//A 10 B 11 C 12 D 13 E 14 F15
}else{
return a-'0'; //0~9 -'0'的作用是让a参与ASCII值的运算,若无,则返回a的ASCII值
}
}
}
5.4 重载方法
在同一个类里面 可以存在多个同名函数
- 函数重载的前提是函数重名
- 重载的区别是参数类型的排列组合(个数 顺序)
class test{
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
public static double add(double a,double b){
return a+b;
}
public static void main(String[] args){
int a=3;
int b=4;
System.out.println(add(a,b));//2个整数
System.out.println(add(10,20,30));//3个整数
System.out.println(add(3.2,5.8));//小数
}
}