变量

源自Javaの道日语技术社区原文地址
译者梦梦的幻想乡
見てくれてありがとうござい!!!

変数(译)

变量

现在对Java变量这一名词进行解释说明。

目录

  1. 变量的声明、赋值、引用

  2. 数据类型

  3. final变量

  4. 作用域

变量的声明、赋值、引用

变量的声明如下所示。

数据类型 变量名;

int x;
//也可以同时声明多个变量。
double x, y, z;

对变量的赋值如下所示。

变量名 = 值;

x = 10;
//声明的同时也可以直接赋值。
byte y = 20;
//char类型的变量在赋值的时候需要使用“单引号”来将值包含进来。
char z = 'A';

通过编写变量名,你可以引用分配给变量的值。

int x = 10;
//引用变量x,就会显示10
System.out.println(x);

数据类型

整数型

类型 默认值 大小 范围
byte 0 8bit -128 ~ 127
short 0 16bit -32768 ~ 32767
int 0 32bit -2147483648 ~ 2147483647
long 0 64bit -9223372036854775808 ~ 9223372036854775807
  • 为了有效利用资源、你应该声明合适的类型。如果一个变量的上限是100,那么最好不要声明为int类型。

  • 分配long类型值的时候,可以通过在值后面添加L或者l(小写的L)来强制其为long类型。由于l(小写的L)和1(数字1)很容易搞错,所以一般都使用L(x = 200L)
    译者注:如果不加L,默认是int类型,如上面的例子,Long x = 200L。如果不加L是无法通过编译的。

  • 分配8进制的时候,在值的开头添加0(x = 0537);在分配16进制的时候,在值的开头添加)0x或者)0X(x=0xB7A)

浮点数类型

类型 默认值 大小 范围
float 0.0 32bit 约(-)3.40282347E+38(约6~7位的精度)
double 0.0 64bit (-)1.79769313486231570E+388(15位的精度)
  • 浮点数类型不论大小,始终是double类型。在使用float类型值的时候,在其后面添加F或者f(abc = 3.14F)。如果想要明确的表示double类型,需要在值的后面加上D或者d(xyz = 124.543D)

其他

类型 默认值 大小 范围
char u0000 16bit u0000 ~ uFFFF
boolean false 1bit true、false
  • char类型可以使用一个字符的Unicode字符。在分配时,用单引号围绕该值。( xyz = '月'; )

  • Boolean类型的值仅仅只有true、false。请注意TRUE、FLASE等等大小写之间的不同。

final变量

使用了final关键字声明的变量,已分配值的变量将无法更改。一般用于不想变更的值或者难以用数字表示的值,以便稍后十分容易查看。一般来说声明无法变更的变量(常量)的时候,一般它的变量名都全部被定义为大写字母,如果有多个单词,那么在连接这些单词的时候会使用_(下划线)。(RATE、RATE_OF_DISCOUNT等等)

计算消费税的例子

不使用final标识符的变量

price = 100 + 100 * 0.05;
//之后很难理解如何处理

使用final标识符修饰变量

final float SHOHIZEI = 0.05F;
price = 100 + 100 * SHOHIZEI;
//之后很容易理解如何处理。

在声明final类型的变量的时候分配值是可以的,在声明之后再分配也是可以的。但是无论哪一种都不可以在赋值之后改变值。

final float RATE = 0.25F; //宣言時に値を代入する場合
RATE = 0.25F;

作用域

作用域是你使用变量名来引用变量的范围。主要分为成员变量的范围和局部变量的范围。

成员变量是属于特定类的变量,通常在类声明之后立即声明。 成员变量的范围是整个声明的类,可以从类中的任何方法或构造函数引用。关于更详细的请参考“Java之道 成员变量”。本地变量属于特定的方法或者构造函数。在方法或者构造函数中声明。本地变量的作用域是在声明位置处由代码块({})包围的范围,不能被其他方法或构造函数引用。
另外,同一个作用域内声明相同名字的变量。

class A {  //A类
    //(1)声明成员变量a
    int a = 10;

    public static void main(String args[]){  //main方法
        //(2)声明本地变量x
        int x = 20;
        A aaa = new A();
        aaa.show();
    }

    void show(){   //show方法
        //(3)声明本地变量y
        int y = 30;
        //(4)引用成员变量a
        System.out.println("変数aは" + a + "です。");
        //(5)引用局部变量x
        //System.out.println("変数xは" + x + "です。");
        //(6)引用局部变量y
        System.out.println("変数yは" + y + "です。");
    }
}

说明

  1. (1)声明成员变量a。成员变量的作用域属于声明类的全体。

  2. (2)声明局部变量x。局部变量的作用域是声明位置处由代码块({})包围的范围,在这里指的是main方法内。

  3. (3)声明局部变量y。作用域是show方法以内。

  4. (4)引用成员变量a。由于成员变量a的作用域属于类全体,所以在类的任何地方也可以引用。

  5. (5)引用局部变量x。由于局部变量x的作用域是在main方法内,所以show方法无法引用。会发生编译错误。

  6. (6)引用局部变量y。由于局部变量y的作用域是show方法以内,所以可以引用y。

执行结果

C:\source>javac A.java

C:\source>java A
変数aは10です。
変数yは30です。

C:\source>

原作者更新日:2017/1/2

你可能感兴趣的:(作用域,数据类型,变量,java)