Override: 새롭게 정의하다 상속은 상위 클래스의 기능을 하위 클래스에게 물려주는 기능이다. 예를 들어서 상위 클래스의 기능을 하위 클래스가 수정없이 그대로 사용하게 될 경우 어떻게 될까? 상당한 제약이 있을 것이다. 이러한 제약에서 벗어나기 위해서는 서브 클래스가 슈퍼 클래스의 메소드를 변경할 수 있어야 한다. 이러한 맥락이 바로 Overriding이다. 즉 자바에서는 부모의 기능만을 사용하는 것이 아니라 부모의 기능을 수정 및 재정의하여 자식 클래스가 사용할 수 있도록 해주는 것이 바로 Overriding이다. Overriding의 조건 Overriding을 하기 위해서는 Super class method의 리턴 형식과 Sub class method의 리턴형식이 같아야 한다. 즉 Super cl..
출처: 테크과학! DiMo테크과학! DiMo Kotlin 강좌 #10 - 클래스의 상속 상속을 사용하는 이유는 다음과 같다. 기존 class의 기능을 활용하여 새로운 기능을 추가하는 class 만드는 경우 여러 개의 class를 만들었는데, 공통적인 기능이 있어 이를 따로 class로 만들어 관리하려고 하는 경우 Super Class: 여기서 속성과 함수를 물려주는 쪽 Sub Class: 여기서 속성과 함수를 물려받는 쪽 Kotlin에서 상속의 조건은 2가지 있음. Sub Class는 Super Class에 존재하는 속성과 같은 이름의 속성을 갖을 수 없음 Sub Class가 호출될 때는 반드시 Super Class의 생성자까지 호출되어야 함. fun main(args: Array) { var a = A..
Kotlin에서 클래스를 생성하려면 기본적으로는 Java와 똑같으나, 생성자를 만드는 방법은 다르다. Java에서는 클래스와 같은 이름의 method를 만들어서 생성자를 만들었으나, 코틀린에서는 init이라는 기본 생성자 함수와 constructor라는 보조 생성자 함수를 통해서 생성자를 만들 수 있다. 즉, 어떻게 보면 생성자를 만드는 방법은 Kotlin이 더 다양한 것이다. 아래의 예제를 보자. 출처: 테크과학! DiMo Kotlin 강좌 #9 - 클래스의 생성자 fun main(args: Array) { var a = Person("박보영", 1990) var b = Person("전정국", 1997) var c = Person("장원영", 2004) var d = Person("이루다") var ..
문제풀러 가기 문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며,..
문제풀러 가기! 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 처음에는 다익스트라로 접근했습니다. heapq를 사용..
⩤ 상속 객체 지향을 통해 달성하고자 하는 목표 중에서 가장 중요한 것은 당연히 기능을 재활용하는 것이다. 상속은 객체 지향의 재활용성을 극대화시킨 프로그래밍 기법이라고 할 수 있다. 또한 동시에 객체 지향을 복잡하게 하는 주요 원인이라고 할 수 있다. 상속: 물려준다. 어떤 객체가 있을 때 해당 객체가 갖고 있는 필드와 메서드를 다른 객체가 물려받을 수 있도록 한 것이 바로 상속이라고 한다. 기존의 객체를 유지하면서, 기능을 추가할 수 있는 방법이 바로 상속임 class C { int left, right; public void setOprands(int left, int right) { this.left = left; this.right = right; } public void sum() { Syst..
청소년 상어 처음에 HashMap을 사용해서 Table형식으로 접근하려고 했는데, 머릿속에서 너무 매칭이 안 되서 헷갈리드라구요. 제가 사용하려 했던건 물고기의 번호 당 위치를 나타내는 딕셔너리 하나, 방향을 나타내는 딕셔너리 하나 그리고 방향 배열 하나 물고기 배열 하나 이렇게 4개를 활용하려고 했습니다. 근데 문제가 뭐냐면, BackTracking으로 dfs를 돌릴려고 하니, 재귀를 빠져나오고 난 뒤에 다시 돌려 놓을 방법을 생각을 못했습니다. 좀... 꼬였습니다. 그래서 다른 풀이를 좀 참고했습니다. 제가 참고한 풀이는 이곳을 실리콘벨리로 68번째 글에서 보았습니다. 우선 문제의 입력값이 그리 크지가 않기 때문에 완전 탐색으로 문제를 풀어야 합니다. import copy board = [[] for..
출처 Java - 생성자 초기화: 어떤일을 시작하기 전에 준비하는 단계 객체지향 프로그래밍에서도 초기화에 해당하는 기능이 제공되는 데, 이것을 생성자(Constructor)라고 한다. 아래의 예제를 다시 생각해보자. Calculator c1 = new Calculator(); c1 setOprands(10, 20); c1.sum(); c1.avg(); 지금 위 코드를 보면 sum()과 avg()를 실행하기 위해서는 setOprands를 실행해야 함. 근데 이걸 실제로 기억해서 사용하는 경우는 좀 드물기 때문에, 실제로 이걸 좀 간단히 할 수 있는 방법이 있을까 생각하게 됨. 그렇기 때문에 이러한 초기화 과정을 강제로 진행할 수 있도록 진행한다면, 초기화에 큰 문제가 발생하지 않을 것임. 그 방법이 바로 ..
- Total
- Today
- Yesterday
- 안드로이드
- 추가합격후기
- 비전공개발자
- 기본생성자
- 구간 합 구하기 4
- 카카오
- Java #객체지향 #상속 #생성자 #개념 #비전공개발자 #FullStack을 #향해
- 참조연산자
- 싸피5기
- 알고리즘
- Programmers #알고리즘 #Python #KAKAOINTERNSHIP #비전공개발자 #불량사용자
- kotlin문법
- 백준
- 백준알고리즘 #BFS #델타이동 #알고리즘풀이 #개발 #안전영역 #풀스택개발자가되고싶습니다. #노력할래요 # 꾸준히 # 화이팅! #비전공개발자
- 코틀린
- Python
- Kotlin
- 백준 #숨박꼭질3 #다익스트라 #알고리즘 #비전공개발자 #풀스택 #웹개발 #앱개발 #안드로이드 #python
- 비전공싸피합격
- 일반파라미터
- Java
- 프로젝트구조
- 보조생성자
- DP
- Class
- 프로그래머스
- 앱개발
- 생성자
- 안드로이드 #안드로이드스튜디오 #Kotlin #앱개발 #안드로이드기초 #비전공개발자 #풀스택개발자 #앱개발자
- 중첩클래스와 내부클래스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
