TIL
[22.07.07] 코드스테이츠 day11
Min_dev
2022. 7. 7. 23:48
반응형
매일 데일리 회고 작성하기
계획 단계 - 정규학습시간 전 (10분)
오늘 나의 학습 목표는 무엇인가요?
클래스가 뭔지... 객체가 뭔지....
어떤방식으로 쓰이는지 이해하고 직접 인텔리제이 코드를 통해 구현해보기.
오늘 학습할 내용 중에 이미 알고 있는 내용은 무엇인가요?
클래스란 틀, 객체는 틀로 찍어낸 것이라고 배웠다.
클래스에 객체의 속성, 기능들을 구현하고, 그 클래스를 바탕으로 객체를 만들어난다.
클래스를 바탕으로 객체를 여러개 만들어낼 수 있으며 그 객체를 인스턴스라고 부른다.
객체의 속성이라는 것은 예를들어 사람으로 표현하자면
사람의 이름, 나이, 키, 몸무게 등이 되고, 객체를 만들어내면 객체마다 이름, 나이, 키, 몸무게의 속성값을 부여할 수 있다.
기능의 예를 들자면
사람이 밥을 먹는다, 달리기를 한다, 잠을 잔다 등으로 표현할 수 있으며, 이렇게 만들어낸 기능들은 객체를 만들어, 객체들로 구현시킬 수 있다.
학습을 시작하기 전 이해하고 있는 내용이 정확하게 이해하고 있는건지 모르겠지만, 잘못 이해하고 있다면 학습을 진행하면서 수정해야겠다.
점검 및 평가 단계 - 정규학습시간 후 (30분)
오늘 학습 내용 중 새롭게 배운 내용은 무엇인가요?
- static 키워드
- static 변수와 instance 변수
- 메서드 오버로딩
오늘 새롭게 학습한 내용을 다른 사람에게 설명할 수 있나요?
static 키워드는 객체의 생성없이 멤버의 사용을 가능하게 해준다.
보통 필드, 메서드는 인스턴스를 생성하고, 참조타입을 통해 포인트 연산자 .을 불러서 사용하지만, static 키워드를 사용해서 멤버를 만들면 클래스명.멤버 로 사용가능하게 만들어준다.
static 변수란 쉽게 설명하자면 객체간의 공유가 가능한 변수를 말한다.
일반 멤버 변수는 인스턴스를 생성하면 해당 인스턴스는 고유한 변수를 가진다.
예를 들어 age란 변수가 있고 student1과 student2의 인스턴스가 있다고 가정했을때
student1과 student2는 고유한 age 변수를 가진다.
student1.age = 20, student2.age = 30 으로 선언하고 print를 찍어보면 각각 20, 30으로 출력이 될 것이다.
그러나 static age; 로 클래스변수를 선언한 후 위와 같이 값을 할당한다면, 두 인스턴스는 age 변수를 공유해서 사용하므로 나중에 할당된 30의 값을 동일하게 가진다.
메서드 오버로딩의 조건은
1) 메서드명을 동일하게 할것.
2) 메서드의 멤버변수의 타입 혹은 갯수를 다르게 할것.
메서드 오버로딩의 장점은 하나의 메서드로 여러 경우의 수를 해결할 수 있다.
오늘 학습한 내용 중 아직 이해되지 않은 불확실한 내용은 무엇인가요?
이해되지 않은, 불확실한 내용을 보완하기 위해서 나는 무엇을 할 수 있을까요?
- 나의 오늘 학습 만족도는 몇 점인가요?
★★★★★
반응형