프로그래밍 공부/JAVA

JAVA - 객체지향 프로그래밍 (OOP)

뚜뚜:) 2020. 10. 12. 18:17

객체지향 프로그래밍 (Object Oriented Prigramming)

- 프로그래밍을 단순히 코드의 연속으로 보는것

- 코드의 재사용이 높고 유지보수가 용이하다 ( 메서드를 사용하여 반복적으로 사용하는것이 효율적)

=> 만들고자 하는 완성품인 객체를 모델링하고,

      집합관계에 있는 부품객체와 사용관계에 있는 객체를 하나씩 설계 후 조립하는 방식

 

1. 객체 

-물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중 자신의 속성을 가지고 있고, 다른것고 식별 가능한것
-속성(필드)과 동작(메소드)로 구성되어있다,

 

2. 객체의 상호작용

- 상호작용 수단 : 메소드

- 다른 객체의 기능을 이용 : 메소드 호출 (리턴값 = 객체 . 메소드이름(매개값1))

 리턴값 : 실행하고나서 호출한 곳으로 값을 돌려줌

 매개값 : 메소드를 실행하기 위한 데이터 

 

3. 객체지향 프로그래밍의 특징

캡슐화, 상속화, 다형성 (나중에 따로 자세히 설명)

- 캡슐화 : 객체의 필드, 메소드를 하나로 묶어 실제 구현내용을 감추는 것

-> 외부의 잘못된 사용으로 객체의 손상을 막는다 (접근제한자 사용)

- 상속 : 부모-> 자식에게 물려주는것

- 다형성 : 같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질, 타입변환

 

public class SampleClass {

	public static void main(String[] args) {
		//<-메서드
		
			int local=10; // 지역변수 : { } 메서드안에서만 사용하는 변수
			
			}

			
			int field; // 전역변수 : 클래스 전체 영역에서 사용하는 변수
			//초기화하지 않아도 기본값으로 초기화된다.
			
			boolean bool = false;
			String str = null;
		
			/*
			 * - 메서드 : 변수를 가지고 할 일
			 * - 선언방법 : 리턴타입 메서드명 (파라미터) { }
			 * - 파라미터 (매개변수) : 실행에 필요한 정보
			 * - 리턴타입 (반환타입) : 실행 후 돌려줘야하는 결과물
			 * 
			 */
			
		void method1(){
		//return이 없어 void를 적어줌			
			System.out.println("파라미터도 리턴타입도 없는 메서드 ");
		}
		
		// String 말고 원하는 값의 타입을 적을 수 있음
		
		String method2(int parameter){	
			return parameter + "  를 받아 명령을 수행하고 결과물을 리턴하는 메서드";
		 //return - 예약어 : 메서드 종료의 역할도 가능  / 어떤 값이나 객체
			//한번만 넣을 수 있음
			
		}
		
		
		// void : 타입이 없다 라는 의미 
//객체 생성
		SampleClass sc = new SampleClass();	
		
		System.out.println(sc.field);	
		
		sc.method1();	// SampleClass 에 있던 method1 내용호출
		
		String returnValue = sc.method2(5);
		System.out.println(returnValue);
		
		System.out.println(sc.method2(10)); //결과값이 동일하게 출력됨