静态方法没有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是返回值类型,没有返回值不用return
System.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();
}
}
总结: