자바 4대 특징 part1 추상화!!

안녕하세요

이번 시간에는 자바에서 집을 추상화 하는 시간을 갖겠습니다.

자바와 같은 객체 지향 프로그래밍(Object Oriented Programming)의

주요 특징은 크게 4가지가 있습니다.

1. 추상화

2. 은닉성(캡슐화)

3. 다형성

4. 상속성

이번 시간에는 object를 프로그램에 반영하는 작업인 추상화를 하는 시간을 해보겠습니다.
/*집을 추상화 해보자.
 * 1. 속성(attribute, property) ==> 멤버변수
 * 2. 행동양식(기능, behavior, function) ==> 메소드
 * 
 * */
public class House {
 //1. 속성 ==> "has a" 관계가 성립해야 한다.
 int room; // House has a room(집은 방을 가지고 있다)
 String owner; // (소유주를 가지고 있다)
 String addr; // (주소를 가지고 있다)
 //2. 행동양식
 public void showInfo()
 {
  System.out.println("----House 정보----");
  System.out.println("소유주: "+owner);
  System.out.println("방  수: "+room);
  System.out.println("주  소: "+addr);
 }
 public String existAt(int bunji)
 {
  String str=owner +"의 집: "+addr+" "+bunji+" 번지에 위치합니다.";
  return str;
 }
 // 메소드를 구성==> 집정보, 얼마에 세 유형(전세, 월세)를 주다
 public String rent(String type, int money)
 {
  showInfo();
  String str = type+": "+money+"만원";
  return str;
 }
}
/// 또 다른 클래스
public class BDSApp {
 public static void main(String[] args) {
  /*클래스 : 객체를 만들어내는 틀
   *     ex)붕어빵틀, 설계도
   *객  체 : 클래스를 통해 만들어진 구현물
   *    ex)붕어빵, 집
   * */
  House h1 = new House(); //Object(현실세계에 존재하는 객체)==>object(메모리 상에 올려진 객체),instance
  House h2 = new House();
  
  h1.owner="홍길동";
  h1.room=2;
  h1.addr="서울시 은평구 XX X동";
  
  h2.owner="나루토";
  h2.room=4;
  h2.addr="서울시 마포구 XX X동";
  
  h1.showInfo();
  h2.showInfo();
  
  //h1의 구체적인 주소를 출력 120번지
  //h2의 구체적 주소 출력 300번지
  
  String add1 = h1.existAt(300); // 재사용 가능
  System.out.println(add1);
  System.out.println(h2.existAt(100)); // 1회용
  System.out.println("###################");
  String add2 = h1.rent("전  세", 5000);
  System.out.println(add2);
  System.out.println(h2.rent("월  세", 30));
}

댓글 없음:

댓글 쓰기