方法定义:
/*
* 其他语言(python scala)中的函数在java中叫做方法,所以,java中函数就是方法,方法就是函数
*
* java中方法的定义格式 :
* 关键字 修饰符 返回值类型 函数名(参数类型 参数1,参数类型 参数2 ,...)
* 方法体
* return 返回值
* 详细解释 :
* 关键字 : public/private...
* 修饰符:static
* 返回值类型:这个函数返回的结果值类型,也就是java数据类型
* 方法名:见名知意,首字母小写,其他单词首字母大写
* 参数类型:
* 形式参数:代表传进来的参数,定义方法的时候,传的就是形式参数
* 实际参数:在调用方法进行实际运算的时候传进来的参数
* 方法体:方法的运行逻辑
* return:代表函数结束运行,后面是函数的返回值(有返回值的函数才有return)
*
* 方法调用:
* 有返回值:赋值调用,一般将方法的返回值赋值给一个变量,这样还可以对这个返回值进行后续操作
* 无返回值:直接调用就可以了
*
* 构建方法:两个明确
* 1.有没有返回值,返回值类型是什么
* 2.有没有参数,参数类型是什么
* */
public class FunctionDemo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x = 10 ;
int y = 20 ;
// 赋值调用
int result = sum(x,y) ;
System.out.println(result);
int maxnum = getMax(x,y) ;
System.out.println(maxnum);
// 直接调用
multiply(3) ;
}
public static int sum(int a ,int b) {
return a+b ;
}
public static int getMax(int a , int b) {
// 三元表达式,在大量if else判断中很好用
return ((a>b)?a:b) ;
}
public static int getMax2(int a , int b ,int c){
// 取三个数据最大值的三元表达式
return (a>b)?(a>c?a:c):(b>c?b:c) ;
}
// 9*9乘法表
public static void multiply(int n){
for(int x = 1;x<=n;x++){ // 控制外层行数
for(int y = 1; y<=x;y++){
System.out.print(y+"*"+x+"="+x*y+"\t"); // 控制内存列数
}
System.out.println();
}
}
}
java中方法的执行顺序:
方法重载:
/*
* 方法重载:
* 出现的原因:我们可能会对不同个数或类型的参数进行相同的方法操作,比如对2个参数求和、3个参数求和、4个参数求和、n个参数求和
* 如果我们对每种参数个数的求和都创建一个方法名,那么方法名就太多了,不能够做到见名知意
* 所以,针对方法的功能相同,参数个数或者类型不同的情况,为了见名知意,java允许他们有一样的方法名称。
* JVM根据参数个数或者类型去自动调用不同的方法
* 特点:
* 1.与返回值类型无关,他只关注方法名称和参数列表(方法名一样,参数列表不一样,与返回值无关)
* 2.在调用时,虚拟机通过参数列表来识别同名的方法
* */
public class FunctionDemo2 {
public static void main(String[] args) {
// 比较两个数据是否相等
System.out.println("byte:"+compare(1,3));
System.out.println("folat:"+compare(3.5f,3.5f));
}
public static boolean compare(byte a ,byte b){
return a==b ;
}
public static boolean compare(short a , short b){
return a==b ;
}
public static boolean compare(float a , float b){
return a==b ;
}
}