静态方法没有this关键字,是属于类的,不需要对象;
static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。 并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
如果是要和对象有关系,而且方法中需要访问实例成员,就用实例方法
如果是为了共享(直接用类名访问),就用static静态方法
package com.itheima.d1_static;public class Student {/*** 实例成员变量: 无static修饰,属于对象*/private String name;/*** 静态成员方法: 有static修饰,归属于类,可以被共享访问,用类名或者对象名都可以访问*/public static int getMax(int age1,int age2){return age1 > age2 ? age1 : age2; // 三元运算符}/*** 实例方法(没有static修饰):属于对象的 (在其他类,要创建对象直接访问)本地类也是*/public void study(){ // void是返回值类型,没有返回值不用returnSystem.out.println(name + "在好好学习天天向上");}public static void main(String[] args) {// 1.类名.静态成员方法System.out.println(Student.getMax(10,20));// 注意:同一个类中,访问static静态方法,类名可以省略不写System.out.println(getMax(10,20));// study(); //不能直接调用,因为实例方法(没有static修饰)是属于对象的,所以要先创建一个对象Student s = new Student(); // 创建一个对象,然后可以访问实例方法s.name = "猪八戒";s.study();}}
总结:
