一. 什么是方法
在我们的生活中,方法可以理解为要做某件事情,而采取的解决办法。
- System.out.println(),那是什么它是什么呢?
解:大家都知道它是一句输出语句,其他的都不知道吧!有我来告诉你!
System是一个类,系统的一个类;;out是个对象,println() 是个方法。
连起来就是:调用系统的一个类的out对象中的println()方法。
- java方法是语句的集合,他们在一起执行一个功能。
方法是解决一类问题的步骤的有序集合
方法包含于类或者对象中,
方法在程序中被创建,在其他地方被引用 - 写个案例理解理解:
public class 加法方法 {
//main方法
public static void main(String[] args) {
// 定义:类型 变量名 = 方法名(赋两个值)
int sum = add(1,2);
System.out.println(sum);//输出返回值
}
//加法方法
public static int add(int a,int b){
return a+b; //返回a+b的值给sum
}
}
注意:一个方法写一个功能。
案例:
public class 空白 {
public static void main(String[] args) {
bb();//执行bb方法并输出
}
//之前学过的三角形方法
private static void bb() {
for (int a = 1; a <= 5; a++) {
for (int b = 5; b >= a; b--) {
System.out.print(" ");
}
for (int b = 1; b <= a; b++) {
System.out.print("*");
}
for (int b = 1; b < a; b++) {
System.out.print("*");
}
System.out.println();
}
}
}
二. 方法的定义
- java的方法似于其他语言的函数,是一段用来完成特定功能的代码片段,一般请况下,定义一个方法包含以下语法:
- 方法包含一个方法和一个方法体,下面是一个方法的所有部分:
- 修饰符:public static 等…修饰符告诉编译器如何调用该方法,定义了该方法的类型
- 返回值类型:int double…是方法返回值类型,但没有返回值情况下用void关键字
- 方法名: 随便定义一个方法名,好用方法名调用该方法
- 方法体:定义该方法的功能
注意:根据上面两个案例去理解。
方法的调用
1.java支持两种调用的方式,根据方法是否返回值来选择。(return)
2.当方法返回一个值的时候,方法调用通常被当做一个值。
案例: int a= sumn(3,4);
3.如果方法返回值是void,方法调用一定是一条语句。
System.out.println("你好啊!陌生人!");
注意:根据上面两个案例去理解。
拓展去了解:值传递和引用传递
方法的重载
方法重载的规则
- 方法的名称必须相同。
- 参数列表必须不同(个数不同,或类型不同,参数列表顺序不同)。
- 方法的返回值可以相同也可以不相同。
- 仅仅返回类型不同不足以成为方法的重载
public class 加法方法 {
//main方法
public static void main(String[] args) {
// 定义:类型 变量名 = 方法名(赋两个值)
int sum = add(1,2);
System.out.println(sum);//输出返回值
}
//加法方法
public static int add(int a,int b){
return a+b; //返回a+b的值给sum
}
//减法方法
public static int add(double a,double b){
return a-b; //返回a+b的值给sum
}
}
//执行加法方法
命令行传参
- 有时候你希望运行一个程序时候在传递给它消息。这要靠传递命令行参数给main()函数实现。
- public class a{
public static void main(String[] args ){
for(int i=0;i<args.length;i++){
System.out.println(“args[”+i+"]:"+args[ i ]);
}
}
}
- 进入命令行输入当前java路径,注意要进入src下才能给args[]传参。
可变参数
- 可变参数:java传递同类型可变参数给一个方法
- 在方法声明中,在指定参数类型后加一个省略号(…)
- 一个可变参数,它必须是方法的最后一个参数,任意普通参数必须在它之前声明。
- 案例:
public class Dome {
public static void main(String[] args) {
Dome Dome=new Dome();
Dome.a(1,2,3);//先把值给a方法在输出a方法
}
public static a(int...i){//定义int 可变参数i
System.out.println(i[0]);//输出i中第一个数
System.out.println(i[1]);//输出i中第二个数
System.out.println(i[2]);//输出i中第三个数
}
递归
对刚开始接触计算机编程的人而言,这里有递归的一个简单定义:当函数直接或者间接调用自己时,则发生了递归。
递归是一种常见的解决问题的方法,寄把问题逐渐简单化。递归的基本思想就是
“自己调用自己”,一个使用递归技术的方法会直接或间接的调用自己
递归构造包括两个部分:
定义递归头。什么时候不调用自身方法,如果没有头,将陷入死循环
递归体。什么时候需要调用自身方法
其实递归算法很简单,简单点就是自己调用自己的方法,有条件判断什么时候停止!
写个乘阶案例理解:
public class dd {
public static void main(String[] args) {
System.out.println(a(5));
}
public static int a(int n) {
if (n == 1) {
return 1;
} else {
return n * a(n - 1);
}
}
}
输出:
120