일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- @NoArgsConstructor
- 에러
- Python
- 기본생성자
- DTO
- html tag
- Codeup
- @builder
- java
- 브랜치
- @AllArgsConstructor
- 알고리즘
- CRUD
- SQL
- 깃허브
- HTML
- git
- HashSet
- lv1
- 상속
- stringbuffer
- 파이썬
- 코드업
- 부트캠프
- 프로그래머스
- entity
- github
- 자바
- 부스트코스
- 캡슐화
- Today
- Total
목록기본생성자 (2)
잉?
키오스크 프로그램을 만들면서 생성자에 의문점을 가지게 되었다. 내가 필요한 메서드를 사용하기 위해서는 그 메서드가 위치한 클래스의 기본생성자를 객체로 만들어서 다 불러오면 되겠구나 싶어 뭣도 모르고 사용했다. 그러다 스택오버플로우 에러도 나고, 코드도 더럽고, 비효율적이다 싶어서 이 생성자가 무엇이고, 어떻게 써야 잘 썼다 소문이 날까 해서 찾아보게 되었다. 생성자란? 자신이 원하는 값으로 변수를 초기화 시킬 수 있는 메서드이다. Car() {...} // 클래스이름(){...} 매개변수가 없는 생성자 Car(int num, String name) {...} // 클래스이름(자료형 매개변수){...} 매개변수가 있는 생성자 기본생성자란? 모든 클래스에는 하나의 생성자가 정의되어야 하는데 우리가 만들지 않..
키오스크 주문 프로그램을 만드는 과정에 스택오버플로우 에러를 해결했다. 스택오버플로우는 지정한 메모리 사이즈에 비해 훨씬 많은 메모리를 사용하게 되어 발생하는 에러다. 즉, 내가 매고 있는 가방에 책도 넣고, 노트북도 넣고, 의자도 넣고, 책상도 넣다 찢어져 버린 상태이다. 에러들을 살펴보자. 에러들을 하나씩 눌러보면 (아래부터 위로 올라간다.) Buy 클래스 ↓ Kiosk kiosk = new Kiosk(); Kiosk 클래스 ↓ Data data = new Data(); Data 클래스 ↓ Buy buy = new Buy(); 이런 식으로 서로의 기본생성자를 불러온다. 스택오버플로우의 대표적인 사례가 재귀함수를 예로 들 수 있다는데 나의 경우엔 상호 참조의 사례이다. 클래스 간에 서로의 생성자를 불러..