자바 변수 유형
자바 언어에서 모든 변수는 사용하기 전에 선언해야합니다. 변수 선언의 기본 형식은 다음과 같습니다 :
type identifier [ = value][, identifier [= value] ...] ;
형식 설명 : Java 데이터 유형의 유형입니다. 식별자는 변수 이름입니다. 동일한 유형의 여러 변수를 선언 쉼표를 사용할 수 있습니다.
여기에 변수 선언의 몇 가지 예입니다. 일부는 초기화 과정을 포함합니다.
int a, b, c; // 声明三个int型整数:a、 b、c int d = 3, e, f = 5; // 声明三个整数并赋予初值 byte z = 22; // 声明并初始化 z String s = "w3big"; // 声明并初始化字符串 s double pi = 3.14159; // 声明了双精度浮点型变量 pi char x = 'x'; // 声明变量 x 的值是字符 'x'。
Java 언어는 가변 형식이 지원
- 지역 변수
- 멤버 변수
- 클래스 변수
자바 지역 변수
- 방법, 생성자 또는 문 블록에서 선언 된 지역 변수;
- 방법 생성자 또는 명령문의 블록들이 실행될 때 생성하도록 실행될 때 로컬 변수는 변수를 파괴한다;
- 액세스 한정자는 로컬 변수를 사용할 수 없다;
- 전용 메서드, 생성자 또는 문 블록 볼에 선언 된 지역 변수;
- 지역 변수는 스택에 할당됩니다.
- 로컬 변수는 사용하기 전에 초기화되어야 로컬 변수 선언되도록 기본값이 없다.
예 1
다음의 예에서, 세 로컬 변수이다. pupAge () 메소드에 정의 된, 그 범위는이 방법에 한정 될 것이다.
package com.w3big.test; public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("小狗的年龄是: " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
다음과 같은 결과를 컴파일 위의 예는 다음과 같습니다
小狗的年龄是: 7
예 2
세 변수 아래의 예에서 컴파일시 에러에 있도록 초기화되지 않습니다 :
public class Test{ public void pupAge(){ int age; age = age + 7; System.out.println("小狗的年龄是 : " + 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, 부울 변수의 기본값이 거짓, 기준 입력 변수의 디폴트 값은 널 (null)이다. 변수의 값은,이 또한 생성자에 지정할 수 선언시에 지정 될 수있다;
- 인스턴스 변수를 직접 변수 명에 의해 액세스 될 수있다. ObejectReference.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 키워드를 선언하지만, 외부는 공법 블록의 처리에 있어야한다.
- 클래스가 객체의 수를 만들지 여부, 클래스는 클래스 변수의 복사본을 가지고있다.
- 상수는 거의 사용하지 않기 때문에 정적 변수 외에도 선언된다. 상수는 변수 / 공공 민간 최종 정적 유형으로 선언됩니다. 초기화 상수 후 변경할 수 없습니다.
- 정적 변수는 정적 메모리에 저장됩니다. 종종 그것은 상수로, 거의 혼자 정적 변수 선언을 사용하지 선언했다.
- 프로그램을 작성하기 시작할 때 정적 변수, 프로그램의 끝에 파괴한다.
- 그리고 인스턴스 변수는 비슷한 시야를 가지고있다. 클래스의 사용자가 볼 수있는 것 외에, 스태틱 형 변수의 대부분은 공적으로 선언된다.
- 기본 및 인스턴스 변수 유사합니다. 숫자 변수 디폴트 값은 0이며, 기본값 부울 값이 거짓 기준 디폴트 값이 널 입력. 변수의 값은 생성자에 지정 될 선언시에 지정 될 수있다. 또한, 정적 변수는 정적 문 블록에서 초기화 될 수있다.
- 정적 변수가 될 수있다 : 액세스 ClassName.VariableName.
- 클래스 변수는 공공 정적 최종 형, 대문자를 사용해야합니다 클래스 변수 이름으로 선언됩니다. 정적 변수는 공공 및 최종 형태, 일관된 명명 및 명명 해당 인스턴스 변수와 지역 변수가 아닌 경우.
예 :
import java.io.*; 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을.
우리는 자바 변수 유형을 보려면이 장에서는 다음 절 우리는 자바 수식의 사용을 소개합니다.