教程 > java 教程 > 阅读:70

java 变量类型——迹忆客-ag捕鱼王app官网

在一节中我们介绍了变量的声明以及一些基本的操作。本章将解释 java 语言中可用的各种变量类型。 java中的三种变量

  • 局部变量
  • 实例变量
  • 类/静态变量

局部变量

  • 局部变量在方法、构造函数或块中声明。
  • 局部变量在进入方法、构造函数或块时创建,一旦退出方法、构造函数或块,变量将被销毁。
  • 访问修饰符不能用于局部变量。
  • 局部变量仅在声明的方法、构造函数或块中可见。
  • 局部变量在内部堆栈级别实现。
  • 局部变量没有默认值,所以在第一次使用之前应该声明局部变量并分配一个初始值。

示例

在下面的示例中,age 是一个局部变量。 这是在 pupage() 方法中定义的,其范围仅限于此方法。

public class test {
   public void pupage() {
      int age = 0;
      age = age   7;
      system.out.println("puppy age is : "   age);
   }
   public static void main(string args[]) {
      test test = new test();
      test.pupage();
   }
}

上面示例运行结果如下

puppy age is: 7

下面的例子使用 age 而不对它进行初始化,所以会在编译时出错。

public class test {
   public void pupage() {
      int age;
      age = age   7;
      system.out.println("puppy age is : "   age);
   }
   public static void main(string args[]) {
      test test = new test();
      test.pupage();
   }
}

这将在编译时产生以下错误

main.java:4: error: variable age might not have been initialized
      age = age   7;
            ^
1 error

实例变量

  • 实例变量在类中声明,但在方法、构造函数或任何块之外。
  • 当为堆中的对象分配空间时,将为每个实例变量值创建一个槽。
  • 实例变量在使用关键字“new”创建对象时创建,并在对象被销毁时销毁。
  • 实例变量包含必须由多个方法、构造函数或块引用的值,或者必须在整个类中存在的对象状态的基本部分。
  • 实例变量可以在使用之前或之后在类级别声明。
  • 可以为实例变量提供访问修饰符。
  • 实例变量对类中的所有方法、构造函数和块都是可见的。通常,建议将这些变量设为私有(访问级别)。但是,可以使用访问修饰符为这些变量提供子类的可见性。
  • 实例变量有默认值。对于数字,默认值为 0,对于布尔值,默认值为 false,对于对象引用,默认值为 null。可以在声明期间或在构造函数中分配值。
  • 实例变量可以通过在类内部调用变量名来直接访问。然而,在静态方法中(当实例变量被赋予可访问性时),它们应该使用完全限定名称来调用。objectreference.variablename。
import java.io.*;
class employee{
   // 这个实例变量对子类可见
   public string name;
   // 私有变量,仅在该类可见
   private double salary;
   //在构造器中对name赋值
   public employee (string empname){
      name = empname;
   }
   //设定salary的值
   public void setsalary(double empsal){
      salary = empsal;
   }  
   // 打印信息
   public void printemp(){
      system.out.println("名字 : "   name );
      system.out.println("薪水 : "   salary);
   }
}
public class main {
    public static void main(string[] args){
      employee empone = new employee("jiyik");
      empone.setsalary(1000.0);
      empone.printemp();
   }    
}

上面示例编译运行结果如下

名字 : jiyik
薪水 : 1000.0

类/静态变量

  • 类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
  • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
  • 静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static 类型的变量。静态变量初始化后不可改变。
  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。
  • 静态变量在第一次被访问时创建,在程序结束时销毁。
  • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。
  • 默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
  • 静态变量可以通过:classname.variablename的方式访问。
  • 类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致。
public class employee {
   // salary是静态的私有变量
   private static double salary;
   // department是一个常量
   public static final string department = "开发人员 ";
   public static void main(string args[]) {
      salary = 10000;
      system.out.println(department   "平均薪资:"   salary);
   }
}

上面示例编译运行结果如下

开发人员 平均薪资:10000.0

注意 : 如果从外部类访问变量,可以这样访问:employee.department。

查看笔记

扫码一下
查看教程更方便
网站地图