23년 5월 24일 수요일
오늘의 목표 : 객체지향언어 이해하기
오늘 공부한 내용🤓
오늘은 Java의 객체지향에 대해서 공부했다.
한번만 공부하고 넘어가기에는 아직 정확하게 이해하기에는 조금 어려운 개념이다.
공부한 내용을 바탕으로 조금 정리해볼까 한다.
---------------------------------------------------------------------------------------------------
객체지향언어
· 정의 : 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태
· 특징
① 코드의 재사용성이 높다
ㄴ 새로운 코드를 작성할 때 기존의 코드를 이용해 쉽게 작성가능
② 코드의 관리가 용이하다.
ㄴ 코드 간의 관계를 이용해 적은 노력으로 쉽게 코드를 변경 가능
③ 신뢰성이 높은 프로그래밍 가능
ㄴ 제어자와 메서드를 이용해 데이터를 보호하고 올바른 값을 유지하고 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지한다.
클래스와 객체
클래스 : 객체를 정의하고 생성하는 것 (객체의 모든 속성과 기능이 정의되어 있음)
객체 : 실제로 존재하는, 유무형 사물 또는 개념으로 기능과 속성으로 뉜다.
: 객체를 사용한다는 것은 객체가 가지고 있는 기능과 속성을 사용한다는 뜻이다.
객체-기능 : 메서드 Method
객체-속성 : 변수 Variable(멤버변수)
=> 기능+속성 = 객체의 멤버(member, 구성요소)로 묶임
클래스의 인스턴스화
인스턴스화 : 클래스로부터 객체를 만드는 과정
인스턴스 : 어떤 클래스로부터 만들어진 객체(그 클래스의 인스턴스)
객체=인스턴스 같은 개념이지만, 객체는 모든 인스턴스를 대표하는 기본적인 언어고, 인스턴스는 특정 클래스로부터 생성된 객체를 뜻한다.
인스턴스(객체)의 생성과 사용방법
[생성]
클래스명 참조변수명; //객체를 다루기 위한 참조변수 선언
참조변수명 = new 클래스명(); // 객체 생성 후, 생성된 객체의 주소를 참조변수에 저장
참조변수 : 메모리의 주소값을 변수에 저장함
new :클래스의 인스턴스가 메모리 빈 공간에 생성
멤버변수는 각 자료형의 기본값으로 초기화가 되는데, 인스턴스의 멤버변수(속성)를 사용하려면 '참조변수. 멤버변수'로 사용하면 된다.
인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스 타입과 일치해야 하고
하나의 인스턴스를 여러 개의 참조변수가 가리키는 경우는 가능하나, 그 반대는 불가능하다.
객체배열=참조변수배열
객체 배열 안에 객체의 주소가 저장된다. (참조변수를 사용하니까!)
즉, 참조변수들을 하나로 묶은 참조변수배열과 같은 개념이다.
배열은 같은 타입의 여러 데이터를 저장할 수 있는 공간인데
타입에 관계없이 서로 관련된 데이터들을 저장할 수 있는 구조체라는 공간으로 발전했다.이렇게 서로 관련 있는 데이터와 함수의 결합을 클래스라고 한다. (프로그래밍적인 관점에서의 클래스 정의)
클래스는 사용자 정의 타입도 존재하는데, 프로그래머가 직접 새로운 타입을 정의하는 것을 뜻한다.필요에 따라 서로 관련된 값을 묶어 하나의 타입으로 정의한 후 사용한다.
어려웠던 내용😵💫
객체지향이라는 정의도 아직은 아리송하다.
이론으로만 이해하려고 하다보니, 인스턴스나 클래스 등 원래 알던 내용들도 헷갈린다.
궁금&부족한 내용❓
느낀 점💡
객체지향 파트는 꾸준히 반복해서 읽고 이해하려고 노력해야겠다.
처음 이론만 접하고 이해할 수 없는건 당연하다고 생각한다. 다양한 예제, 프로젝트를 통해서 빨리 익힐 수 있도록 노력해야겠다.
'📌TIL [Today I Learn]' 카테고리의 다른 글
[TIL] 23년 5월 31일 수요일 (0) | 2023.05.31 |
---|---|
[TIL] 23년 5월 30일 화요일 (0) | 2023.05.30 |
[TIL] 23년 5월 25일 목요일 (0) | 2023.05.25 |
[TIL] 23년 5월 23일 화요일 (0) | 2023.05.23 |
[TIL] 23년 5월 22일 월요일 (0) | 2023.05.22 |