方法的定义:
类的方法一般表示类的行为或某种功能。
方法定义的格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
return 返回值;
}
方法的格式说明
修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
返回值类型:就是功能结果的数据类型。
方法名:符合命名规则即可。方便我们的调用。
参数:
实际参数:就是实际参与运算的。
形式参数;就是方法定义上的,用于接收实际参数的。
参数类型:就是参数的数据类型
参数名:就是变量名
方法体语句:就是完成功能的代码。
return:结束方法的。
返回值:就是功能的结果,由return带给调用者。
方法的调用:在main函数中调用方法,让方法执行起来
方法的形参:方法要什么参数我们就给什么类型的参数
方法的返回值:方法返回什么类型的值我们就用对应的数据类型的变量来接收。
调用方法的执行流程:a: 方法的定义是没有顺序的,写在main函数的上边或者下边都可以。
b: 方法的执行,是把实参传递给形参,从而来执行的。
c: 方法只有被调用才会执行。
方法的重载:
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
参数列表不同:
1、参数个数不同
2、参数类型不同
3、参数的顺序不同(算重载,但是在开发中不用)
例:public static int getSum(int a,int b){
System.out.println("两个int参数");
return a+b;
}
public static int getSum(int a,int b,int c){
System.out.println("三个int参数");
return a+b+c;
}
public static double getSum(double a,double b){
System.out.println("两个double参数");
return a+b;
}
方法重载注意事项:
1、参数列表必须不同
2、重载和参数变量名无关
3、重载和返回值类型无关
4、重载和修饰符无关
static关键字:
static关键字一般修饰成员变量,成员方法或者编写static代码块优化程序性能;
静态变量:
static修饰成员变量时,该变量为静态变量,静态变量属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。
静态方法:
与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。静态方法的使用如:
public class Hello{
public static void print(){
System.out.println(“你好”);
}
public static void main(String[] args){
//直接使用类名调用静态方法
Hello.print();
//使用类对象名调用
Hello demo=new Hello();
demo.print();
}
}
static修饰的方法成为类的方法,使用时通过“类名.方法名”的方式就可以方便的使用了,相当于定义了一个全局的函数(只要导入该类所在的包即可)。所以,相应的,非静态方法则还是要通过实例化对象,再通过“对象.方法名”的方式访问了。
进一步,由于静态方法可以直接通过类名调用,说明调用静态方法的时候,是不存在对象的,所以,静态方法中不能有this与super关键字!并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用,即使存在类实例化的对象,也不清楚具体调用哪一个对象的非静态成员变量或者方法。
静态方法只能访问所属类的静态成员变量和成员方法。
但是反过来,非静态方法是可以访问静态方法与静态成员变量的。
静态代码块:
static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。