1.在方法中声明的变量从其声明开始到方法结束一直存在(可见)。
2.在代码块中声明的变量在代码块结束之前一直存在。
3.方法的参数在方法返回前一直存在。
4.对象中的变量在包含它们的对象的整个生命周期中都存在。它们的可见性也可以由特殊访问修饰符控制。
5.static(类)变量在程序运行的整个过程中都存在。它们的可见性也可以由访问修饰符定义。
要点
-
在方法内声明的所有变量从声明开始到方法结束一直存在(可见)(示例1)。
-
如果变量是在代码块中声明的,则它在代码块结束之前一直存在(示例 2)。
-
如果变量是方法参数,则它在方法的整个主体中都存在(可见)(示例3)。
-
如果变量是实例变量(示例4),则它链接到某个对象,并且在对象存在期间一直存在。如果没有对象,则该变量没有任何实例。可以从类的所有方法中访问变量(即变量可见),无论这些方法是在该变量之前还是之后声明的。将为每个对象创建一个新变量。该变量独立于其他对象。不能从 static 方法访问实例变量。
-
如果变量被声明为 static,即标记有关键字 static,则它在类存在期间一直存在。JVM 通常在首次使用类时将其加载到内存中。static 变量也是在此时进行初始化的。
-
static 变量由类的所有对象共享。
-
局部变量:方法内声明的所有变量都必须具有唯一的名称。方法的参数也被视为局部变量。
-
成员变量:成员变量对于每个类也必须是唯一的,但局部变量和成员变量的名称可以相同。
- 局部变量将遮罩实例变量。换言之,局部变量是要访问的变量。但是,你也可以访问实例变量。只是这样做有点复杂。
static
- static 方法和变量不链接到类的对象;它们链接到类本身。
- 使用 <对象> 点 <方法名称> 调用方法时,实际上是在调用类方法,并将该对象作为第一个参数进行传递。在方法内,对象称为‘this’。方法中的所有操作都是针对此对象及其数据执行的。
static 方法的工作原理
总结:
- 调用静态方法:类名.方法名() 非静态方法: 方法名()
- 在方法中,当实例变量(成员变量)与局部变量相同,已经为局部变量赋值,局部变量将掩盖原来的实例变量
- 非静态: this.实例变量名 静态:类名.实例变量名
你需要拥有自己的策略和独特计划,才能在不牺牲一切的前提下迈向顶尖。