Java的方法
- 是解决一类问题的步骤的有序集合
- 包含于类或对象中
- 在程序中被创建,在其他地方被引用
- 一般只完成一个功能,利于后期扩展!
语法
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
实例
package com.yeyue.method;
public class Demo01 {
//main 方法
public static void main(String[] args) {
//实际参数:实际用来传递给他的参数
int sum = add(1, 2);
System.out.println(sum);
// test();
}
//加法
//形式参数是用来定义作用的
public static int add(int a, int b) {
return a + b;
}
public static void test() {
for (int i = 0; i <= 1000; i++) {
if (i % 5 == 0) {
System.out.print(i + "\t");
}
if (i % (5 * 3) == 0) {
System.out.println();
//System.out.print("\n");
}
}
}
}
方法的重载实例:
package com.yeyue.method;
public class Demo02 {
public static void main(String[] args) {
double max = max(30.0,20.0);
System.out.println(max);
}
//比大小
public static int max(int num1, int num2){
int result = 0;
if(num1==num2){
System.out.println("两个数相等");
return 0; //终止方法
}
if(num1 > num2){
result = num1;
}else if(num1 < num2){
result = num2;
}
return result;
}
public static double max(double num1, double num2){
double result = 0;
if(num1==num2){
System.out.println("两个数相等");
return 0; //终止方法
}
if(num1 > num2){
result = num1;
}else if(num1 < num2){
result = num2;
}
return result;
}
/**
* 方法的重载:
* 方法名必须相同
* 参数列表必须不相同(个数、类型、顺序)
*/
}
命令行传递参数实例:
package com.yeyue.method;
public class Demo03 {
public static void main(String[] args) {
//args.length 数组长度
for (int i = 0;i < args.length;i++){
System.out.println("args["+i+"]: "+args[i]);
}
}
}
- 通过javac 编译
- 通过java执行并跟上参数
可变参数实例:
package com.yeyue.method;
public class Demo04 {
public static void main(String[] args) {
//调用可变参数的方法
prinMax(34,432,122,4,78.5,888.88);
prinMax(1,2,6,5);
}
public static void prinMax(double... numbers){
if (numbers.length == 0){
System.out.println("No argument passed");
return;
}
double result = numbers[0];
//排序
for (int i=1;i<numbers.length;i++){
if(numbers[i] > result){
result = numbers[i];
}
}
System.out.println("The max value is " + result);
}
}
递归实例:
package com.yeyue.method;
public class Demo06 {
public static void main(String[] args) {
System.out.println(f(5));
}
//5! 5*4*3*2*1
public static int f(int n){
if (n==1){
return 1;
}else{
return n*f(n-1);
}
}
/**
* 边界条件:边界
* 前阶段
* 返回阶段 n*(n-1)
*
* 基数小时可以使用,太大影响主机性能
*
* 栈
*/
}