方法的定义:
         类的方法一般表示类的行为或某种功能。
         方法定义的格式:
                 修饰符 返回值类型 方法名(参数类型 参数名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块,并且只会执行一次。