June is Combung

접근 제어자 본문

java/객체지향

접근 제어자

june__Park 2021. 3. 25. 00:28
package test;

//접근 제어자 종류 : default , public, private , protected 
class A_ {
	int a = 100; // 다른 클래스에서도 접근이 가능하다
	protected int b = 200;
	private int c = 300;

	// 메서드 오버로딩
	A_() {
	}

	public A_(int a, int b, int c) {
		super(); // 부모의 생성자 object :
		this.a = a; // 인스턴스 객체의 주소값이 this
		this.b = b;
		this.c = c;
	}

	void print() {
		System.out.println("A클래스야 ");
		System.out.printf("a=%d b=%d c=%d \n", a, b, c);
	}

	private int add() {
		return a + b + c;
	}

	protected int getC() {
		return c;
	}

	@Override
	public String toString() {
		return "A 안에 (a=" + a + ", b=" + b + ", c=" + c + ")";
	}
}

class B_ extends A_ {
	int a = 400;
	int b = 500;
	int c = 600;

	// 메서드 오버 라이딩
	void print() {
		System.out.println("b클래스야 ");
		System.out.printf("a=%d b=%d c=%d \n", a, b, c);
		System.out.println("부모는 a클래스야");
		super.print();
	}

	void printA() {
		// super 부모타입의 객체 주소가 들어있다
		System.out.println(super.a);
	}
}

class C_ extends A_ {
	int aaa = super.a;
	int bbb = super.b;
	// int ccc = super.c; 부모클래스의 c가 A 클래스에서만 사용하기 때문에 사용할 수가 없다
}

public class Extends2 {
	public static void main(String[] args) {
		A_ parent = new A_();
		// parent.a = 10;
		System.out.println(parent.toString());
		// toString() 은 객체가 가지고 있는 값을 출력을 하는게 기본값
		B_ child = new B_();
		System.out.println(child.a);
		C_ child2 = new C_();
		int c = child2.getC(); // a 안에 있는 private 변수를
		// 메서드를 통해서 자식이 접근해서 값을 가져올수 있음
		System.out.println("c=" + c);
	
	}
}

'java > 객체지향' 카테고리의 다른 글

추상 클래스  (0) 2021.03.25
메서드 오버로딩과 오버라이딩  (0) 2021.03.25
병원 (완성)  (0) 2021.03.25
인터페이스 예제 (전투게임)  (0) 2021.03.25
날짜와 시간  (0) 2021.03.25
Comments