객체지향 프로그래밍이란?
실제 사물의 속성과 기능을 분석한 후
이것을 프로그래밍의 변수와 함수로 정의함으로써
실제 세계를 최대한 컴퓨터 프로그래밍에 반영하고자 한 시도라고 볼 수 있다.
장점
쉽게 말하자면 코드 간의 관계 설정을 통해서 적은 노력으로 쉽게 코드를 변경할 수 있게 하는 것이다.
-> 결과적으로 프로그램 개발 및 유지 보수에 드는 비용과 시간을 획기적으로 줄일 수 있고,
객체를 통해서 데이터를 관리하여 데이터를 손실 없이 관리하기에 용이하다.
-> 더 쉽게 말하면 칼퇴 가능 ^^!! 헤헷
우선 클래스를 만들기 위해 필요한 필드(Field)와 메서드(Method), 생성자가 필요하게되는데
그중 이번 포스팅에서는 클래스, 객체내용을 정리해 볼게용! :)
지금부터 나오는 내용은 너무나도 기초적인 내용이라 필수적으로 알아야 합니다!!
(#개발자 기초용어 로 접근하신분들 ↓ 개념 꽉 잡으세용!)
*물론 나 포함
미니어(필자 민이임) ↓ 최대한 읽기 쉽게 적어봤슴둥
클래스(Class)란?
객체를 정의한 설계도 또는 틀(frame)이라고 정의할 수 있다.
클래스는 객체를 생성하는데 사용된다.
객체(Instance)란?
클래스에 정의되고 설계된 내용을 그대로 생성함.
클래스는 객체 자체가 아니라 단지 객체를 생성하는데 사용되는 하나의 틀(frame)임.
따라서 클래스는 객체 그 자체가 될 수 없다.
ex) 건축 설계도(클래스)가 건축물(객체)가 될 수 없음.
클래스 (붕어빵 틀)
객체 (붕어빵)
클래스를 통해 생성된 객체를 해당 클래스의 인스턴스(instance)라고 부르게 된다.
// 또한 클래스로부터 객체를 만드는 과정을 인스턴스화(instantiate)라고 지칭한다.
-> 붕어빵기계에서 붕어빵 만드는 과정
객체와 인스턴스는 같은 말이라 의미 차이는 없다.
하지만,
객체는 : 모든 인스턴스를 포괄하는 넓은 의미를 갖고,
인스턴스는 : 객체가 어떤 클래스로부터 생성된 것인지 강조한다.
이제 내용을 알았으니 코드를 알아봐야겠쥬?
클래스 정의방법:
class 클래스명 { // 클래스 정의
-- 정보 -> 필드 -> 변수 --
-- 메서드 --
}
클래스의 구성요소로는 : 필드, 메서드, 생성자, 이너클래스가 있다.
public class mini_Class { // 클래스 이름이 mini_class이다.
int a = 18; // (1)필드를 나타낸다.
void printX() {...} // (2) 메서드
mini_Class {...} // (3) 생성자
class mini_Class2 {...} // (4)이너 클래스
}
필드: 클래스의 속성의 변수이다. ex) 핸드폰이면 핸드폰 모델명, 카메라 수, 색상 등이 포함된다. (속성)
메서드: 클래스의 기능을 나타낸다. ex) 핸드폰이면 전화하기, 인터넷접속 하기, 문자 전송하기 등이다. (기능)
생성자: 클래스의 객체를 생성하는 역할을 의미한다.
이너 클래스: 클래스 내부의 클래스를 의미한다.
보통 생성자를 제외하고 // 필드, 메서드, 이너 클래스를 멤버라고 부른다.
객체 생성방법:
class PhoneTest {
public static void main(String[] args) {
Phone iphone = new Phone(); // Phone 클래스를 기반으로 생성된 iphone 인스턴스
Phone samsung = new Phone(); // Phone 클래스를 기반으로 생성된 samsung 인스턴스
}
ex) Phone iphone = new Phone(); //
와 같이 실제 객체를 생성할 수 있다.
즉
클래스명 참조_변수명 = new 생성자(); 이다.
** deep point : 참조 변수명 위치에 new 생성자의 메서드 주소값을 저장하게 되고
그 주소값으로 찾아가면 클래스 영역에 정의된 메서드를 찾아 사용할 수 있게 된다.
즉 생성자 Phone(); 인스턴스는 힙 메모리 영역에 들어가며 객체 내부에는
클래스의 멤버들이 위치하게 되고, 메서드의 구현 코드 위치는 클래스 영역에 저장되고
객체 안에서 그 위치를 가리키고 있다.
객체의 활용
객체 생성 후에는
포인트 연산자인 ( . ) 을 통해서 해당 객체의 멤버에 접근이 가능하다.
참조 변수명. 필드명 // 필드값 불러오기 방법
참보 변수명.메서드명() // 메서드 호출 방법 이다.
아주 기본적인 클래스와 객체에 대해서 알아보았다.
중요개념이니 확실하게 알아가도록하자!
정리 :
1. Person mini = new Person();
객체는 참조타입이다.
2. 객체는 일반적 개념. 인스턴스는 어떤 클래스로부터 파생됐나 강조함.
그러면 저는 20000!
클래스 객체 활용해서 코드 복습 하러 가볼게욥~~! ㅎㅎ
'JAVA' 카테고리의 다른 글
Tree 구조 (트리 구조) 자료구조 / 트리 순회 방법 세가지 전위, 중위, 후위 순회 알고리즘 문제 (0) | 2023.01.18 |
---|---|
JSON 직렬화, 역직렬화 Convert Java Object to JSON (0) | 2023.01.13 |
StringBuffer 와 String 의 차이점? (0) | 2022.12.26 |
Java 문자열 뒤집기 StringBuilder.reverse() (Reverse Stirng ) (0) | 2022.12.26 |
StringBuilder / StringBuffer 클래스 및 자주 쓰이는 매서드 정리 (0) | 2022.12.21 |
댓글