-
Java | OOP(객체 지향 프로그래밍) 개요 & MethodJAVA/JAVA 2020. 1. 20. 17:40
OOP (Object-Oriented Programming)
객체 지향 프로그래밍: Java는 대표적인 객체 지향 프로그래밍 언어이며,
객체를 기반으로 프로그래밍하는 것을 말함
쉽게 얘기하면 어떤 대상(객체)을 가지고 프로그래밍을 하는 것
OOP 4대 구성요소
- 캡슐화: 데이터를 캡슐화(정보 은닉)함으로써,
상황에 따라 프로그램 외부에서 접근 가능한 데이터 지정 가능 - 추상화: 객체의 기본적인 틀, 즉 뼈대만 미리 만들어놓을 수 있는 기능
객체의 공통점과 공통기능을 유추해서 클래스를 만들어내는 일련의 과정
↔ 구체화 : 클래스에 살을 붙여서 객체를 만드는 것 - 상속: 피상속 객체(부모 클래스)의 데이터 및 함수들을 상속 객체로 그대로 이어 받아 사용 가능
- 다형성: 객체가 다양한 형태로 표현될 수 있다는 개념으로,
추상화된 객체와 같이 "틀"을 가진 객체가 구체화된 객체로 표현가능하다는 뜻
Method
함수의 한 종류이며, 클래스 내부에서 클래스 기능을 구현할 때 사용
- 클래스의 기본 구성 요소
- 어떤 기능을 가진 최소한의 작업 단위
Method 작성 이유
- 복잡한 내용을 단순하게 따로 만들어서 관리(기능 분리)
기능이 나누어져 있으므로 코드를 효율적으로 작성할 수 있음 - 필요할 때마다 호출해서 사용 가능
코드를 반복적으로 작성해야하는 경우에 함수를 호출함으로써 불필요한 작업 제거 - 디버깅, 유지보수에 용이
Caller / Work Method
- Caller Method: 작업을 지시하는 메서드
- Work Method: 지시를 받아서 작업을 하는 메서드
작업한 내용을 return(반환)
※ Parameter(매개변수) : 콜러 메서드에서 워크 메서드로 지시한 작업 내용
※ Call : 어떤 함수를 실행하는 것을 Call 즉, '호출'한다고 함
매개변수 / 반환값 유형
- 매개변수 X 반환값 X : 단순하고 반복적인 기능을 수행할 때 사용
- 매개변수 O 반환값 X : 데이터를 입력받아서, 저장 / 계산 / 출력 실행
- 매개변수 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는 클래스의 기능을 구현하는 것이며, 함수이기 때문에 변수를 조작하거나 다른 기능들을 수행할 수 있습니다.
조금 더 심화된 내용은 수업을 따라가면서 차차 게시할 예정입니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | Object 개요 & 생성, 사용 (0) 2020.01.20 Java | Abstraction 추상화 & Class 개요 및 생성 (0) 2020.01.20 Java | 탈출문 Break, Continue (0) 2020.01.17 Java | 반복문_While, Do~While문 (0) 2020.01.17 Java | 반복문_중첩 For문 (0) 2020.01.17 - 캡슐화: 데이터를 캡슐화(정보 은닉)함으로써,