본문 바로가기

Java

[Java] 메서드 접근 제어자

반응형
package org.opentutorials.javatutorials.accessmodifier;

class Test {
	public String y() {
		return "public void y()";
	}
	
	private String z() {
		return "private void z()";
	}
	
	public String x() {
		return z();
	}
}

public class AccessDemo {

	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.y());
		//System.out.println(t.z()); //error
		System.out.println(t.x());

	}

}

 

출력값

public void y()
private void z()

 

package org.opentutorials.javatutorials.accessmodifier;

class Calculator {
	private int left, right;
	
	public void setOperands(int left, int right) {
		this.left = left;
		this.right = right;
	}
	
	private int sum() {
		return this.left + this.right;
	}
	
	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.setOperands(10, 20);
		c1.sumDecoPlus();
		c1.sumDecoMinus();
	}

}

 

출력값

+++ 30 +++
--- 30 ---

 

public 은 모두 접근 가능하다.

private 는 같은 class 에서만 접근 가능하다

 

클래스에 this.메서드()를 작성하였을 때, 클래스에 해당 메서드가 없고 상속받은 부모 메서드에 해당 메서드가 있으면

this.메서드는 부모 메서드 이다.

 

 

  같은 클래스 같은 패키지 다른 패키지 / 자식 클래스 전 체
public O O O O
protected O O O X
default O O X X
private O X X X
반응형

'Java' 카테고리의 다른 글

[Java] abstract  (0) 2021.03.14
[Java] 클래스 접근 제어자  (0) 2021.03.14
[Java] overloading 오버로딩  (0) 2021.03.11
[Java] overrding 오버라이딩  (0) 2021.03.09
[Java] 생성자, super  (0) 2021.03.09