7.16
java中所有的变量分为:(1)成员变量和(2)局部变量。
(1)成员变量包括:
a) 实例变量
b)类变量(以static修饰)
区别:
访问:实例变量是通过定义类的对象来访问。类变量可以通过类或类对象来访问。
生存周期 :实例变量与类对象生存周期共存亡。类变量与类共存亡。
变量修改:多个对象指向不同的实例变量堆内存,即实例变量的值只与对象相关。多个对象指向同一个类变量的堆内存,即类变量的值与类对象无关,为最后一次修改的值。
例:
calss Tree
{
public String name;
public static int age;
}
访问:
Tree a1 = new Tree();
Tree a2 = new Tree();
a1.name = "苹果树";
a2.name = "橘子树";
a1. age = 20;
a2.age = 60;
其中,name的值为:a1.name = "苹果树",a2.name = "橘子树"。
age= 60。
(2)局部变量
a)形参(函数形参)
b)方法局部变量(在方法内定义)
c)代码块局部变量(在代码快内定义)
各种局部变量参数的生存周期不同。尽量使用局部作用范围小的变量,这样可以使其在程序内存中停留的时间变短,提高程序运行速度。
Java允许局部变量和成员变量同名,如果方法里的局部变量和成员名相同,局部变量会覆盖成员变量,若要在这个方法里使用成员变量,可使用this来调用成员变量。
方法局部变量的示例
方法的自动变量在入口时创建方法,并且仅在该方法的执行期间存在。只有在执行该方法时才能访问自动变量。(此规则的一个例外是内部类)。
自动变量(方法局部变量)不由系统初始化。自动变量必须在使用前显式初始化。例如,这个方法不会编译:
public class Main{ public int wrong() {
int i; return i+5;
}
}
类变量(静态变量)
这里只是一个类变量的一个副本,它存在,而不管该类的实例数。 静态变量在类加载时初始化; 这里,当Main类被加载时,y将被设置为30。
public class Main{ static int y = 30;}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)