ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 객체지향의 특성과 예제
    P.study 2020. 5. 8. 13:26

     

     

     

    오늘은 JAVA 코딩을 통한 객체 지향 프로그래밍 (OOP : Object Oriented Programming) 의 특징을 알아볼 것이다!

    특징은 상속, 다형성, 추상화, 캡슐화, 정보은닉이 있으며 이것에 대한 간단한 예제를 실습해 보았다.

     


     

    < 객체 지향 언어의 특징 >

    • 상속 (JAVA는 단일상속만을 지원)

      : 기존의 클래스를 이용해서 새로운 클래스를 만들어 변수와 메서드를 추가로 정의한 것

      (객체들 사이의 계층적 구조를 이룰 수 있음)

      **상속은 코드를 간결하게 하여 코드의 재사용성을 높이는 객체지향의 핵심 개념**

    • 다형성

      : 하나의 인터페이스를 이용해 서로 다른 구현을 제공함

      1. 메서드 오버로딩 : 한클래스 안에 같은 이름의 메서드를 여러개 정의하면서, 그 인자의 갯수나 유형을 자르게 해놓은 형태

      2. 메서드 오버라이딩 : 상속 관계에 있는 하위 클래스가 상위 클래스가 가지고 있는 메서드를 재정의 하는 것 (재정의된 메서드가 선언된 형태는 상위 클래스에서 선언된 것과 같음)

    • 추상화

      : 현실 세계에 존재하는 다양한 객체들의 공통된 특성을 모아 일반화해 놓은것

    • 캡슐화

      : 변수와 메서드를 하나의 추상화된 클래스로 묶는 과정을 의미함

      (객체가 제공하는 메서드를 통해 객체를 이용하고, 데이터가 실제로 어떻게 처리되는지는 알 필요 없음)

      • 정보 은닉

        캡슐화된 변수나 메서드를 선택적으로 공개하거나 숨길 수 있음

     


    # 코드

    // 상속 extends
    
    public class Car {
    	String name;
    	int currentGear;
    
    	public void changeGrear(int gear) {
    		System.out.println(" 기어를 "+ gear +"단으로 변경한다.");
    		currentGear = gear;
    	}
    
    	public String get_CurrentState() {
    		return name + "의 현재 기어 상태:" + currentGear;
    	}
    }
    
    public class Taxi extends Car {
    	int fare;
    	int passenger;
    }

     

    // 다형성
    // 1.오버라이딩   >> 출력 : 기어를 2 변경후 고정한다. 
    
    public class MyTaxi extends Taxi {
    	public void changeGrear(int gear) {
    		System.out.println(" 기어를 " +gear+" 변경후 고정한다");
    		currentGear = gear;
    	}
    
    	public static void main(String[] args) {
    		MyTaxi taxi = new MyTaxi();
    		taxi.name = "24바 3982";
    		taxi.currentGear = 1;
    		taxi.fare = 6200;
    		taxi.passenger = 2;
    		taxi.changeGrear(2);
    		taxi.get_CurrentState();
    	}
    }

     

    // 추상화 (abstract)
    
    abstract class Car {
    
    	public void CurrentState () {
    		System.out.println(" 움직이고 있습니다.");
    	}
    }
    
    class Bus extends Car {
    	String color;
    	public void Color(String color) {
    		System.out.println("버스는 "+color+" 입니다.");
    	}
    }
    
    
    public class MyBus {
    	public static void main(String[] args) {
    		Bus bus = new Bus();
    
    		bus.Color("초록색");
    		bus.CurrentState();
    	}
    }

     

    // 캡슐화 (은닉 private)
    
    public class Car {
    	public String name;
    	private int currentSpeed;
    
    	public void start_Engine() {
    		System.out.println(name+"의 시동을 켠다.");
    		currentSpeed = 1;
    	}
    
    	private int CurrentSpeed() {
    		currentSpeed = currentSpeed * 10;
    		return currentSpeed;
    	}
    
    	public String get_CurrentSpeed() {
    		return name + "의 속도는 "+ CurrentSpeed();
    	}
    }

     

    # 구현모습

     

     

     


     

    자바란 이런것이구나..ㅎㅎ 신기하당

    앞으로 더 공부해야겠다!


     

    댓글

Designed by Tistory.