Java 변수 유형
Java 언어에서는 모든 변수를 사용하기 전에 선언해야 합니다. 변수 선언의 기본 형식은 다음과 같습니다.
type identifier [ = value][, identifier [= value] ...] ;
형식 설명: type은 Java 데이터 유형입니다. 식별자는 변수 이름입니다. 동일한 유형의 여러 변수는 쉼표로 구분하여 선언할 수 있습니다.
다음은 변수 선언의 몇 가지 예입니다. 일부에는 초기화 프로세스가 포함되어 있습니다.
int a, b, c; // 声明三个int型整数:a、 b、c。 int d = 3, e, f = 5; // d声明三个整数并赋予初值。 byte z = 22; // 声明并初始化z。 double pi = 3.14159; // 声明了pi。 char x = 'x'; // 变量x的值是字符'x'。
Java 언어에서 지원하는 변수 유형은 다음과 같습니다.
로컬 변수
멤버 변수
클래스 변수
Java 지역 변수
지역 변수는 메소드, 생성자 또는 명령문 블록에서 선언됩니다.
지역 변수는 메소드, 생성자 또는 명령문 블록이 실행될 때 생성됩니다.
액세스 한정자는 지역 변수에 사용할 수 없습니다.
지역 변수는 해당 변수가 선언된 메서드, 생성자 또는 명령문 블록에서만 볼 수 있습니다. 변수는 스택에 할당됩니다.
지역 변수에는 기본값이 없으므로 지역 변수를 선언한 후에는 초기화를 해야 사용할 수 있습니다.
예제 1
다음 예에서 age는 지역 변수입니다. pubAge() 메서드에 정의되어 있으며 해당 범위는 이 메서드로 제한됩니다.
위 예제의 컴파일 및 실행 결과는 다음과 같습니다.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(); } }예제 2
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(); } }인스턴스 변수
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
인스턴스 변수는 클래스에서 선언하지만 메소드에서는 생성자 및 명령문 블록
객체가 인스턴스화되면 각 인스턴스 변수의 값이 결정됩니다.
인스턴스 변수는 객체가 생성될 때 생성되고 객체가 소멸될 때 소멸됩니다.
인스턴스 변수의 값은 적어도 하나의 메소드, 생성자 또는 명령문 블록에서 참조되어야 외부에서 이러한 메소드를 통해 인스턴스 변수 정보를 얻을 수 있습니다.
인스턴스 변수를 선언할 수 있습니다. 사용 전후;
액세스 한정자는 인스턴스 변수를 수정할 수 있습니다.
인스턴스 변수는 클래스의 메서드, 생성자 또는 명령문 블록에 표시됩니다. 일반적으로 인스턴스 변수는 비공개로 설정해야 합니다. 액세스 수정자를 사용하여 인스턴스 변수를 하위 클래스에 표시할 수 있습니다.
인스턴스 변수에는 기본값이 있습니다. 숫자형 변수의 기본값은 0이고, 불리언 변수의 기본값은 false이며, 참조형 변수의 기본값은 null입니다. 변수의 값은 선언 시 지정하거나 생성자에서 지정할 수 있습니다.
인스턴스 변수는 변수 이름을 통해 직접 액세스할 수 있습니다. 그러나 정적 메서드 및 기타 클래스에서는 정규화된 이름인 ObjectReference.VariableName을 사용해야 합니다.
예시 :
위 예시의 컴파일 및 실행 결과는 다음과 같습니다.import java.io.*; public 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 : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]){ Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); } }클래스 변수(정적 변수)
name : Ransika salary :1000.0
클래스 변수라고도 합니다. 정적 변수는 클래스에서 static 키워드를 사용하여 선언되지만 메서드 생성자와 명령문 블록 외부에 있어야 합니다.
클래스가 얼마나 많은 객체를 생성하더라도 클래스에는 클래스 변수의 복사본이 하나만 있습니다.
정적 변수는 상수로 선언된 경우를 제외하고는 거의 사용되지 않습니다. 상수는 public/private, final 및 static 유형으로 선언된 변수를 나타냅니다. 초기화 후에는 상수를 변경할 수 없습니다.
정적 변수는 정적 저장 영역에 저장됩니다. 종종 상수로 선언되는 변수는 정적만을 사용하여 선언되는 경우가 거의 없습니다.
정적 변수는 프로그램 시작 시 생성되고 프로그램 종료 시 소멸됩니다.
은 인스턴스 변수와 유사한 가시성을 갖습니다. 그러나 클래스 사용자에게 표시되기 위해 대부분의 정적 변수는 공개 유형으로 선언됩니다.
기본값은 인스턴스 변수와 유사합니다. 숫자 변수의 기본값은 0이고, 불리언 변수의 기본값은 false이며, 참조 유형의 기본값은 null입니다. 변수의 값은 변수를 선언할 때 또는 생성자에서 지정할 수 있습니다. 또한 정적 변수는 정적 문 블록에서 초기화될 수도 있습니다.
정적 변수는 ClassName.VariableName을 통해 액세스할 수 있습니다.
类变量被声明为public static final类型时,类变量名称必须使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。
实例:
import java.io.*; public class Employee{ //salary是静态的私有变量 private static double salary; // DEPARTMENT是一个常量 public static final String DEPARTMENT = "Development "; public static void main(String args[]){ salary = 1000; System.out.println(DEPARTMENT+"average salary:"+salary); } }
以上实例编译运行结果如下:
Development average salary:1000
注意:如果其他类想要访问该变量,可以这样访问:Employee.DEPARTMENT。
本章节中我们学习了Java的变量类型,下一章节中我们将介绍Java修饰符的使用。
以上就是【java教程】Java变量类型的内容,更多相关内容请关注PHP中文网(www.php.cn)!