티스토리 뷰

1. 이번 주 학습 내용 📖

Java에서 추상 클래스는 인스턴스 생성이 불가하다는 것을 배웠다.

그런데 다음과 같이 Animal 이라는 추상 클래스를 사용한 예시에서 왜 첫번째 코드는 불가한데 두번째 코드는 가능한 것인지 의문이 들었다.

Animal a = new Animal(); // 불가
Animal[] animal = new Animal[2]; // 가능

 

Q. 둘 다 Animal이라는 추상 클래스를 사용해 인스턴스를 생성하기 때문에 둘 다 불가해야 하는 것이 아닌가?

A. 두번째는 값이 없는 빈 배열을 생성하기 때문에 가능..

 

Q. 그렇다면 배열은 인스턴스가 아닌 것인가?

A. 배열은 인스턴스가 맞긴 한데..

 

Q. 그럼 두번째도 인스턴스 생성하는거니까 불가해야 하는 것이 아닌가?

A. 두번째는 값이 없는 빈 배열을 생성하기 때문에 가능..

 

이것이 계속 돌고 돌며 멘붕이 왔다.🤯🤯

 

결론은 인스턴스가 생성되는 것은 맞지만 Animal의 인스턴스는 아니라는 것이다.

추상 클래스는 인스턴스 생성이 불가능하지만 해당 추상 클래스를 참조하는 배열이나 참조 변수는 생성할 수 있다고 한다.

두번째 줄은 추상 클래스인 Animal를 참조하는 배열을 생성하는 것이다.

배열 자체는 인스턴스이므로 인스턴스가 생성되는 것이라고 말할 수 있지만, 'Animal의 인스턴스'를 생성한 게 아니다.

Animal 타입의 참조를 저장할 수 있는 공간, 빈 배열을 생성했을 뿐 초기화하지 않았기 때문에 Animal의 인스턴스를 직접적으로 생성한 것은 아닌 것이다.

이로써 궁금증 해결!!😀😀

 

목요일에는 객체지향 프로그램 구현 실습을 했다.

월별 입출금 내역 데이터가 들어있는 txt, csv 파일을 읽어와 데이터를 조회하고 export하여 jar 파일을 생성한 후 터미널에서 해당 프로그램을 돌려보는 실습이었다.

이를 기반으로 금요일에는 2명씩 짝을 지어 서로의 요구사항을 전달하고 이를 구현하는 페어프로그래밍을 진행했다.

먼저 클라이언트가 되어 도서관 관리 시스템을 구현하는 요구사항을 전달했다.

반대로 클라이언트로부터는 따릉이와 킥보드 데이터를 조회하여 연도별 이용 회원 수, 총 수익금과 블랙리스트를 조회해달란 요구사항을 받았다.

초반에 걱정했던 것과는 달리 나름 재밌었다.😃

또한 상대방이 이해하기 쉽게 요구사항을 작성하는 것이 은근 어려운 일임을 느꼈다.

 

 

 

2. 기술 세미나 우승 🏆

화요일에 진행한 프론트엔드 기술세미나에서 우승팀으로 뽑혔다.😀

상으로 1층에 있는 카페에서 사용가능한 만원권을 받았다.

사실 그냥 평소에 실습 발표하던 것처럼 편안한 분위기로 생각하고 왔는데 생각보다 분위기가 매우 엄숙했고 내빈분들도 더 많이 오셨다.

주어진 시간 안에 발표를 마쳐야해서 안그래도 약간 긴장된 상태였는데 여러 대의 카메라에 녹음기까지 있는 걸 보며 더 긴장을 많이해 뚝딱거리며 발표했다.😅

연습 때보다 발표를 못한 것 같아 아쉬움이 남았다.

하지만 여러 질문에 대한 대답도 잘 넘어갔고 내가 맡았던 부분에서 새롭게 알게된 것이 있다던 멘토님과 강사님의 피드백도 있어 왠지 예감이 좋았는데 감사하게도 우승팀으로 뽑아주셨다. 🏆

으쌰으쌰하며 같이 열심히 준비해준 팀원들에게 고마웠다.

팀원들이 좋았어서 다음 백엔드 세미나때도 같이 하고 싶었는데 백엔드 세미나는 개별 발표라는..😫

다음 세미나도 잘 준비해서 좋은 결과가 있었으면 좋겠다.😉

 

 

 

3. 알고리즘 공부 💻

주 1회 수업이 끝나고 알고리즘 스터디를 진행하고 있다.

지난 주에는 슬라이딩 윈도우에 대해 새롭게 알게 되었고 이번 주는 dp에 대해 좀 더 알게 되어 좋았다.

백준 티어도 브론즈였는데 실버로 올라갔다.😀

아직 많이 부족하지만 같이 스터디하는 팀원들이 다 실력이 좋아 많이 배우고 있다.

매일 백준 잔디 채우기 챌린지를 시작했다.

하루도 안빠지고 할 수 있을 지 사실 자신은 없다.😅

하지만 꾸준함이 곧 우수함.. 꾸준히 하다보면 언젠가 우수한 알고리즘 실력을 가지고 코테에 통과하는 날이 올테니 일단 도전해보려 한다. 파이팅!!!! 💪💪

 

https://yuniverse-b.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EA%BF%80-%EC%95%84%EB%A5%B4%EB%B0%94%EC%9D%B4%ED%8A%B8-%EB%B8%94%EB%A1%9C%EA%B7%B8-DNA-%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8-javascript

 

[백준] 꿀 아르바이트, 블로그, DNA 비밀번호 (javascript)

https://www.acmicpc.net/problem/12847 12847번: 꿀 아르바이트 월세를 내기 바로 전 날 까지 인 n (1 ≤ n ≤ 100,000) 일과 일을 할 수 있는 날 m (0 ≤ m ≤ n) 일이 주어진다. 그 다음 줄 에는 1일부터 n일 까지 일

yuniverse-b.tistory.com

https://yuniverse-b.tistory.com/entry/%EB%B0%B1%EC%A4%80-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98%EC%88%98-2-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98%EC%88%98-3-javascript

 

[백준] 피보나치수 2, 피보나치수 3, 파도반 수열 (javascript)

https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이

yuniverse-b.tistory.com

 

댓글