Static关键字的特点
1、 随着类的加载而加载。
2、 优先于对象存在。
3、 被类的所有对象共享。也就是说,如果每个成员变量是被所有的对象所共享的,那么它就应该定义为静态。
4、 可以通过类名调用。
a) 其实它本身也可以通过对象名调用
b) 推荐使用类名调用
c) 静态修饰的内容一般是,与类相关的类成员
Static的注意事项
1、 在静态方法中是没有this关键字的
a) 因为静态是随着类的加载而加载,this是随着对象的创建而存在。
b) 静态比对象先存在。
2、 静态方法只能访问静态的成员变量和静态的成员方法
a) 静态方法:
成员变量:只能访问静态变量
成员方法:只能访问静态成员方法
b) 非静态方法:
成员变量:可以是静态的,也可以是非静态的
成员方法:可以是静态的成员方法,也可以是非静态的成员方法。
c) 简单记:
静态只能访问静态。
静态变量和成员变量的区别
静态变量也叫类变量 成员变量也叫对象变量
1、所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
2、内存中位置不同
静态变量存储在方法区的静态区
成员变量存储在堆内存
3、内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
4、调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用
this关键字
1、this关键字特点
代表当前对象的引用,也就是说谁调用我,我代表谁。
2、this的应用场景
用来区分成员变量和局部变量重名
main方法的格式详细解释
1、格式
public static void main(String[] args) {}
2、针对格式的解释
public 被jvm调用,访问权限足够大。
static 被jvm调用,不用创建对象,直接类名访问
void被jvm调用,不需要给jvm返回值
main 一个通用的名称,虽然不是关键字,但是被jvm识别
String[] args 以前用于接收键盘录入的