정수 n개가 들어있는 리스트가 주어졌을 때 그 합을 반환하는 함수를 정의하는 문제이다. 안 그래도 슬슬 클래스나 함수에 대해 공부할 때가 되었다고 느끼고 있었는데, 마침 시작이 쉽고 좋다. 함수의 특징이나 세세한 사항에 대해서는 다른 쪽에 글을 파기로 하고, 일단 파이썬의 함수 정의는 아래와 같이 매우 간결하다. def solve(a): return sum(a) 이게 그대로 문제의 답이 된다. 함수를 정의할 때조차 매개변수의 자료형을 명시하지 않아도 된다. 이는 오버로딩 측면에서 굉장히 객체지향적이라 느껴졌다.
메서드 오버로딩과 오버라이딩은 모두 자바의 다형성을 구현하는 방법이다. 게다가 이름과 구현과정까지 나름 비슷해서 가끔 헷갈릴 때가 있는데, 오늘도 헷갈린 김에 잊지 않으려 정리를 한다. Method Overloading 가장 먼저 짚고 넘어가야 할 오버로딩과 오버라이딩의 근본적인 차이는 두 행위가 구현되는 타이밍이다. 오버로딩의 경우 컴파일 과정에서 구현되며, 오버라이딩은 실행시, 혹은 런타임으로 구현된다. 계속해서 오버로딩은 같은 클래스 안에서 두 개 이상의 같은 이름을 가진 메서드를 정의하는 것을 가리키며, 여기엔 아래와 같은 몇 가지 규칙이 존재한다. 메서드 이름이 같아야 한다. 리턴 타입과 예외처리는 같아도 되고 달라도 된다. 파라미터의 개수가 다르거나, 같다면 타입이 달라야 한다. 즉, 시그니처..
생성자란 앞서 살펴봤던 클래스의 4가지 구성요소 중 하나로서, 인스턴스가 생성될 때 호출되는 이다. 구체적으로는 Car bmw = new Car(); 와 같이 인스턴스를 생성할 때, 가장 뒤에 쓰인 Car()가 바로 그 생성자이다. 추가로 생성자는 클래스의 구성요소이긴 하나 멤버는 아니라고 언급했었는데, 이 때문에 생성자는 상속되지 않고, 오버 라이딩의 대상이 되지도 않는다. 생성자는 메서드라고 편의상 적어두긴 했으나, 일반적인 메서드와는 크게 두 가지 차이점을 가지는데 생성자의 이름은 반드시 클래스의 이름과 같아야 한다. 생성자는 리턴 타입이 존재하지 않는다. 따라서 void 키워드도 쓰지 않는다. 가 그것이다. 즉, 엄밀하게 말하면 생성자는 메서드가 아니다. 메서드와는 다르다. 메서드와는..! 구체..
- Total
- Today
- Yesterday
- 야경
- 스프링
- 자바
- 유럽
- 지지
- spring
- 칼이사
- 남미
- 동적계획법
- 세계여행
- 면접 준비
- Backjoon
- 기술면접
- 파이썬
- 스트림
- 유럽여행
- 중남미
- 백준
- 맛집
- 세계일주
- Python
- java
- 여행
- a6000
- 알고리즘
- RX100M5
- 리스트
- 세모
- BOJ
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |