You are on page 1of 21

2023

EOS BASIC
Week 6
(5) OOP1 (Class, Constructor), 변수의 종류
Index
1. 과제 정답
2. 웰-컴 복습
3. 클래스
4. 클래스 / 객체 / 인스턴스
5. 생성자
6. 실습
7. 변수 종류 (지역, 인스턴스, 클래스)
8. 과제 공지
2023 EOS BASIC
과제 정답 (improved fibonacci)
2023 EOS BASIC
과제 정답 (merge sort)
2023 EOS BASIC
과제 정답 (merge sort)
2023 EOS BASIC
과제 정답 (merge sort)
2023 EOS BASIC
과제 정답 (도서 관리 프로그램)
2023 EOS BASIC
과제 정답 (도서 관리 프로그램)
2023 EOS BASIC
과제 정답 (도서 관리 프로그램)
2023 EOS BASIC
앞으로 우리가 배울 것들!

1. 입출력,
2. 조건문 3. 반복문
자료형

4. 배열 5. 함수 6. 클래스

7. 상속 8. 추상화 9. 캡슐화

10. 다형성
2023 EOS BASIC
객체지향?
프로그래밍에서 프로그래밍에서 필요한 데이터를 추상화
시켜 상태(변수)와 행위(메소드)를 가진 객체(클래스 쯤)를
만들고 그 객체를 간의 유기적인 상호작용 (상속)을 통해
로직(하나의 프로그램)을 구성하 는 프로그래밍 방법

장점 단점
1. 코드 재사용에 용이 1. 처리속도 느림
2. 유지보수가 쉽다 2. 용량이 커짐
3. 대형 프로젝트에 좋다 3. 초기 설계시에 노력이 많이 듬

KEY WORD
1. 클래스 + 인스턴스 2. 추상화 3. 캡슐화 4. 상속 5. 다형성
2023 EOS BASIC
클래스
클래스는 변수(필드)와 함수(메소드)를
모아둔 집합체
2023 EOS BASIC
클래스 / 객체 / 인스턴스
- 클래스(Class)는 객체를 만들기 위한 틀(설계도)
Class

Instance화 Instance화

- 객체(Object)는 사물, 생물, 무형의 모든 것들. 우리가


Object(객체) Object(객체)
프로그래밍을 통해 만들고자 하는 가장 작은 단위의 주체
(Class의 Instance) (Class의 Instance)

- 인스턴스(Instance)는 설계도(Class)를 바탕으로


소프트웨어로 구현한 실체 (메모리에 할당되어있음)
2023 EOS BASIC
생성자
생성자는 클래스가 인스턴스화 될때 어떤 인자(parameter)를 가지고
초기화 할 것인지를 결정함.

Class는 default로 아무런 인자를 가지지 않는 생성자를 가짐


-> 왼쪽의 코드에서는 Student()
-> 메소드(함수)와 마찬가지로 소괄호 안에 아무것도 없는
(인자가 없는) 형태임
2023 EOS BASIC
생성자
인자를 받는 새로운 생성자를 만들 수 있다.
-> 왼쪽의 예시에서는 name과 id를 인자로 받는 새로운
Student( String, int ) 생성자를 만들었다.
-> 새 로 운 생 성 자 를 만 들 면 기 존 의 default 생 성 자 인
Student()는 사용할 수 없다.
-> 생성자를 만들면 인스턴스화 되는 순간에 바로 데이터를
저장한 새로운 인스턴스를 만들 수 있다.

생성자의 정의 규칙
1. 클래스의 이름과 생성자의 이름은 같아야 한다.
2. 반환형을 정의하지 않는다. (void 도없다)
3. this는 현재 인스턴스 자신을 가리킨다.
- 왼쪽 예시에서 this.name은 Student라는 클래스에서 파생된
인스턴스의 name값이고, 뒤에 name은 인스턴스가 생성될때
외부에서 입력해준 값이다. this로 이 둘을 구분한다.
2023 EOS BASIC
실습
무려 6년째 우려먹고 있는 예제…!(인건 비밀)
2023 EOS BASIC
변수의 종류
변수 종류 선언 위치 생성 시기 비고

인스턴스 생성 없이도
클래스가 메모리에
클래스 변수 클래스만 있으면 사용
올라갈 때
클래스 가능

인스턴스 변수 인스턴스가 생성될 때

‘{’ 에서 메모리에
변수 선언문이
지역 변수 메소드, 생성자 등 생성되고 ‘}’에서
실행되었을 때
사라진다.
2023 EOS BASIC
변수의 종류

1. Main 클래스 생성
2. Student 클래스 생성
- numOfStudent 생성
- detailInfoOfStudents() 메소드s 생성
3. geunwon 인스턴스 생성
- age 생성
- Student 생성자 동작
- study() 메소드 생성
- - time 생성
2023 EOS BASIC
과제 과제 ~
1. 지난 과제 정답 보고 다시 이해하기

1. 저번 과제 어려웠던거 인정!
2. 이번에는 과제 복습 겸 지금까지 한 수업 복습해 보아요
3. 다음 과제에 또 특별 과제가 나갈 예정입니당..! (저번만큼 많지 않아요~)
4. 지금까지 배운 내용 + 다음 수업에 대해 확실히 이해가 있어야 풀 수 있는 과제입니다.

Due date : 2023. 05. 14 (일요일 23:59:59)


벌금 : 3,000
2023 EOS BASIC
과제 과제 ~
2. 개발자 연봉 구하기

- Developer 클래스를 구현한다.


- numOfDeveloper라고 하는 클래스 변수로 인원 확인
- 한명이 입사할때마다 입사! 메시지 뜨고 개발자가
한명씩 늘어난다.

- 연봉을 계산해 salary에 저장.


3년 미만 (4500 + (100 * 연차))
7년 미만 (6000 + (100 * 연차))
7년 이상 (9000 + (100 * 연차))

Due date : 2023. 05. 14 (일요일 23:59:59)


벌금 : 3,000
The end.
Week 6
(5) OOP1 (Class, Constructor), 변수의 종류

You might also like