추상 클래스와 항상 따라다니는 인터페이스!! 이어서 인터페이스에 대해서 살펴보도록 하겠습니다~! 1. 자바에서 인터페이스가 생겨난 배경 인터페이스도 추상클래스처럼 다른 클래스를 작성하는데 도움을 주는 목적으로 작성하는데 클래스와 다르게 여러개의 인터페이스로부터 다중상속(구현)이 가능하다. 💡 다중상속이 먼가요? 다중 상속을 지원하게 되면 하나의 클래스가 여러 부모 클래스로부터 상속 받을 수 있다. BUT ! 자바는 IS-A 관계(상속관계)로 하나만 상속이 가능하다. 자식 클래스가 여러 부모 클래스를 상속받는다면 다양한 부모 클래스의 메서드를 가져올 수 있어서 좋지 않을까? 싶지만 부모의 메서드 중 동일한 메서드가 있다면 자손에서 충돌나는 문제를 방지하기 위해서 자바에서는 다중 상속을 지원하지 않는다. 이..
추상클래스-실체클래스를 외우려니까 이름처럼 너무 추상적이어서 ^^ 이해하기 어려웠는데 그림처럼 흐름을 그리면서 생각하니까 이해가 아주 쏙쏙 되었다. 같이 흐름대로 이해해보아요! 1. 추상클래스는 무엇일까? 💇🏻♀️ 클래스.... 항상 만드는게 클래스라서 단어는 아주 익숙하다. 일단 클래스는 일반 클래스와 추상 클래스로 나뉜다. 추상클래스는 A클래스, B클래스, C클래스, ..... 수많은 클래스들 중 "비슷한 필드와 메서드를 공통적으로 추출해" 만들어진 클래스다. 클래스 구현부 내부에 추상 메서드가 하나 이상 포함되거나 abstract로 정의된 경우를 말한다. 처음부터 이론적으로 접근하니까 너무 어렵다. 쉽게 설명하자면! 게임을 처음 시작하면 게임 캐릭터를 먼저 만들면서 시작하게 된다. 보통 게임에서 ..
1. 이차원 배열 선언하기 2차원 배열은 [ ] (대괄호)를 두 번 사용하여 선언함! 첫 번째 대괄호에는 [세로 크기=행], 두 번째 대괄호에는 [가로 크기=열]를 지정한다. *일반적으로 2차원 공간은 가로x세로로 표기하지만, 배열로 만들 때는 세로x가로로 표기한다.* 자료형 배열이름[][]; 자료형[] 배열이름[]; 자료형[][] 배열이름; int arr1[세로][가로]; int[세로] arr2[가로]; int[세로][가로] arr3; 2. 이차원 배열 할당 (크기 지정) 행크기와 열크기 동시에 지정 가능함! 배열이름 = new 자료형[행크기][열크기]; arr3 = new int[2][3]; 3. 2차원 배열을 선언하면서 초기화도 같이 할 수 있다. { } (중괄호)안에 가로 요소들을 먼저 묶어주고,..
변수 대신 배열을 쓰는 이유가 뭘까? 변수는 "자료형의 값 하나만"을 담을 수 있고, 예를들어 int a = 10; a = 20; 배열은 "자료형의 값 여러개"를 담을 수 있는 개념이다. int[] a = new int[3]; 여러개의 데이터를 담을 때를 대비해서 배열을 만들었다! (= 세개의 상자를 만들래!) 여기에 [0] [1] [2] 상자마다 번호가 생성된다. a[0] = 5; a[1] = 10; a[2] = 15; 여기서, 변수 대신 배열을 쓰는 이유! 변수는 일일히 매번 선언해야 하는 번거로움과, 여러개의 변수 선언은 오류가 날 가능성이 매우 높은 문제가 있다. int num1 = 0; int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; 또, 변수..
배분율을 계산하는 식이 있다. double dividend1 = income * 0.5; double dividend1 = income * 0.3; double dividend1 = income * 0.2; 각 사람당 배분율 = 수입 * 비율 double rate1 = 0.5; double rate2 = 0.3; double rate3 = 0.2; double dividend1 = income * rate1; double dividend2 = income * rate2; double dividend3 = income * rate3; 변수를 먼저 선언해서 각각의 사람의 권리를 변수화시킨다. 그런데 코드가 길어지면서 변수가 많아질수록 변수가 더럽혀질 가능성이 높아진다. 이럴 때 배열을 이용해보자 새롭게 변수..
- Total
- Today
- Yesterday
- bucket4j
- JPA
- QueryDSL
- spring boot 3
- Git
- Cannot construct instance of
- jvm warm-up 전략
- array
- ChatGPT
- 자바 어플리케이션 실행 과정
- addFilterBefore
- redisson 분산락
- Linux
- MultipleBagFetchException
- 스프링오류
- 스프링 스케줄링
- n+1
- Kotlin
- MongoDB
- Spring Security
- 오블완
- port
- dto 클래스 생성자
- checkout
- 티스토리챌린지
- 배열
- FetchJoin
- Java
- junit5
- 추상클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |