ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java :: OOP-1, Object Oriented Programming(OOP)
    IT/Java & JSP & FW 2011. 12. 15. 12:30
    OOP 개념
    OOP란?
    객체지향 프로그래밍이라는 의미로  Object의 개념을 Program에 적용한 것.

    OOP 4대 특징
    1. 추상화
    어떠한 물체를 대상으로 주가되는 특징을 강조하여 표현하고, 그외 나머지 부분은 과감하게 생략하는 것.

    Object ┬속성 (마카 색상 등등)
    (마카) │
              └기능 (글쓰기 등등)

    마카의 추상화(설계도)
    (maka.java)
    //추상화 예제 
    public class maka {
    	
    	//속성 - 맴버변수(전역변수, 인스턴스변수)
    	String color;  //속성 정의
    	
    	//생성자
    	public maka(){
    		color="검정";
    	}
    	
    	//기능 - 메스드(맴버 매소드)
    	//static은 뺀다. 이 클래스를 부를 때만 메모리에 상주하게끔 만들어야 하기 때문이다. 
    	//매개 변수를 적을 필요가 없는 것은, 클래스 아래에 바로 변수를 만들었기 때문에 모두 사용이 가능하다.
    	public void makaWrite(){
    		System.out.println(color+"색상의 마카로 글을 씁니다.");
    	}
    }
    
     마카를 실제로 불러서 사용하는 방법
    (makaTest.java)
    public class makaTest {
    	public static void main(String[] args) {
    		
    		//maka 클래스를 불러서 새롭게 명세
    		//m1은 변수(물건)을 만든다.
    		maka m1=new maka();
    		
    		//m1을 사용하는 방법
    		m1.color="빨강";
    		m1.makaWrite();
    		
    		maka m2=new maka();
    		m2.color="노랑";
    		m2.makaWrite();
    		
    		maka m3=new maka();
    		m3.color="파랑";
    		m3.makaWrite();
    		
    		System.out.println("==========================");
    		
    		//생성자로 초기화 시켜서 확인시켜 보기.
    		maka m4=new maka();  //maka() 부분이 생성자를 실제로 부르고 있다. 
    		m4.makaWrite();
    		//자바에서 생성자를 만들지 않으면 자동으로 비어있는 생성자를 만들어 주기 때문에 에러가 나지 않는다.
    		//생성자를 만들게 되면 내가 만든 생성자로 초기화를 시킬 수 있다.
    	}
    }
    

    ※ 생성자란?
    클래스를 객체로 만들 때 해당 객채의 멤버변수들을 초기화 해주는 역활의 메소드
    사용자가 지정하지 않으면 자바에서 자동으로 기본 생성자를 제공해 줌으로 에러가 나지 않는다.
    사용자가 생성자를 지정하게 되면 초기값이 사용자의 생성자로 이루어지게 된다.

    생성자 형식

    접근지정자 생성자명(){

    초기화 과정;

    생성자는 반환타입이 없다. 반환할 것이 없기 때문이다.
    생성자명은 클래스와 똑같이 적어야한다.

    생성자 예제  
    (car.java)
    public class car {
    	
    	String color;
    	String name;
    	int t;
    	
    	public car(){
    		color="흰색";
    		name="기본카";
    		t=4;
    	}
    	
    	public void carGo(){		
    		System.out.println(name+"의 색상은 "+color+"이고 타이어 수는 "+t+"입니다.");
    		System.out.println(name+"가 전진하고 있습니다.");
    	}
    	
    	public void carBack(){
    		System.out.println(name+"의 색상은 "+color+"이고 타이어 수는 "+t+"입니다.");
    		System.out.println(name+"가 후진하고 있습니다.");
    	}
    	
    	public void getInfo(){
    		System.out.println("차이름:"+name);
    		System.out.println("차색상:"+color);
    		System.out.println("타이어갯수:"+t);
    	}
    }
    
    실행파일
    (carTest.java)
    import java.io.*;
    public class carTest {
    	
    	public static void xLine(){
    		System.out.println("-----------------------------");
    	}
    	
    	public static void main(String[] args) 
    	throws IOException{
    		
    		//BufferedReader in=
    		//		new BufferedReader(new InputStreamReader(System.in));
    		
    		car c1=new car();
    		c1.name="벤츠";
    		c1.color="검정";
    		c1.t=4;
    		c1.getInfo();
    		c1.carBack();
    		
    		xLine();
    		
    		car c2=new car();
    		c2.name="로체";
    		c2.color="흰색";
    		c2.t=4;
    		c2.getInfo();
    		c1.carGo();
    		
    		xLine();
    		
    		car c3=new car();
    		c3.name="아반떼";
    		c3.color="회색";
    		c3.t=4;
    		c3.getInfo();
    		
    		xLine();
    		
    		car c4=new car();
    		c4.getInfo();
    	}
    
    }
Designed by Tistory.