092 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 02 static关键字(中)

092 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 02 static关键字(中)

本文知识点:static关键字(中)

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

static关键字(中)

static在属性前修饰,称之为:静态属性、类属性
mark
同理,static在方法前修饰,方法就由普通的成员方法变为了类方法 。称之为:静态方法、类方法

mark

类方法调用和类属性调用类似

2种方式
方式1、对象.方法
方式2、类.方法
mark
推荐采用方式2
mark

static除了修饰属性、修饰方法还能修饰什么?

mark

注意:1、static不能修饰类
可以有静态属性、静态方法、但是不能有静态类
mark
mark
mark

注意:2、static不能修饰方法内的局部变量
mark

静态方法编写方法体的特殊要求

普通成员方法

普通成员方法可以调用同一个类中其他的成员方法,可以为成员属性(包括静态属性)赋值等等……
mark
mark

mark

mark

静态方法

mark
mark
静态方法的方法体中不能 直接 访问非静态成员(包括属性和方法),只能 直接 访问静态成员
静态方法的方法体中不能 直接 访问非静态成员方法,只能 直接 访问静态方法
mark

静态方法的方法体中不能 直接 访问非静态成员属性,只能 直接 访问静态属性
mark
mark

static代表类共享,而this代表当前实例,所以static和this冲突,在static方法中,不能使用this关键字。
mark

静态static方法中可以访问静态static属性
mark

那静态方法中如何访问 间接 非静态方法呢?
mark

总结:
1、静态方法中不能直接访问同一个类中得分非静态成员,只能直接调用同一个类中的静态成员
2、如果要访问同一个类中的静态成员,只能通过对象实例化后,通过对象名.成员名(包括成员属性和成员方法)的方式访问非静态成员

原文地址:https://www.cnblogs.com/xlfcjx/p/13729142.html