Java에서 변수의 범위 [코딩 예제 포함]

게시 됨: 2021-02-05

목차

소개

프로그래머 는 변수에 액세스하거나 볼 수 있는 영역에 대해 컴파일러에 알려주는 Java의 변수 범위를 정의합니다 . Java에서 변수의 범위는 본질적으로 정적입니다. 이는 컴파일 타임에만 선언해야 함을 의미합니다. 이 기사에서는 유형과 함께 Java 변수의 범위에 대해 학습합니다.

Java에서 변수의 범위는 무엇입니까?

프로그래밍 언어에서 사용되는 모든 변수에는 범위가 있습니다. 범위는 변수가 액세스 가능하거나 사용되는 프로그램 내의 세그먼트에 대해 컴파일러에 알려줍니다. 프로그래머는 변수의 범위를 사전적으로 또는 Java 변수의 경우 정적으로 지정할 수 있습니다.

정적 범위 변수는 프로그래머가 런타임이 아닌 컴파일 시간에 Java에서 변수의 범위를 결정해야 함을 의미합니다. 또한 모든 클래스는 Java 패키지의 일부입니다. 이는 Java에서 변수 범위의 두 가지 범주로 요약됩니다 .

1. 클래스 범위의 멤버 변수: 멤버 변수는 클래스의 멤버이므로 클래스 내부에서 선언되지만 메서드나 함수 내부에서는 선언되지 않습니다. 따라서 클래스 범위 또는 클래스 수준 범위와 같은 변수 범위를 다룰 수 있습니다. 프로그래머 는 액세스 수정자와 함께 클래스의 중괄호( {} ) 내에서 이러한 변수를 선언합니다. 프로그래머는 이러한 변수를 Java 클래스 내 어디에서나 사용할 수 있지만 외부에서는 사용할 수 없습니다.

예시:

공개 클래스 EgOfClassScope {

개인 정수 amt = 10;

공개 무효 egMethod() {

amt += 10;

}

공개 무효 anotherExampleMethod() {

정수 AmtIncr = amt + 6;

}

}

클래스의 모든 메소드 내에서 'amt' 변수에 액세스할 수 있음을 알 수 있습니다. private 대신 public access modifier를 사용하면 변수는 패키지 내 어디에서나 액세스할 수 있습니다.

수정자 패키지 하위 클래스 세계

공공의

보호받는 아니요

기본값(아니요
수정자) 아니오 아니오

사적인 아니오 아니오 아니오

2. 로컬 범위 또는 메서드 범위: 프로그래머는 더 작은 범위(메소드 내에서 가정)를 가진 로컬 범위에서 지역 변수를 선언할 수 있습니다. 프로그래머는 동일한 클래스에서도 Java 메소드 외부에서 이러한 변수에 액세스할 수 없습니다. 접근성에 한계가 있으며 Java 메소드의 범위가 완료되면 가시성이 종료됩니다.

예 1:

공개 클래스 EgOfMethodScope {

공개 무효 FirstMethod() {

정수 급여 = 6000;

}

공개 무효 SecondMethod() {

// 다음과 같은 컴파일 타임 오류가 발생합니다. 영역을 변수로 확인할 수 없습니다.

급여 = 급여 + 2000;

}

}

메소드 범위의 예입니다. 여기에서 FirstMethod(){….} 내에 변수 'salary'를 만들었습니다. 따라서 해당 범위는 FirstMethod()의 끝에서 끝납니다. 따라서 SecondMethod()에서 이 변수를 사용하면 'salary' 변수가 범위를 벗어나므로 오류가 발생합니다.

예 2:

클래스 EgOfMethodScope2

{

개인 int g;

공개 무효 setG(int g)

{

this.g = g;

}

}

여기서는 'this' 키워드를 사용하여 로컬 범위와 클래스 변수 범위를 구분합니다. 프로그래머는 이 키워드를 사용하여 현재 개체를 참조 변수로 가리킵니다. 여기서 프로그래머는 변수를 메서드에 매개변수로 전달합니다.

메서드 실행이 끝나면 지역 변수가 존재하지 않습니다. Java 메소드 내에서 사용되지만 내부의 특정 부분에서 사용되는 다른 형태의 로컬 범위가 있습니다.

  • 루프 범위: 루프 내에서 변수를 선언하는 상황이 있습니다. 이러한 변수는 루프 범위를 가지며 루프 내에서만 액세스할 수 있습니다.

예시:

공개 클래스 EgOfLoopScope {

List<String> listOfEmp = Arrays.asList ( "Karlos", "Gaurav", "Sue", "Dee");

공개 무효 iterateEmpName() {

문자열 모두 = "";

for (문자열 이름: listOfEmp)

{ // 루프의 범위는 여기에서 시작됩니다.

모두 = 모두 + " " + 이름;

} // 루프 범위는 여기에서 끝납니다.

// 다음 줄에서 변수에 액세스하려고 하면 이름을 변수로 확인할 수 없다는 컴파일 시간 오류가 발생합니다.

문자열 lastEmpName = 이름;

}

}

이 iterateEmpName() 메서드에서 변수 'names'는 루프 범위를 가지며(카운터 변수이므로) 'for' 문의 { 및 } 내에서 액세스할 수 있습니다.

  • 브래킷 범위: 프로그래머는 프로그램 내에서 추가 범위를 정의할 수 있습니다. 프로그래머는 { 및 } 대괄호를 사용하여 이 추가 범위를 정의할 수 있습니다.

예시:

공개 클래스 EgOfBracketScope {

공개 무효 EgAddOp() {

정수 총계 = 0;

{ // 대괄호는 여기에서 시작합니다.

정수 번호 = 6;

tot = tot + 아니요;

} // 대괄호 범위는 여기에서 끝납니다.

// 컴파일 타임 오류가 발생합니다. number cannot be solve as a variable – if used in the next line

아니요- ;

}

}

Java의 변수 범위에 대한 핵심 사항

  • 다른 프로그래밍 언어(C, C++ 및 C#)와 마찬가지로 Java에서 변수 범위를 정의하려면 중괄호( { 및 } ) 세트를 사용해야 합니다.
  • 메서드 범위 외부의 클래스 내에서 변수를 정의하면 모든 메서드에서 변수에 액세스할 수 있습니다.
  • 루프 종료 후 변수를 사용하려면 루프 본문 앞이나 바로 위에 변수를 선언해야 합니다.
  • 그러나 생성자, Java 메서드 및 블록 없이는 구현하거나 액세스할 수 없습니다.
  • 정적 변수의 범위는 클래스 내에만 있습니다.
  • 범위는 변수에 액세스할 수 있는 프로그램 내의 영역을 정의합니다.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

이 기사는 프로그래머가 Java 범위를 사용하여 다른 프로그램을 작성하는 방법을 보여줍니다. 또한 변수가 보이는 프로그램 내 영역에 대해서도 알려줍니다. 접근성과 가시성은 범위 개념 때문에 프로그래밍에서 중요한 역할을 합니다. 변수 범위를 지정하는 데 있어 단 한 번의 실수라도 프로그래머는 컴파일 타임 오류를 일으킬 수 있습니다.

Java 기술을 향상시키려면 이러한 Java 프로젝트에 손을 대야 합니다. Java, 전체 스택 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트, 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

Java에서 변수 범위는 무엇입니까?

변수의 범위는 참조할 수 있는 프로그램의 위치입니다. 변수 선언에서 'scope' 키워드를 사용하여 변수 범위를 지정합니다. '모든' 범위에서 액세스할 수 있는 변수는 프로그램의 어디에서나 절대적으로 액세스할 수 있습니다. 특정 범위에서만 액세스할 수 있는 변수는 해당 범위에서만 액세스할 수 있습니다. 범위는 함수, 블록, 메서드, 클래스 또는 모든 메서드, 블록 및 클래스 외부일 수 있습니다.

Java에서 액세스 수정자의 유형은 무엇입니까?

Java에는 public, protected, default(패키지) 및 private의 네 가지 유형의 액세스 수정자가 있습니다. Public은 변수, 클래스 또는 함수를 어디에서나 액세스할 수 있도록 하고, protected는 정의된 클래스와 하위 클래스에서 액세스할 수 있도록 하고, default(패키지)는 동일한 패키지의 모든 클래스에 액세스할 수 있도록 하고 private은 정의된 클래스입니다.

Java에서 정적 키워드는 무엇입니까?

Java 클래스의 정적 키워드는 그렇게 선언된 클래스가 클래스의 인스턴스가 아니라 그 자체로 클래스임을 나타냅니다. 클래스의 정적 데이터 멤버는 모든 인스턴스에 공통입니다. 정적 키워드는 클래스의 정적 메서드 및 필드에 액세스하는 데 사용됩니다. Java에서 static 키워드는 클래스의 정적 메소드 및 필드에 액세스하는 데 사용됩니다. 클래스의 정적 메서드 및 필드에 액세스하려면 클래스 이름, 점(.), 정적 메서드 또는 필드 이름을 사용해야 합니다.