【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)

简介: 【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)

成员变量(实例变量)

成员变量声明在一个类中,但在方法、构造方法和语句块之外。

当一个对象被实例化之后,每个成员变量的值就跟着确定。

//创建一个新的ice对象myCar,并进行对象实例化,所以该对象的price变为了25000.0
public class ice {
    double price;
    // 构造函数
    public ice(double price) {
        this.price = price;
    }
    // 打印车辆信息的方法
    public void printInfo() {
        System.out.println("Price: $" + price);
    }
    public static void main(String[] args) {
        // 实例化一个ice对象
        ice myCar = new ice(25000.0);
        myCar.printInfo();
    }
}




成员变量在对象创建的时候创建,在对象被销毁的时候销毁。


成员变量可以声明在使用前或者使用后。


public class ice {

   // 成员变量声明时进行初始化

   int x = 10;

   // 构造函数

   public ice() {

       // 在构造函数中进行初始化

       y = 20;

   }

   // 成员变量声明后进行初始化

   int y;

   public void printValues() {

       System.out.println("x: " + x);

       System.out.println("y: " + y);

   }


   public static void main(String[] args) {

       ice obj = new ice();

       obj.printValues();

   }

}



访问修饰符可以修饰成员变量。


可以在构造函数或其他方法中初始化成员变量,或者通过对象或类名访问它们并设置它们的值。


public class ice {

   private int a; // 私有成员变量a

   public String b = "Hello"; // 公有成员变量b


   public static void main(String[] args) {

       ice obj = new ice(); // 创建对象


       obj.a = 10; // 访问成员变量a,并设置其值为10

       System.out.println("a = " + obj.a);


       obj.b = "World"; // 访问成员变量b,并设置其值为"World"

       System.out.println("b = " + obj.b);

   }

}



类变量(静态变量)

Java 中的静态变量是指在类中定义的一个变量,它与类相关而不是与实例相关,即无论创建多少个类实例,静态变量在内存中只有一份拷贝,被所有实例共享。


静态变量在类加载时被创建,在整个程序运行期间都存在。


定义方式

静态变量的定义方式是在类中使用 static 关键字修饰变量,通常也称为类变量。


public class MyClass {

   public static int count = 0;

   // 其他成员变量和方法

}


静态变量的使用场景

静态变量通常用于以下场景:


存储全局状态或配置信息

计数器或统计信息

缓存数据或共享资源

工具类的常量或方法

单例模式中的实例变量


目录
相关文章
|
5天前
|
Java 开发者
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
10 0
|
5天前
|
安全 Java 开发者
Java面试题:什么是Java 15中的密封类以及其限制?还有哪些其他特性用于限制类继承的机制吗?
Java面试题:什么是Java 15中的密封类以及其限制?还有哪些其他特性用于限制类继承的机制吗?
12 1
|
5天前
|
设计模式 存储 安全
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
14 1
|
6天前
|
Java 调度
Calendar类在Java中的应用
Calendar类在Java中的应用
|
10天前
|
开发框架 Java Android开发
Java中的类反射与动态代理详解
Java中的类反射与动态代理详解
|
12天前
|
Java 数据安全/隐私保护
|
12天前
|
Java 数据安全/隐私保护
Java中的类继承与多态详解
Java中的类继承与多态详解
|
12天前
|
设计模式 Java
Java中的动态加载与卸载类
Java中的动态加载与卸载类
|
5天前
|
存储 运维 前端开发
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
15 0
|
5天前
|
安全 Java 数据处理
Java面试题:什么是Java中的Optional类及其使用场景?
Java面试题:什么是Java中的Optional类及其使用场景?
8 0