教妹学Java第8讲:初识Java变量
hello,小伙伴们,大家好,我是沉默王二,一枚沉默但有趣的程序员。又到了《教妹学 Java》的时间,很开心,很期待,很舒适,有没有?这是《教妹学 Java》专栏的第 8 篇文章,我们来谈谈“Java 变量”。
强烈推荐:我在 GitHub 上发现了一个宝藏项目,里面罗列了几百本 Java 经典电子书,包含入门、工具、框架、数据库、并发编程、底层、性能优化、设计模式、计算机网络、操作系统、数据结构与算法、面试、大数据、架构等等方面,应有尽有,需要的小伙伴可以到 GitHub 上自取:
https://github.com/itwanger/JavaBooks
上一篇文章发表后,就有小伙伴留言说“二哥,你是成功带妹入坑啊”,我也是被逼的啊。所以专栏名你们也看到了,对,初衷真的是教我妹学 Java。不过,我相信小伙伴们在阅读的过程中也一定能感受到思维的乐趣,还能真的学习到知识。
再次强调,《教妹学 Java》专栏面向的是零基础的 Java 学习者,我希望这个专栏能够带领 Java 初学者轻松迈进编程世界的大门,并且能够读写编写出规范、有用的 Java 代码。同时,为后续的深入学习打下坚实的基础。
我妹(亲妹)今年上大学了,学的计算机编程,没成想,她的一名老师竟然是我的读者,我妹是又惊喜又恐慌,惊喜是她哥我的读者群体还挺广泛的嘛,恐慌的是万一学不好岂不是很丢他哥的脸?
为了给妹妹全方位的支援,就有了《教妹学 Java》这个专栏,希望我妹能通过这个专栏更快地掌握 Java 这门编程语言。同时,也希望这个专栏能够帮助到更多刚入门的初学者,那就爽歪歪了。
------我是正儿八经的分割线--------
“二哥,听说 Java 变量在以后的日子里经常用,能不能提前给我透露透露?”三妹咪了一口麦香可可奶茶后对我说。
“三妹啊,搬个凳子坐我旁边,听二哥来给你慢慢说啊。”
Java 变量就好像一个容器,可以保存程序在运行过程中的值,它在声明的时候会定义对应的数据类型(Java 分为两种数据类型:基本数据类型和引用数据类型)。变量按照作用域的范围又可分为三种类型:局部变量,成员变量和静态变量。
比如说,int data = 88;
,其中 data 就是一个变量,它的值为 88,类型为整形(int)。
01、局部变量
在方法体内声明的变量被称为局部变量,该变量只能在该方法内使用,类中的其他方法并不知道该变量。来看下面这个示例:
/**
* @author 微信搜「沉默王二」,回复关键字 PDF
*/
public class LocalVariable {
public static void main(String[] args) {
int a = 10;
int b = 10;
int c = a + b;
System.out.println(c);
}
}
其中 a、b、c 就是局部变量,它们只能在当前这个 main 方法中使用。
声明局部变量时的注意事项:
局部变量声明在方法、构造方法或者语句块中。 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,将会被销毁。 访问修饰符不能用于局部变量。 局部变量只在声明它的方法、构造方法或者语句块中可见。 局部变量是在栈上分配的。 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
02、成员变量
在类内部但在方法体外声明的变量称为成员变量,或者实例变量。之所以称为实例变量,是因为该变量只能通过类的实例(对象)来访问。来看下面这个示例:
/**
* @author 微信搜「沉默王二」,回复关键字 PDF
*/
public class InstanceVariable {
int data = 88;
public static void main(String[] args) {
InstanceVariable iv = new InstanceVariable();
System.out.println(iv.data); // 88
}
}
其中 iv 是一个变量,它是一个引用类型的变量。new
关键字可以创建一个类的实例(也称为对象),通过“=”操作符赋值给 iv 这个变量,iv 就成了这个对象的引用,通过 iv.data
就可以访问成员变量了。
声明成员变量时的注意事项:
成员变量声明在一个类中,但在方法、构造方法和语句块之外。 当一个对象被实例化之后,每个成员变量的值就跟着确定。 成员变量在对象创建的时候创建,在对象被销毁的时候销毁。 成员变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息。 成员变量可以声明在使用前或者使用后。 访问修饰符可以修饰成员变量。 成员变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把成员变量设为私有。通过使用访问修饰符可以使成员变量对子类可见;成员变量具有默认值。数值型变量的默认值是 0,布尔型变量的默认值是 false,引用类型变量的默认值是 null。变量的值可以在声明时指定,也可以在构造方法中指定。
03、静态变量
通过 static 关键字声明的变量被称为静态变量(类变量),它可以直接被类访问,来看下面这个示例:
/**
* @author 微信搜「沉默王二」,回复关键字 PDF
*/
public class StaticVariable {
static int data = 99;
public static void main(String[] args) {
System.out.println(StaticVariable.data); // 99
}
}
其中 data 就是静态变量,通过类名.静态变量
就可以访问了,不需要创建类的实例。
声明静态变量时的注意事项:
静态变量在类中以 static 关键字声明,但必须在方法构造方法和语句块之外。 无论一个类创建了多少个对象,类只拥有静态变量的一份拷贝。 静态变量除了被声明为常量外很少使用。 静态变量储存在静态存储区。 静态变量在程序开始时创建,在程序结束时销毁。 与成员变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。 静态变量的默认值和实例变量相似。 静态变量还可以在静态语句块中初始化。
04、常量
在 Java 中,有些数据的值是不会发生改变的,这些数据被叫做常量——使用 final 关键字修饰的成员变量。常量的值一旦给定就无法改变!
常量在程序运行过程中主要有 2 个作用:
代表常数,便于修改(例如:圆周率的值,
final double PI = 3.14
)增强程序的可读性(例如:常量 UP、DOWN 用来代表上和下,
final int UP = 0
)
Java 要求常量名必须大写。来看下面这个示例:
/**
* @author 微信搜「沉默王二」,回复关键字 PDF
*/
public class FinalVariable {
final String CHEN = "沉";
static final String MO = "默";
public static void main(String[] args) {
FinalVariable fv = new FinalVariable();
System.out.println(fv.CHEN);
System.out.println(MO);
}
}
“好了,三妹,关于 Java 变量就先说这么多吧,你是不是已经清楚了?”转动了一下僵硬的脖子后,我对三妹说。
“是啊,二哥,我想以后还会再见到它们吧?”
“那见的次数可就多了,就好像你每天眨眼的次数一样多。”
这是《教妹学 Java》专栏的第 8 篇文章,能看到这里的小伙伴都是最帅的,最美的,升职加薪就是你了?。
写这个专栏的初衷就是为了帮助那些零基础学 Java,或者自学 Java 感觉特别痛苦,特别难入门的小伙伴。
另外,我还创建了一些「技术交流群」,群里氛围很不错,有不少小伙伴会分享一些校招或者社招经验,更重要的是,群里时不时会有「红包」等福利,当然,群里不允许任何形式的广告。扫描下方的二维码,回复「加群」即可。
示例代码已经同步到 GitHub,地址为 github.com/itwanger,也可以点击阅读原文进行跳转,欢迎 star。