생성자란 메소드라기 보다는 객체의 생성과 초기화를 담당하는 특별한 기능이라고 볼 수 있다. 사실 생성자가 필요한 이유는 프로그램에서 변수를 초기화하는 것의 중요성에서 출발한다. 초기화되지 않은 필드는 프로그램이 오류를 일으키는 가장 중요한 원인 중 하나이다. 또한 그 오류는 테스트를 통해 검출되지 않는 오류로 유명하다. 그래서 객체지향프로그래밍에서는 생성자라고 하는 특별한 방법을 이용하여 객체를 만들고 나서 값을 반드시 초기화하도록 언어를 설계했다. 생성자는 메소드와 비슷하게 생겼지만 이름이 클래스 이름과 같고 반환형이 없다. 예를 들어 다음의 학생 클래스 생성자는 매개변수로 받은 값으로 필드를 초기화하고 있다. public Student(int id, String n, int y) { this.id =..
다음은 입력받은 학생을 고유번호에 따라 팀을 나누는 프로그램이다. 단 여기서 이름이 같은 사람이 나오면 두번째 부터는 차례로 (1), (2), 순서로 번호를 이름 뒤에 붙여준다. 왼쪽의 입력에 대해 오른쪽과 같은 출력이 나오게 프로그램을 작성해 보자. 이름은 같은 이름이 나오면 구분되게 차례로 증가하는 번호를 뒤에 붙여주고, 팀은 학생의 번호로 해당 학생을 찾는다. 1 lee 3 m 2 kim 4 m 3 cho 3 f 4 park 2 m 5 kang 3 f 6 lee 2 f 7 kim 3 m 8 song 3 f 9 choi 2 m 10 cho 2 f 0 A 1 2 3 4 0 B 3 5 7 0 C 2 4 0 D 7 8 9 10 0 end 1 lee 3학년 남 2 kim 4학년 남 3 cho 3학년 녀 4 ..
해시맵은 맵(C++)이라고도 하고 사전(파이썬)이라고도 불리는 자료구조로 프로그램에서 매우 중요하고 가장 널리 쓰이는 자료구조다. 키를 이용하여 키(key)에 따라 값(value)을 인덱싱하는 목적이다. 검색하거나 키로 값을 접근해야 되는 일이 자주 발생하는 경우 거의 해시맵을 통해 이를 인덱싱해 둔다. 그러면 값을 넣을 때는 해싱을 하고 인덱싱을 해두어야 하므로 계산시간이나 메모리가 약간 더 소요되지만 키로 값을 접근할 때는 O(1) 만에, 즉 단번에 그 값에 접근이 가능하다. 예를 든다면 학번으로 학생 객체를 찾거나 주민번호로 사용자 객체를 찾거나 우편번호로 주소를 찾는 등 우리는 사실 실생활에서도 키를 이용해 값을 찾는 사례를 많이 가지고 있다. 파이썬이 해시맵을 딕셔너리(사전)이라고 부르는 이유도..
- Total
- Today
- Yesterday
- 패턴
- indexof
- python example
- python exercise
- comparable
- TypeError
- C++ 클래스
- contentEquals
- zip
- 이터레이터
- format
- 콜렉션
- sort key
- 동적바인딩
- CompareTo
- rust
- Camel Style
- contains
- Iterator
- 스트링 +
- Lazy evaluation
- 스트링
- typedef
- ToString
- max
- 자바regex
- follow
- 지연계산
- 이터러블
- APPEND
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |