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(); 
  }
}


相关文章
|
1天前
|
存储 Java ice
【Java开发指南 | 第七篇】静态变量生命周期、初始化时机及静态变量相关性质
【Java开发指南 | 第七篇】静态变量生命周期、初始化时机及静态变量相关性质
13 4
|
1天前
|
存储 缓存 Java
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
9 2
|
3月前
|
存储 设计模式 缓存
Java 中的 static:静态变量、静态方法,一切都在掌握中
Java 中的 static:静态变量、静态方法,一切都在掌握中
500 0
|
7月前
|
Java
每日一道面试题之在 Java 中,为什么不允许从静态方法中访问非静态变量?
每日一道面试题之在 Java 中,为什么不允许从静态方法中访问非静态变量?
|
7月前
|
存储 安全 Java
【面试题精讲】Java静态变量有什么作用?
【面试题精讲】Java静态变量有什么作用?
|
11月前
|
Java
Java中static关键字(静态变量,静态方法,静态代码块)
Java中static关键字(静态变量,静态方法,静态代码块)
java202302java学习笔记第十九天-static-静态变量3
java202302java学习笔记第十九天-static-静态变量3
40 0
java202302java学习笔记第十九天-static-静态变量3
|
Java
Java 反射修改类的常量值、静态变量值、属性值
Java 反射修改类的常量值、静态变量值、属性值
868 0
|
Java
Java中 类变量(static静态变量)和实例变量(非静态变量)的区别
Java中 类变量(static静态变量)和实例变量(非静态变量)的区别
233 0
|
Java
Java中的静态变量、静态方法和Static关键字介绍与用法
Java中的静态变量、静态方法和Static关键字介绍与用法
210 0
Java中的静态变量、静态方法和Static关键字介绍与用法