面向对象编程系列三
前言
java中方法的使用
一、什么是方法
Java中方法可以理解为一个代码片段,可以理解为c语言中的函数,方法的出现解决了重复工作性问题,当需要时直接调用该方法即可
注意:在一个.Java文件中 只有一个类只可以被public修饰
以main方法为例1.public表示权限 2.static表示该方法是一个静态方法 3.void表示返回值的类型 其中void表示无返回值 4.main是方法名,方法名的命名采用小驼峰的形式 5.()括号里面表示传递的参数,若没有参数传递直接()即可
另外一点补充1.方法的定义必须在类的内部
一个java文件只能有一个main方法,其余方法可以重名(涉及方法的重载)
下面展示一些 内联代码片
。
有了方法直接在main方法中调用add函数即可算出1的阶乘到5阶乘之和
public static void main(String[] args) {
int result = add(5);
System.out.println(result);
}
// 计算数字1到5的阶乘
public static int add(int a){
int sum = 0;
for (int j = 1; j <= a ; j++) {
int b = func(j);
sum += b;
}
return sum;
}
// 计算一个数的阶乘
public static int func(int x){
int ret = 1;
for (int i = 1; i <= x ; i++) {
ret *= i;
}
return ret;
}
二、形参和实参
下面展示一些 内联代码片
。
在swap方法中 ab是实参 swap函数中的x y是形参
运行结果:
x = 20y = 10
==========
a = 10b = 20
在执行main方法时候 局部变量ab在main方法的栈上开辟了两块内存空间
而在调用swap方法时候在xy在该方法运行的栈上,因此实参和形参没有任何关系,只是在调用方法时候将实参拷贝了一份给形参 所以调用完该方法后ab的值并未发生交换。
要解决此方法可以使用数组。
public static void main(String[] args) {
// int ret = add1(1,2);
int a = 10;
int b = 20;
swap(a,b);
System.out.println("==========");
System.out.println("a = "+ a +"b = "+b);
}
public static void swap(int x, int y){
int tmp = x;
x = y;
y = tmp;
System.out.println("x = "+ x +"y = "+y);
}
1.方法重载
什么是方法重载?
方法的重载可以理解为同样的方法名有多种功能 一词多义
在求两个数和三个数的加和时候 main方法中都调用了add方法 达到了想要的效果,这就是方法的重载
注意方法重载需要满足的三个条件
1.方法名必须相同
2.参数类型和参数个数可以不同
3.对返回值没有要求
4.在理解方法重载的基础上比较和方法重写的关系
扩展:定在在方法内的变量为局部变量 局部变量存储在栈上