[JAVA] 접근 제어자 개념 정리

LeeSeungEun·2023년 5월 9일
0

JAVA

목록 보기
9/28

1. 접근 제어자 종류

  • 리턴 타입, 추상 클래스, final, 접근 제어자, 인터페이스

2. 문법

  • private은 클래스(A) 밖에서는 접근 할 수 없다는 의미다.(같은 클래스 내에서만 접근가능) 바로 이 private의 자리에 오는 것들을 접근 제어자(access modifier)라고 한다.
  • a.x()의 경우, 접근 제어자가 public이기 때문에 호출 할 수 있다. 그리고 메소드의 내용을 보면 내부적으로 메소드 z를 호출하고 있다. 메소드 z는 정상적으로 호출된다. 왜냐하면 메소드 x와 메소드 z는 같은 클래스의 소속이기 때문이다. 따라서 메소드 x에서 z를 호출 할 수 있는 것이다.
package org.opentutorials.javatutorials.accessmodifier;
class A {
    public String y(){
        return "public void y()";
    }
    private String z(){
        return "public void z()";
    }
    public String x(){
        return z();
    }
}
public class AccessDemo1 {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.y());
        // 아래 코드는 오류가 발생한다.
        //System.out.println(a.z());
        System.out.println(a.x());
    }

3. 사용 이유

package org.opentutorials.javatutorials.accessmodifier;

class Calculator{
 private int left, right; // 이 두개의 변수는 객체 외부에서 호출될 필요가 없다. 따라서 외부로부터 이 변수를 숨기기 위해서 접근 제어자로 private을 지정
  
 public void setOprands(int left, int right){
     this.left = left;
     this.right = right;
 }
 private int _sum(){
     return this.left+this.right; // 또한 메소드 _sum이 추가 되었는데 실제 계산은 이 메소드가 내부적으로 처리하고, 계산된 결과를 외부에 출력해주는 메소드는 sumDecoPlus, sumDecoMinus에서 처리
 }
 public void sumDecoPlus(){
     System.out.println("++++"+_sum()+"++++");
 }
 public void sumDecoMinus(){
     System.out.println("----"+_sum()+"----");
 }
}

public class CalculatorDemo {
 public static void main(String[] args) {        
     Calculator c1 = new Calculator();
     c1.setOprands(10, 20);
     c1.sumDecoPlus();
     c1.sumDecoMinus();
     // c1.left = 100; 과 같은 입력을 못하도록 private 사용
 }
}

https://opentutorials.org/course/1223/6061
4번 5번 동영상 들어야함

0개의 댓글