【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;

   // 其他成员变量和方法

}


静态变量的使用场景

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


存储全局状态或配置信息

计数器或统计信息

缓存数据或共享资源

工具类的常量或方法

单例模式中的实例变量


目录
相关文章
|
7天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
15天前
|
Java 编译器
Java重复定义变量详解
这段对话讨论了Java中变量作用域和重复定义的问题。学生提问为何不能重复定义变量导致编译错误,老师通过多个示例解释了编译器如何区分不同作用域内的变量,包括局部变量、成员变量和静态变量,并说明了使用`this`关键字和类名来区分变量的方法。最终,学生理解了编译器在逻辑层面检查变量定义的问题。
Java重复定义变量详解
|
15天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
39 17
|
7天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
11天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
51 4
|
12天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
28 2
|
16天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
20天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
20天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
19天前
|
Java
Java 静态变量的初始化顺序
【10月更文挑战第15天】了解 Java 静态变量的初始化顺序对于正确编写和维护代码至关重要。通过深入理解初始化顺序的原理和细节,我们可以更好地避免潜在的问题,并提高代码的质量和可靠性。