본문 바로가기
  • think normal
새로워지기/서른의 생활코딩

ex10) java_oop

by 청춘만화 2012. 2. 21.

/*
//첫 예제 (앞에 내용 생략..? ㅋ 미쳐 못적음 ㅜㅜ)
public class Oop001 {

public static void main(String[] args) {
A kk;
kk= new A();
kk.sub();     //다형성
kk= new B();
kk.sub();     //다형성
}

}
**/



class A {
int aa = 1;
}
class B extends A {
int bb = 2;
}
class C extends B {
int cc = 3;
}
class Oop001 {
public static void main(String[] args) {
C objc = new C();
System.out.println("objc객체의 객체속성변수 aa의 값은 " + objc.aa);
System.out.println("objc객체의 객체속성변수 bb의 값은 " + objc.bb);
System.out.println("objc객체의 객체속성변수 cc의 값은 " + objc.cc);
B j = objc;  //자동 형변환
System.out.println("objc객체의 객체속성변수 aa의 값은 " + j.aa);
System.out.println("objc객체의 객체속성변수 bb의 값은 " + j.bb);
//System.out.println("objc객체의 객체속성변수 cc의 값은 " + j.cc);
                              //메모리 형식으로 잡혀있지만 범위를 벗어났다.
//System.out.println("objc객체의 객체속성변수 cc의 값은 " + (c)j.cc);  //X
//System.out.println("objc객체의 객체속성변수 cc의 값은 " + ((c)j).cc);
B jj =new B();
System.out.println("objc객체의 객체속성변수 aa의 값은 " + jj.aa);
////C c1=(C)jj;
//C c1 = (C)jj; //강제 형변환 BUT 여기 예제로는 호출?은 안됨!
//System.out.println("objc객체의 객체속성변수 aa의 값은 " + c1.aa);
//System.out.println("objc객체의 객체속성변수 bb의 값은 " + c1.bb);
//System.out.println("objc객체의 객체속성변수 cc의 값은 " + c1.cc); //에러
}
}



//자기자신 =this 상위=super


//objc참조변수   
// -> object참조변수 -> a class = "1" + 디폴트 생성자 (object참조변수)에 추가 = "a()"
// -> b class = "2" + 디폴트 생성자 (object참조변수)에 추가  = "b()"
// -> c class = "3" + 디폴트 생성자 (object참조변수)에 추가  = "c()"
//객체화 -> 객체의 주소값을   objc참조변수에 저장!

'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글

ex12) java_oop  (0) 2012.02.21
ex11) java_oop  (0) 2012.02.21
java _20120220  (0) 2012.02.20
ex9) java_oop  (0) 2012.02.16
ex8) java_oop  (0) 2012.02.16

댓글