什么是成员变量(成员变量是什么)

admin 2024-01-13 09:30 阅读数 #趣味分享

成员变量,顾名思义,是指属于某个类的变量。在面向对象编程中,类是一个抽象的概念,它可以看作是一个模板或者蓝图,用来描述一个对象的属性和方法。而成员变量就是描述该对象属性的变量,即它们存储了对象的状态信息。

成员变量可以分为实例变量和类变量。实例变量是指每个对象都有自己的一份,而类变量是指同一个类的所有对象共享一份。这里我们重点介绍实例变量。

实例变量是指在对象创建时被声明并初始化的变量,它们存储在对象中。访问实例变量的格式是“对象名.变量名”。例如,我们定义一个名为“Person”的类,它有两个实例变量“name”和“age”,那么在创建一个“Person”对象时,需要先定义它们并赋初值。如下面代码所示:

```java public class Person{ String name; // 实例变量 int age; // 实例变量 public static void main(String[] args) { Person p1 = new Person(); // 创建一个Person对象 p1.name = "张三"; // 设置实例变量的值 p1.age = 18; System.out.println("姓名:" + p1.name + ",年龄:" + p1.age); } } ```

上面的代码中我们创建了一个“Person”对象“p1”,并设置了它的“name”和“age”两个实例变量的值。那么我们如何理解这些变量呢?

首先,“name”和“age”是挂在对象上的,不同对象的这两个变量存储在不同的位置,它们互不干扰。也就是说,“name”和“age”是“p1”的属性,它们是用来描述“p1”的。如果我们创建一个新的“Person”对象“p2”,它也有自己独立的“name”和“age”变量,与“p1”的无关。

其次,成员变量的作用域是整个类。在类中的任何方法中,都可以访问实例变量,也可以改变它们的值。例如,我们在类中增加一个“changeAge()”方法,来改变某个“Person”对象的年龄:

```java public void changeAge(int age) { this.age = age; } ```

上面的代码中,“this”关键字表示当前对象本身,所以“this.age = age”表示把传入的“age”值设置到当前对象的“age”变量中。同样,我们还可以写一个“getAge()”方法来获取某个“Person”对象的年龄:

```java public int getAge() { return age; } ```

这样,我们就可以通过“p1.getAge()”来获取“p1”的年龄,同时也可以通过“p2.getAge()”来获取“p2”的年龄。

因为成员变量的作用域是整个类,所以它们也可以被不同的方法共享。例如,我们定义一个“count”变量来记录“Person”对象的个数:

```java public class Person{ static int count = 0; // 类变量 String name; // 实例变量 int age; // 实例变量 public Person() { count++; // 每创建一个Person对象就增加一次count } ... } ```

上面的代码中,我们把“count”变量定义为类变量,即在整个类中,只有一份“count”变量,并且所有的“Person”对象共享它。同时,我们在类的构造方法中,每次创建一个“Person”对象就增加一次“count”的值。这样,我们就可以通过“Person.count”来获取“Person”对象的个数。

在使用成员变量时,需要注意以下几点:

1. 成员变量的默认值

如果一个成员变量没有被初始化,它将会自动被赋予一个默认值,等于它的类型的默认值。例如,整型变量的默认值是0,浮点型变量的默认值是0.0,布尔型变量的默认值是false,引用型变量的默认值是null。

2. 成员变量的访问权限

成员变量的访问权限可以是public、private、protected和默认(即不写访问修饰符)。public表示该成员变量可以被该类的外部和内部访问,private表示该成员变量只能被该类内部访问,protected表示该成员变量可以被该类内部和该类的子孙类访问,而默认访问权限只能在同一包中被访问。

3. 成员变量的作用域

成员变量的作用域是整个类,它们可以被该类的任何方法访问。

4. 成员变量的数据类型

成员变量的数据类型可以是任何Java数据类型,包括基本类型和引用类型。当成员变量的数据类型是引用类型时,它的默认值是null。

总之,成员变量是面向对象编程中不可或缺的部分,它们存储了对象的状态信息,影响着对象的行为和特性。因此,程序员需要对成员变量有一个深入的理解,才能更好地掌握Java编程语言。

版权声明

本文均来源于互联网精选整理,仅供参考之用,不代表本站的观点和立场。
如有信息违规或者侵犯了您的权益,请告知我们,本站将立刻删除。

随机图文
热门