-개요
여러 부품을 모아 하나의 제품을 만들듯이 소프트웨어를 개발할 때, 여러 객체(부품)를 모아서 하나의 완성된 프로그램을 만드는 것을 객체지향 프로그래밍이라고 하며 영어로는 OOP(Object Oriented Programming)라고 한다.
- 객체
- 물리적으로 존재하거나 추상적으로 생각할 수 있는것들 중에서 자신의 속성을 가지며 식별 가능한 것을 의미
- 필드와 메소드로 구성된다
- 필드
- 값, 변수라고 볼 수 있다
- 메서드
- 객체의 동작을 나타낸다
- 예를 들어 사람이라는 객체가 있다고 가정한다
- 이 사람은 이름, 나이, 키, 몸무게, 성별 등의 여러 가지 속성을 가지고 있는데 이를 필드라고 한다
- 이 사람이 먹고, 자고, 일어나고, 움직이는 등 수없이 많은 행위들을 하는데 이를 메서드라고 한다.
- 이처럼 어떠한 사물, 사람 등을 객체로 생각해볼 수 있고 그 객체가 가지고 있는 속성 값들을 필드, 그 객체가 동작하는 모든 행위 들을 메서드라고 한다
- 객체의 상호작용
- 객체는 객체끼리 상호작용을 한다
- 사람이 리모컨으로 tv를 조작하는 것과 같은 개념이다
- 사람이라는 객체가 리모컨이라는 객체의 버튼을 누르면 리모컨은 tv로 전원을 키라는 동작을 전달한다.
- tv는 리모컨이 전달한 전원을 켜라 라는 행위를 받아 전원을 켜게 되는데
- 리모컨의 버튼이 눌러졌을 때 하는 행동, tv가 리모컨의 명령을 받았을 때 하는 행동들을 메서드 호출이라고 하며 이러한 행동들과 연관관계를 객체의 상호작용이라고 한다
- 객체와 클래스
- 객체
- 앞서 말한 현실의 모든 사람, 사물 그리고 가상의 어떠한 무언가도 객체가 될 수 있다
- 클래스
- 위의 객체를 만들기 위해서 설계도가 필요하다
- 물건으로 예를 들면 자동차의 경우 자동차의 설계도가 필요하다.
- 바퀴의 사이즈, 핸들, 각종 페달, 엔진 등 여러 가지 물건(필드)이 필요하고 자동차에서 어떠한 행위가 이루어졌을 때, 액셀을 밟는다던가 시동을 켠다거나 하는 행위(메서드)를 작성한 설계도가 필요할 것이다.
- 이러한 부분들을 클래스에 작성을 해주는 것이다.
- 자동차 클래스
- 필드 : 바퀴, 색상, 기어, 엔진, 페달....
- 메서드 : 시동이 걸린다. 와이퍼가 움직인다. 앞으로 간다. 멈춘다.
- 이렇게 클래스(설계도)를 작성할 수 있다
- 자동차 클래스
- 생성
- 클래스 파일 생성 시 주의사항
- 이름의 첫 글자는 꼭 대문자로 작성한다
- 첫 글자에는 숫자가 올 수 없다
- $, _ 외에 특수문자는 사용이 불가능하다
- 자바 예약어는 사용이 불가능하다
- 한글 사용이 가능하지만 일반적으로 사용되지 않고, 사용 시에 인코딩 오류가 발생할 수도 있다
- 기본적으로 변수의 선언 와 동일하다고 생각하면 된다
- 클래스 사용법
-
public class 클래스이름 { } - 위와 같이 생성한 클래스 파일에 작성을 해주면 된다
- 클래스 이름은 파일명과 같아야 한다.
- 앞에 붙은 public의 경우 접근제어자인데 후에 기술할 예정이다
- 일반적으로 한 개의 클래스파일에는 한개의 클래스만 정의를 하지만 2개 이상 정의도 가능하다.
- 클래스 내부에는 필드, 메서드, 생성자가 사용될 수 있다.
-
public class Car { //필드 Feild String color; int carNumber; // etc...... //메소드 Method public String moveFront() { return "전진 합니다."; } //생성자 Constructor Car() { String color = white; } } - 위와 같은 구조인데 안의 세부적인 내용과 객체, 클래스 등 앞서 기술한 내용들을 다음 포스팅에서 차근차근 다뤄보겠다.
- 클래스 파일 생성 시 주의사항
- 객체
'Back-end > JAVA' 카테고리의 다른 글
| 17. Class - Constructor(생성자) (0) | 2021.07.24 |
|---|---|
| 16. Class - Field(필드) (0) | 2021.06.23 |
| 14. 참조 타입(Reference Type) - Enumeration(열거타입) (0) | 2021.06.21 |
| 13. 참조 타입(Reference Type) - Array 심화 (0) | 2021.06.18 |
| 12. 참조 타입(Reference Type) - Array 기본 (0) | 2021.06.18 |