Java 方法的概述
在学习方法钱要先了解一下什么是方法,方法就是完成某些特定功能的代码块,也就是其他语言所说的函数,在Java中称为方法。方法格式
修饰符 返回值类型 方法名(参数,参数,....){
方法体;
return 返回值;
}
注意事项
- 不调用不执行
- 方法间不能相互嵌套
- 如果有多个参数时,用逗号隔开
- 如果有明确的返回值,用return带回
- 调用方法时不用再重新写数据类型
方法演示
1、调用方法输出“*”(1)
public class Method {
public static void main(String[] args) {
Method x=new Method();
x.m();
}
public void m(){
for(int i=0;i<5;i++){
for (int j=0;j<=i;j++){
System.out.print("*");
}
System.out.println("");
}
}
}
(2)
public class Method {
public static void main(String[] args) {
m();
}
public static void m(){
for(int i=0;i<5;i++){
for (int j=0;j<=i;j++){
System.out.print("*");
}
System.out.println("");
}
}
}
结果
*
**
***
****
*****
两段代码的结果都是一样,不同在调用处,原因出在static(静态)这个关键字上,因为main方法是(static)静态的方法,静态方法只能访问静态的成员变量和静态的成员方法,因此想要直接调用成员方法或成员变量,就要使他变为静态的,即(2)中那样,如果不想变成静态的方法,也可以通过实例化本类,拿类来调用,即(1)那样。
那为什么会出现这种状况呢?
大家可能会很疑惑,因为静态的方法会随着类的加载而加载,随着类的消失而消失,程序刚开始加载时就出现了,而非静态类的方法是随着对象的创建而创建的,随着对象的消失而消失的;因此上面的代码(1)中,因为还没有创建对象,因此调用不了该方法。
方法重载
在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同,与返回值无关。数列表不同: | 参数个数不同 |
参数类型不同 |
重载演示
1、调用相应方法输出相应结果(1)参数个数不同
public class Method {
public static void main(String[] args) {
m(10);
m(30,40);
}
public static void m(int a,int b){
System.out.println(a+"\t"+b);
}
public static void m(int a){
System.out.println(a);
}
}
结果
10
30 40
(2)参数类型不同
public class Method {
public static void main(String[] args) {
m(10);
m(30.5);
}
public static void m(double a){
System.out.println(a);
}
public static void m(int a){
System.out.println(a);
}
}
结果
10
30.5