一、实例变量定义
定义在类中,方法体之外的变量称为实例变量。实例变量在对象创建时被创建,每个对象都有自己的一份实例变量的拷贝,对象的操作必须通过对象的方法来完成,因此定义在类内部的实例变量可以被类的方法操作。
public class Person {
String name; // 实例变量
int age; // 实例变量
}在上面的代码中,name和age都是Person类的实例变量。
二、实例变量访问
实例变量可以通过”对象名.变量名”的方式进行访问.
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person();
p1.name = "张三";
p1.age = 20;
System.out.println("姓名:" + p1.name + ",年龄:" + p1.age);
}
}在上面的代码中,通过p1.name和p1.age访问了实例变量。
三、实例变量的默认值
如果实例变量没有初始化,那么会自动被赋予一个默认值。
| 数据类型 | 默认值 |
|---|---|
| 整型(byte、short、int、long) | 0 |
| 浮点型(float、double) | 0.0 |
| 布尔型(boolean) | false |
| 字符型(char) | ‘\u0000’ |
| 引用数据类型(类、数组、接口) | null |
public class Person {
String name; // 默认为null
int age; // 默认为0
float score; // 默认为0.0
boolean isMale; // 默认为false
char gender; // 默认为'\u0000'
}四、实例变量与静态变量的区别
实例变量是每个对象都有自己的一份拷贝,可以通过对象名进行访问,也可以通过对象的构造方法进行初始化。而静态变量属于类,不属于任何一个对象,不需要创建对象就可以访问,并且只有一份拷贝,可以通过类名访问。
public class Person {
String name; // 实例变量
static String school; // 静态变量
public Person(String name) {
this.name = name;
}
}
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person("张三");
p1.school = "清华大学";
Person p2 = new Person("李四");
System.out.println("姓名:" + p1.name + ",学校:" + p1.school);
System.out.println("姓名:" + p2.name + ",学校:" + p2.school);
}
}在上面的代码中,虽然p1和p2属于不同的对象,但是它们访问的是同一份静态变量school,因此输出的学校都是清华大学。
五、实例变量的封装
为了保证实例变量的安全性和正常操作,我们需要采用封装的方式隐藏实例变量。
public class Person {
private String name; // 使用private修饰,限制访问
private int age; // 使用private修饰,限制访问
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person();
p1.setName("张三");
p1.setAge(20);
System.out.println("姓名:" + p1.getName() + ",年龄:" + p1.getAge());
}
}在上面的代码中,将Person类的name和age变成私有的,通过getName和setName方法进行访问,将age变量也进行私有化,通过getAge和setAge方法进行访问。这样就可以保证实例变量的安全性。
六、小结
实例变量是定义在类中,方法体之外的变量。在对象创建时被创建,每个对象都有自己的一份实例变量的拷贝。实例变量可以通过对象名进行访问,也可以通过对象的构造方法进行初始化。实例变量如果没有初始化,会自动被赋予一个默认值。好处是可以被类的方法操作。和静态变量的区别在于,实例变量是属于对象的,而静态变量属于类,不属于任何一个对象。为了保证实例变量的安全性,我们需要采用封装的方式隐藏实例变量。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/231952.html
微信扫一扫
支付宝扫一扫