June is Combung
접근 제어자 본문
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