JAVA中的方法详解
java中有一个特殊的方法是main方法,这是执行的入口,函数从这里一行行执行。
main方法不需要程序员调用,jvm解释执行时直接找到main方法
其他方法需要调用才会执行,不调用不会执行。
方法也是面向对象三大特性之一的封装性的体现,可以提高代码的复用性和安全性
方法是什么?
方法我们可以理解为功能,比如洗衣机有具体的功能,就是洗衣服(如果学有其他的语言,那么有的语言叫函数,但是大致是差不多的)
方法的语法格式
[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}
方法的定义位置在类中方法外(不考虑内部类的情况之下)
代码
public static String sum(int x,int y){
return x*y+"这是"+x+"*"+y+"的值!";
}
public static void main(String[] args) {
System.out.println(sum(2,3));
}
//定义了一个sum方法,可以返回X和Y的和。在main中调用
方法的重载
注意以下三点
一个类中的多个方法
方法名相同
参数列表不同导致方法签名不同
//求圆形,矩形,梯形的面积。我们可以思考一下,如果没有重载,是不是需要记住每一个方法的名字,这样子就很麻烦
public static void main(String[] args) {
System.out.println(getArea(5)+"圆形");
System.out.println(getArea(2,3)+"矩形");
System.out.println(getArea(3,4,5)+"梯形");
}
public static int getArea(int height,int weight){
return height*weight;
}
public static double getArea(int r){
final double PI=3.141592653;
return (PI*r*r);
}
public static int getArea(int up ,int down,int height){
return (up+down)*height/2;
}
方法的递归
简单的来说,递归就是方法不停的调用自己,直到达到临界条件
public static void main(String[] args){
System.out.println(factorial(5));
}
public static int factorial(int n){
if(n==1){
return 1;
}
return n*factorial(n-1);
}
//求5的阶乘
//求5的阶乘
public static int factorial(int n){
if(n==1){
return 1;
}
return n*factorial(n-1);
}
``
方法的内存解析
如图