-
[자바의 정석] ch6-1 ~ ch6-10 객체지향 언어 정리Programming Language/Java 2021. 7. 13. 23:50
학원을 다니지만 진도가 너무 빨라서 별도로 유튜브 보며 정리중이다.
(마침 학원에서 나눠준 책이 Java의 정석 기초편이라 남궁성님의 유튜브를 보는중..!)
Java에서 가장 중요한 개념인 객체지향 부분은 두 번째로 듣고 있는데, 남궁성님이 말씀하신대로 정리를 하는 것이 학습에 도움될 것 같아 블로그에 정리해보려고 한다.
자바의 정석 기초편에 60% 정도의 내용이 담겨있고 3판에 100%(실전)의 내용이 담겨있다고 한다.
강사님은 기초편 + 3판까지 보고 웹이나 모바일 중 관심있는 부분의 실습을 진행할 것을 추천하심..
============================================================================
ch6-1 객체지향 언어
OOP(Object Oriented Programming)
객체지향 언어: 80년대 초 소프트웨어의 위기에 빠르게 대응하지 못하였음 -> 해결책: 객체지향 언어 도입
객체지향 언어 = 프로그래밍 언어 + 객체지향개념(규칙)
핵심개념: 1)캡슐화, 2)상속, 3)추상화, 4)다형성
ch6-2 클래스와 객체
클래스: 객체를 정의해 놓은 것 (TV 설계도 혹은 붕어빵 기계)
클래스의 용도: 객체를 생성할 때 사용
객체: 실제로 존재하는 것. 사물 또는 개념 (TV 혹은 붕어빵)
객체의 용도: 객체가 가지고 있는 기능과 속성에 따라 다름
ch6-3 객체의 구성요소 - 속성과 기능
하드웨어의 소프트웨어화(프로그램화=코드)가 진행 (오디오플레이어가 컴퓨터 내부로 들어간 것 처럼)
예를들어 TV 를 소프트웨어로 만들 경우 아래와 같은 속성과 기능이 필요하다.
객체 = 속성(변수) + 기능(메서드)
속성: 크기, 길이, 높이, 색상, 볼륨, 채널 등
기능: 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경 등
1234567891011121314151617181920Class Tv{// Tv 클래스(Tv 설계도)//qString color;boolean power;int channerl;//메서드void power() {power = !power;}void channelUp() {channel++;}void channelDown() {channel--;}}cs ch6-4 객체와 인스턴스
객체: 모든 인스턴스를 대표하는 일반적 용어
인스턴스: 특정 클래스로부터 생성된 객체(예: Tv인스턴스)
-> 뉘앙스 차이가 있으나 객체와 인스턴스는 크게보면 같다고 생각하면됨
인스턴스화(제품생성)
클래스(설계도) -------------------------------> 인스턴스,객체(제품)
<-------------------------------------------------------------정리------------------------------------------------------------->
Q. 클래스(설계도)가 왜 필요한가?
A. 객체(제품)를 생성하기 위해
Q. 객체(제품)가 왜 필요한가?
A. 객체(제품)를 사용하기 위해
Q. 객체(제품)를 사용한다는 것은?
A. 객체(제품)가 가진 속성(변수)과 기능(메서드)을 사용하려고
ch6-5 하나의 소스파일에 여러 클래스 작성
1234567891011Hello2.javapublic class Hello2 {}public class Hello3 {}cs *public class가 있는 경우, 소스파일의 이름은 반드시 public class의 이름과 일치해야함
*public class가 없는 경우, 소스파일의 이름은 java 파일의 클래스명 중 원하는 것으로 사용 가능
*하나의 소스파일에는 하나의 public class만 허용
*하나의 소스파일에는 하나의 클래스만 작성하는 것이 바람직
ch6-6 객체의 생성과 사용
1.객체 생성 방법
클래스명 변수명; //클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t; //Tv클래스 타입의 참조변수 t를 선언
t = new Tv(); //Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
-> t라는 참조변수(리모콘) 만들고 new Tv()라는 객체도 만들고 마지막으로 = 으로 리모콘과 Tv 연결
한 문장으로 만들면 Tv t = new Tv();
2. 객체의 사용
t.Channel = 7; //Tv인스턴스의 멤버변수 channel 의 값을 7로 한다. (t라는 리모콘으로 채널 조정)
t.ChannelDown(); //Tv인스턴스의 메서드 channelDown()을 호출한다.
클래스 작성 -> 객체 생성 -> 객체 사용
*Tv와 Tv리모콘의 타입이 일치해야함 (에어컨 리모콘으로 Tv를 켤 수는 없으니까^^)
ch6-7 객체의 생성과 사용 - 예제
*하나의 인스턴스를 여러 개의 참조변수가 가리키는 경우(가능)
*여러 인스턴스를 하나의 참조변수가 가리키는 경우(불가능)
*가비지 컬렉터: 불필요한 메모리 낭비를 방지하기 위해 사용하지 않는 메모리 정리(제거)해줌
ch6-8 객체 배열
객체 배열 == 참조변수 배열
Tv tv1, tv,2, tv3; -> Tv[] tvArr = new Tv[3]; (Tv타입 참조변수 * 3개라는 뜻)
ch6-9 클래스의 정의(1)
클래스
1)설계도
2)데이터+함수
3)사용자정의타입
클래스 == 데이터 + 함수
변수 -> 배열(같은 타입만) -> 구조체(다른타입도 가능) -> 클래스(서로 관련 있는 데이터, 함수 묶어놓음)
1)변수: 하나의 데이터를 저장할 수 있는 공간
2)배열: 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
3)구조체: 서로 관련된 여러 데이터(종료 관계X)를 하나로 저장할 수 있는 공간
4)클래스: 데이터와 함수의 결합(구조체 + 함수)
ch6-10 클래스의 정의(2)
사용자 정의 타입: 원하는 타입을 직접 만들 수 있음
class Time{
int hour;
int minute;
int second;
}
Time t = new Time();
int hour = 12; t.hour = 12;
int minute = 34; -> t.minute = 34;
int second = 56; t.second = 56;
============================================================================
유튜브 링크(ch6-1): https://www.youtube.com/watch?v=CXuA31XcBZ0&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=50
'Programming Language > Java' 카테고리의 다른 글
[자바의 정석] ch6-22 ~ ch6-29 객체지향 개념 정리 (호출스택, static 메서드) (0) 2021.07.16 [자바의 정석] ch6-11 ~ ch6-21 객체지향 개념 정리 (선언위치, 변수종류, 메서드, return문) (0) 2021.07.14 [Java] 자바의 자료형 (식별자, 자료형, 래퍼클래스, 형변환) (0) 2021.05.27 [JAVA] JavaFX 위한 Scene Builder 설치과정 (0) 2021.05.26 [Java] Error: java.lang.UnsupportedClassVersionError (0) 2021.05.26