java
이 자습서에서는 Java Access Modifier, 해당 유형 및 예제를 통해 사용 방법에 대해 알아봅니다.
Java에서 액세스 수정자는 클래스, 인터페이스, 변수, 메서드, 생성자, 데이터 멤버 및 setter 메서드의 액세스 가능성(가시성)을 설정하는 데 사용됩니다. 예를 들어,
class Animal {
public void method1() {...}
private void method2() {...}
}
위의 예에서 method1()과 method2()의 2가지 메서드를 선언했습니다. 여기,
public
입니다. - 이는 다른 클래스에서 액세스할 수 있음을 의미합니다.private
입니다. - 다른 클래스에서 접근할 수 없음을 의미합니다.
키워드 public
에 유의하십시오. 및 private
. 이것은 Java의 액세스 수정자입니다. 가시성 수정자라고도 합니다.
참고 :getters 메소드의 접근 한정자를 설정할 수 없습니다.
<시간>접근 한정자의 유형에 대해 배우기 전에 Java 패키지에 대해 알고 있어야 합니다.
Java에는 다음과 같은 네 가지 액세스 수정자 키워드가 있습니다.
수정자 | 설명 |
기본값 | 선언은 패키지 내에서만 볼 수 있습니다(패키지 비공개) |
비공개 | 선언은 클래스 내에서만 볼 수 있습니다. |
보호됨 | 선언은 패키지 또는 모든 하위 클래스 내에서 볼 수 있습니다. |
공개 | 선언문은 어디에서나 볼 수 있습니다. |
클래스, 메서드, 변수 등에 대한 액세스 수정자를 명시적으로 지정하지 않으면 기본적으로 기본 액세스 수정자가 고려됩니다. 예를 들어,
package defaultPackage;
class Logger {
void message(){
System.out.println("This is a message");
}
}
여기서 로거 클래스에는 기본 액세스 수정자가 있습니다. 그리고 클래스는 defaultPackage에 속한 모든 클래스에서 볼 수 있습니다. 패키지. 그러나 Logger를 사용하려고 하면 defaultPackage 외부의 다른 클래스에 있는 클래스를 사용하면 컴파일 오류가 발생합니다.
<시간>
변수 및 메소드 선언 시 private
, 클래스 외부에서 액세스할 수 없습니다. 예를 들어,
class Data {
// private variable
private String name;
}
public class Main {
public static void main(String[] main){
// create an object of Data
Data d = new Data();
// access private variable and field from another class
d.name = "Programiz";
}
}
위의 예에서 name이라는 개인 변수를 선언했습니다. 및 display()
이라는 비공개 메서드 . 프로그램을 실행하면 다음 오류가 발생합니다.
Main.java:18: error: name has private access in Data
d.name = "Programiz";
^
Data의 private 변수와 private 메소드에 접근하려고 하기 때문에 오류가 발생합니다. 메인의 클래스 수업.
이러한 개인 변수에 액세스해야 하는 경우 어떻게 해야 하는지 궁금할 수 있습니다. 이 경우 getters 및 setters 방법을 사용할 수 있습니다. 예를 들어,
class Data {
private String name;
// getter method
public String getName() {
return this.name;
}
// setter method
public void setName(String name) {
this.name= name;
}
}
public class Main {
public static void main(String[] main){
Data d = new Data();
// access the private variable using the getter and setter
d.setName("Programiz");
System.out.println(d.getName());
}
}
출력 :
The name is Programiz
위의 예에는 name이라는 개인 변수가 있습니다. . 외부 클래스에서 변수에 액세스하기 위해 다음 메서드를 사용했습니다. getName()
및 setName()
. 이러한 메소드를 Java에서는 getter 및 setter라고 합니다.
여기서는 setter 메서드(setName()
) 변수와 getter 메서드에 값을 할당합니다(getName()
). ) 변수에 액세스합니다.
this
을 사용했습니다. setName() 내부의 키워드는 클래스의 변수를 참조합니다. 이 키워드에 대해 자세히 알아보려면 Java this Keyword를 방문하십시오.
참고 :Java에서는 클래스와 인터페이스를 private로 선언할 수 없습니다. 그러나 중첩된 클래스는 private로 선언할 수 있습니다. 자세한 내용은 Java 중첩 및 내부 클래스를 참조하십시오.
<시간>
메소드 및 데이터 멤버가 protected
으로 선언된 경우 , 동일한 패키지 내에서 뿐만 아니라 하위 클래스에서도 액세스할 수 있습니다. 예를 들어,
class Animal {
// protected method
protected void display() {
System.out.println("I am an animal");
}
}
class Dog extends Animal {
public static void main(String[] args) {
// create an object of Dog class
Dog dog = new Dog();
// access protected method
dog.display();
}
}
출력 :
I am an animal
위의 예에는 display()
라는 보호된 메서드가 있습니다. 동물 내부 수업. 동물 클래스는 Dog에 의해 상속됩니다. 수업. 상속에 대해 자세히 알아보려면 Java 상속을 방문하십시오.
그런 다음 dog 개체를 만들었습니다. 개 수업. 개체를 사용하여 부모 클래스의 보호된 메서드에 액세스하려고 했습니다.
보호된 메서드는 자식 클래스에서 액세스할 수 있으므로 Animal 메서드에 액세스할 수 있습니다. Dog의 클래스 수업.
참고 :protected
클래스 또는 인터페이스를 선언할 수 없습니다. 자바로.
메소드, 변수, 클래스 등이 public
로 선언된 경우 , 그러면 어디에서나 액세스할 수 있습니다. 공개 액세스 한정자는 범위 제한이 없습니다. 예를 들어,
// Animal.java file
// public class
public class Animal {
// public variable
public int legCount;
// public method
public void display() {
System.out.println("I am an animal.");
System.out.println("I have " + legCount + " legs.");
}
}
// Main.java
public class Main {
public static void main( String[] args ) {
// accessing the public class
Animal animal = new Animal();
// accessing the public variable
animal.legCount = 4;
// accessing the public method
animal.display();
}
}
출력 :
I am an animal. I have 4 legs.
여기,
display()
메인에서 액세스 수업.액세스 한정자는 주로 캡슐화에 사용됩니다. 프로그램의 어떤 부분이 클래스의 구성원에 액세스할 수 있는지 제어하는 데 도움을 줄 수 있습니다. 데이터의 오용을 방지할 수 있습니다. 캡슐화에 대해 자세히 알아보려면 Java Encapsulation을 방문하세요.
java
자바 대기열 인터페이스 이 자습서에서는 Java Queue 인터페이스와 해당 메서드에 대해 알아봅니다. Queue Java 컬렉션 프레임워크의 인터페이스는 큐 데이터 구조의 기능을 제공합니다. Collection 확장 인터페이스. 대기열을 구현하는 클래스 Queue 이후 인터페이스이므로 직접 구현할 수 없습니다. Queue의 기능을 사용하려면 , 이를 구현하는 클래스를 사용해야 합니다. 배열 데크 링크드리스트 우선순위 대기열 Queue를 확장하는 인터페이스 Queue 인터페이스는 다양한 하위 인터페이스로 확장됩니
C#에서 액세스 수정자(지정자)란 무엇입니까? 액세스 수정자 또는 C#의 액세스 지정자는 클래스 속성 또는 메서드의 가시성을 정의하는 데 사용되는 키워드입니다. 다른 프로그램에서 클래스의 속성이나 메서드를 보고 싶지 않을 때 사용합니다. 액세스 한정자는 다른 프로그램이 클래스의 속성이나 메서드를 볼 수 없도록 액세스를 제한합니다. C#에는 6가지 유형의 액세스 한정자가 있습니다. 비공개 공개 보호됨 내부 보호된 내부 개인 정보 보호 이 튜토리얼에서는 배우게 될 것입니다- C#의 액세스 수정자(지정자)란 무엇입니까? C#의