java之静态变量

简介: java之静态变量

由static修饰的变量、常量和方法被称做静态变量、常量和方法。在处理问题时会需要两个类在同一个内存区域共享一个数据。例如,在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量。这时没有必要在两个类中同时创建PI常量,因为这样系统会将这两个不在同一个类中定义的常量分配到不同的内存空间中。为了解决这个问题,可以将这个常量设置为静态的。

被声明为static的变量、常量和方法被称为静态成员。静态成员属于类所有,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。

虽然静态成员也可以使用“对象.静态成员”的形式进行调用,但通常不建议用这样的形式,因为这样容易混淆静态成员和非静态成员。

主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制,Java编译器通过主方法来执行程序。主方法的语法如下:在主方法的定义中可以看到主方法具有以下特性: 主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的。 主方法没有返回值。 主方法的形参为数组。其中args[0]~args[n]分别代表程序的第一个参数到第n个参数,可以使用args.length获取参数的个数。

创建TestMain类:

public class TestMain {
  public static void main(String[] args) { // 定义主方法
    for (int i = 0; i < args.length; i++) { // 根据参数个数做循环操作
      System.out.println(args[i]); // 循环打印参数内容
    }
  }
}

在Eclipse中设置程序参数的步骤如下:

(1)在Eclipse中,在包资源管理器的项目名称节点上单击鼠标右键,在弹出的快捷菜单中选择“运行”/“运行 配置”命令,弹出“运行 配置”对话框。

(2)在“运行 配置”对话框中选择“自变量”选项卡,在“程序自变量”文本框中输入相应的参数,每个参数间按Enter键隔开。

对象可以认为是在一类事物中抽象出某一个特例,可以通过这个特例来处理这类事物出现的问题。在Java语言中通过new操作符来创建对象。前文在讲解构造方法时介绍过每实例化一个对象就会自动调用一次构造方法,实质上这个过程就是创建对象的过程。准确地说,可以在Java语言中使用new操作符调用构造方法创建对象。

在项目中创建CreateObject类,在该类中创建对象并在主方法中创建对象。

public class CreateObject {
  public CreateObject() { // 构造方法
    System.out.println("创建对象");
  }
  public static void main(String args[]) { // 主方法
    new CreateObject(); // 创建对象
  }
}

在项目中创建AccessProperty类,该类举例说明对象调用静态成员变量

public class AccessProperty {
  static int i = 47; // 定义静态成员变量
  public void call() { // 定义成员方法
    System.out.println("调用call()方法");
    for (i = 0; i < 3; i++) {
      System.out.print(i + " ");
      if (i == 2) {
        System.out.println("\n");
      }
    }
  }
  public AccessProperty() { // 定义构造方法
  }
  public static void main(String[] args) { // 定义主方法
    AccessProperty t1 = new AccessProperty(); // 创建一个对象
    AccessProperty t2 = new AccessProperty(); // 创建另一个对象
    t2.i = 60; // 将类成员变量赋值为60
    System.out.println("第一个实例对象调用变量i的结果:" + t1.i++);
    t1.call(); 
    System.out.println("第二个实例对象调用变量i的结果:" + t2.i);
    t2.call(); 
  }
}


相关文章
|
4月前
|
缓存 JavaScript Java
怎么在Java 16中编写C风格的局部静态变量
Java 16通过 JEP 395 放宽了内层类声明静态成员的限制, 允许声明静态成员, 如记录类成员. 这项改进使得可以在局部范围内使用类似 C 风格的静态变量, 即局部变量仅初始化一次并在多次调用间共享. 例如, 缓存正则表达式模式, 以前需要将其置于类命名空间中, 现在可以保持在方法范围内
|
20天前
|
Java
Java 静态变量的初始化顺序
【10月更文挑战第15天】了解 Java 静态变量的初始化顺序对于正确编写和维护代码至关重要。通过深入理解初始化顺序的原理和细节,我们可以更好地避免潜在的问题,并提高代码的质量和可靠性。
|
1月前
|
Java
Java“非静态变量 ... 不能在静态上下文中被引用”解决
Java中遇到“非静态变量不能在静态上下文中被引用”的错误,通常是因为尝试在静态方法或静态块中访问实例变量。解决方法是将变量声明为静态(static)或通过实例对象来访问该变量。
|
6月前
|
存储 Java
【Java开发指南 | 第七篇】静态变量生命周期、初始化时机及静态变量相关性质
【Java开发指南 | 第七篇】静态变量生命周期、初始化时机及静态变量相关性质
139 4
|
5月前
|
安全 Java
探讨Java中静态变量在静态方法内部的使用及其注意事项
探讨Java中静态变量在静态方法内部的使用及其注意事项
44 1
|
4月前
|
存储 Java
Java中的静态变量与静态方法:应用与注意事项
Java中的静态变量与静态方法:应用与注意事项
|
6月前
|
存储 Java
Java静态变量在静态方法内部无法改变值
在Java中,静态变量属于类本身,而非类的实例,因此可以在没有创建实例的情况下通过类名访问和修改。若在静态方法中无法改变静态变量的值,可能是因为逻辑错误、局部变量覆盖、误用实例访问或尝试修改`final`静态变量。要访问静态变量,直接通过类名调用即可。修改静态变量同样直接,只需通过类名加变量名并赋新值。静态变量与实例变量的主要区别在于生命周期、存储位置、访问方式和数据共享。静态变量在整个程序运行期间存在,所有实例共享,而实例变量每个对象独有。
|
6月前
|
存储 缓存 Java
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
67 2
|
6月前
|
存储 设计模式 Java
深入解析Java中的静态变量
深入解析Java中的静态变量
64 0
|
6月前
|
存储 设计模式 缓存
Java 中的 static:静态变量、静态方法,一切都在掌握中
Java 中的 static:静态变量、静态方法,一切都在掌握中
1470 0