ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | OOP(객체 지향 프로그래밍) 개요 & Method
    JAVA/JAVA 2020. 1. 20. 17:40

    OOP (Object-Oriented Programming)

    객체 지향 프로그래밍: Java는 대표적인 객체 지향 프로그래밍 언어이며,
    객체를 기반으로 프로그래밍하는 것을 말함
    쉽게 얘기하면 어떤 대상(객체)을 가지고 프로그래밍을 하는 것


    OOP 4대 구성요소

    1. 캡슐화: 데이터를 캡슐화(정보 은닉)함으로써,
      상황에 따라 프로그램 외부에서 접근 가능한 데이터 지정 가능
    2. 추상화: 객체의 기본적인 틀, 즉 뼈대만 미리 만들어놓을 수 있는 기능
      객체의 공통점과 공통기능을 유추해서 클래스를 만들어내는 일련의 과정
      ↔ 구체화 : 클래스에 살을 붙여서 객체를 만드는 것
    3. 상속: 피상속 객체(부모 클래스)의 데이터 및 함수들을 상속 객체로 그대로 이어 받아 사용 가능
    4. 다형성: 객체가 다양한 형태로 표현될 수 있다는 개념으로,
      추상화된 객체와 같이 "틀"을 가진 객체가 구체화된 객체로 표현가능하다는 뜻

    Method

    함수의 한 종류이며, 클래스 내부에서 클래스 기능을 구현할 때 사용

    • 클래스의 기본 구성 요소
    • 어떤 기능을 가진 최소한의 작업 단위

    Method 작성 이유

    1. 복잡한 내용을 단순하게 따로 만들어서 관리(기능 분리)
      기능이 나누어져 있으므로 코드를 효율적으로 작성할 수 있음
    2. 필요할 때마다 호출해서 사용 가능
      코드를 반복적으로 작성해야하는 경우에 함수를 호출함으로써 불필요한 작업 제거
    3. 디버깅, 유지보수에 용이

    Caller / Work Method

    • Caller Method: 작업을 지시하는 메서드
    • Work Method: 지시를 받아서 작업을 하는 메서드
      작업한 내용을 return(반환)

    ※ Parameter(매개변수) : 콜러 메서드에서 워크 메서드로 지시한 작업 내용

    ※ Call : 어떤 함수를 실행하는 것을 Call 즉, '호출'한다고 함


    매개변수 / 반환값 유형

    1. 매개변수 X 반환값 X : 단순하고 반복적인 기능을 수행할 때 사용
    2. 매개변수 O 반환값 X : 데이터를 입력받아서, 저장 / 계산 / 출력 실행
    3. 매개변수 O 반환값 O : 웹프로그래밍시 주로 사용하는 유형, 계산 목적,
      메서드 내부의 데이터를 메서드 외부로 전달할 필요가 있을 때 사용

    return: 일반적으로 함수의 매개변수는 해당 함수 내에서만 사용 가능함
    함수 내부의 값을 외부로 전달하기 위해서는 return을 작성해야함


    Method 종류

    • main(): 모든 프로그램에서 오직 하나만 존재하는 메서드,
      Java프로그램은 main메서드로부터 시작되어 main메서드의 끝과 함께 종료됨
      프로그램의 실행을 목적으로 함
    • 사용자 정의 메서드: 프로그래머가 정의하여 사용하는 메서드,
      데이터 저장 목적으로 사용하며, 기본 자료형과 메서드를 조합해서 정의

    형식

    반환값 자료형 메서드명_카멜케이스(자료형 변수명,,,){
        변수 선언, 연산자, 제어문
            Java Code;
    }

    camelCase : 첫글자는 소문자로, 이어지는 단어의 첫글자는 대문자로 작성하는 양식,
    메서드, 변수의 이름은 카멜케이스로 작성해야 함


    void

    함수에서 반환하는 값이 없을 때는 반환값 자료형에 void를 작성함


    사용례

    public class MethodPractice {
        void add(int a, int b) {
             /* 반환값이 없기 때문에 void 사용
                매개변수로 정수 a, b를 받는 메서드 선언 */
            int result = a + b;
             // 입력받은 a와 b를 더해서 result 변수에 저장
            System.out.println(result);
             // result변수에 담긴 값을 출력
        }
        public static void main(String[] args) {
            /* class에서 정의되기만 한 Method는 그 자체로 실행될 수 없기 때문에
            	MethodPractice 클래스를 이용해서 mP 객체로 생성 */
            MethodPractice mP = new MethodPractice();
            mP.add(3, 5);    // 8
        }
    }

    사용례_매개변수 / 반환값 유형

    public class Rect {
    	int x;
    	int y;
    
    	// 매개변수 X, 반환값 X
    	void square1() {
    		System.out.println("사각형1 넓이: " + (x * y));
    	}
    
    	// 매개변수 O, 반환값 X
    	void square2(int a, int b) {
    		System.out.println("사각형2 넓이: " + (a * b));
    	}
    
    	// 매개변수 O, 반환값 O
    	int square3(int a, int b) {
    		return a * b;
    	}
    
    	public static void main(String[] args) {
    		// 메소드 사용을 위한 객체 생성
    		Rect rect = new Rect();
            
          		  // 객체 변수에 값 저장
    		rect.x = 10;
    		rect.y = 20;
            
    		rect.square1();
          		  // 사각형1 넓이: 200
            
    		rect.square2(15, 15);
         		  // 사각형2 넓이: 225
    
    		int square3 = rect.square3(11, 12);
    		System.out.println("사각형3 넓이: " + square3);
    		/* 사각형3 넓이: 132
    		 * 위의 두 줄의 코드를 다음과 같이 표현할 수 있음
    		 * System.out.println("사각형 넓이: " + rect.square3(11,12)); 
    		 */
    	}
    }

    객체 지향 프로그래밍의 특성과 Method에 대해 간단하게 살펴보았습니다.

    Method는 클래스의 기능을 구현하는 것이며, 함수이기 때문에 변수를 조작하거나 다른 기능들을 수행할 수 있습니다.

    조금 더 심화된 내용은 수업을 따라가면서 차차 게시할 예정입니다.

     

    댓글

Designed by Tistory.