일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- firebase
- 림프절전이
- Compose
- 알고리즘
- java
- MYSQL
- 안드로이드
- 전이
- 맛집
- 정렬 알고리즘
- 자바
- 동위원소치료
- 방사성동위원소치료
- 코틀린
- android auto
- 입원
- Android Compose
- 백준알고리즘
- 폐CT
- leetcode
- 방사성 동위원소 치료
- 저요오드식
- 갑상선암
- 카페
- 객체
- 임파선전이
- 프로그래머스
- Android
- kotlin
- 수술
- Today
- Total
목록java (11)
새우버거의 개발 블로그
1. 클래스 계층 정의1) 코틀린 인터페이스코틀린 인터페이스는 interface 를 사용합니다. 코틀린 인터페이스 안에는 추상 메소드 뿐만 아니라 구현이 있는 메소드도 정의할 수 있습니다.interface Clickable { fun click()} Clickable를 구현하는 모든 클래스는 click에 대한 구현을 제공해야 합니다. Java에서는 상속을 할 때, extends와 implements 키워드를 사용하지만, 코틀린에서는 콜론(:)을 붙입니다. override 변경자는 상위 클래스, 인터페이스에 있는 프로퍼티나 메소드를 오버라이드한다는 표시로 코틀린에서는 필수로 사용해야 합니다.class Button : Clickable { override fun click() { }}..

1. 코틀린에서 컬렉션 만들기코틀린은 자체 컬렉션을 제공하지 않고, Java 컬렉션과 똑같은 클래스를 사용합니다.val set = hashSetOf(1, 7, 54)val list = arrayListOf(1, 7, 54)val map = hashMapOf(1 to "one", 7 to "seven", 54 to "fifty-four")println(set.javaClass)println(list.javaClass)println(map.javaClass)// class java.util.HashSet// class java.util.ArrayList// class java.util.HashMap 따라서 Java에서 코틀린 함수를 호출하거나 코틀린에서 Java 함수를 호출할 때, 서로 변환할 필요가 없습니..

코틀린이란 무엇이며, 왜 필요한가?1. 코틀린의 주요 특성코틀린은 Java 플랫폼에서 돌아가는 프로그램 언어로, 이제 안드로이드 어플리케이션을 개발하는 사람이라면 대부분 Java만큼 사용하고 있는 언어입니다. Java와 코틀린은 모두 정적 타입 지정 언어이지만, 코틀린은 타입 추론, 널 안정성 등 더 편리하고 유용한 기능을 제공합니다. 1) 정적 타입 지정 언어코틀린은 Java와 마찬가지로 정적 타입 지정 언어입니다. 정적 타입 지정 언어란 변수나 함수의 타입이 컴파일 시점에 미리 결정되는 언어입니다. 예를 들어, Int 타입 변수에는 반드시 정수가 들어가야 하며, String 등 다른 타입의 값을 넣으려 하면 컴파일 오류가 발생합니다.val num: Int = 1num = "hello" // 컴파일 오..
Java에서는 문자열을 저장하는 자료형으로 String을 제공합니다. String 클래스에는 문자열 관련 작업을 할 때 유용한 다양한 메소드를 제공합니다. 대표적인 특징은 다음과 같습니다. 1. String은 불변 객체입니다. 인스턴스가 한 번 생성되면 그 값을 읽기만 가능하고, 수정이 불가능합니다. 2. String은 final class이기 때문에 상속받을 수 없습니다. 이러한 특징 때문에 Java는 문자열을 가변적으로 수정할 수 있도록 StringBuilder와 StringBuffer 클래스를 제공합니다. 이외에도 계속 생성되는 인스턴스로 인한 메모리 이슈를 생각하여 String Pool이라는 것도 고안했습니다. 이제부터 StringBuilder, StringBuffer 그리고 String Pool..

Activity는 안드로이드 앱 개발에 있어 필수적으로 알아야 할 구성요소입니다. 가장 큰 특징은 앱이 UI를 그리는 창을 제공한다는 것입니다. 우리가 보통 보는 앱의 화면은 Activity 이며, 대부분의 앱은 여러 화면을 제공하기 때문에 여러 개의 Activity로 구성되어 있다고 생각할 수 있습니다. 또한, Activity는 사용자가 앱 상호작용을 하기 위한 진입점입니다. 한 앱이 다른 앱을 호출할 때, 전체를 호출하는 것이 아니라 다른 앱의 Activity를 호출하는 것이기 때문입니다. 이러한 동작은 manifest 파일에 Activity 및 관련된 속성을 선언하여 구성할 수 있습니다. Manifest 구성 Activity를 사용하기 위해서는 manifest 파일에서 태그를 하위 요소로 추가해야 ..
INTRO 객체 지향 언어의 특징 중 하나는 상속(Inheritance)입니다. 이것만큼 워딩 그대로 그 뜻을 잘 표현하는 것은 없는 것 같습니다. 상속은 말 그대로 한 클래스가 다른 클래스의 속성(메서드 및 필드)을 획득하는 것입니다. 보통 다른 클래스의 속성을 받는 클래스를 하위 클래스(자식 클래스), 특성을 주는 클래스를 상위 클래스(부모 클래스)라고 합니다. 상속을 이용하면 상위 클래스의 속성을 재사용하여 반복된 코드 중복을 줄일 수 있습니다. 하지만 객체 간의 속성과 관계를 잘 고려하여 상속을 이용하고, 구조를 설계하는 것이 중요합니다. 무분별한 상속은 오히려 객체 간의 결합도를 높여 유지보수와 수정이 어려워질 수 있습니다. extends 키워드 extends는 클래스의 속성을 상속하는 데 사용..
INTRO Java 프로그램은 객체를 생성하고, 메소드를 호출해서 통신하는 대표적인 객체 지향(Object Oriented) 언어입니다. 따라서 Java는 객체 지향 대표적인 특징인 캡슐화, 상속, 다형성, 추상화 등을 지원합니다. 이제부터 객체 지향 프로그래밍의 개념을 다지고, Java가 가지는 객체 지향적 특징을 하나하나 알아보려고 합니다. 객체 지향 프로그래밍 (Object Oriented Programming, OOP) 객체 지향 프로그래밍(OOP)에 대한 개념은 면접 단골 질문입니다. Java 개발자라면 OOP가 무엇인지 알고 있지만, 막상 설명을 하려고 하면 입이 잘 안 떨어지는 경우가 있습니다. (제가 그렇습니다.) 먼저, 위키 백과에서 정의된 OOP의 정의는 다음과 같습니다. 객체 지향 프..
퀵 정렬 (Quick Sort) 1. Pivot 값을 기준으로 왼쪽에서부터 검사해서 큰 값을, 오른쪽에서부터 작은 값을 발견한다. 2. 두 값을 바꾸기 연산하고, 같은 과정을 수행한다. 3. 큰 값의 index 와 작은 값의 index 가 교차하는 경우, 작은 값과 Pivot 값을 바꾸기 연산한다. → Pivot 값을 기준으로 왼쪽은 Pivot 값보다 작은 값들, 오른쪽은 큰 값들로 분할된다. 4. 분할된 영역에서 같은 과정을 수행한다. → 재귀 성격 3. 시간 복잡도 : O(𝑁𝑙𝑜𝑔𝑁) 4. 작은 값과 큰 값으로 분할을 할 수 없는 경우 = 이미 정렬되어 있는 경우 : O(𝑁²) import java.util.Arrays; public class QuickSort { int[] array = new ..
삽입 정렬 (Insertion Sort) 1. 앞의 원소들이 이미 정렬이 되어 있다고 가정한다. 2. 특정 원소에서 앞의 원소들을 살펴보며 적당한 위치를 찾는 것 3. 시간 복잡도 : O(𝑁²) 4. 선택 정렬, 버블정렬보다 효율적인 알고리즘 → 필요 시에 바꾸기 연산을 수행하기 때문. 특히 이미 정렬이 되어 있을 경우에는최고의 효율을 보여준다. import java.util.Arrays; public class InsertSort { int[] array = new int[]{10, 2, 5, 8, 12, 73}; public void sort() { int j, temp; for (int i = 0; i = 0 && a..
버블 정렬 (Bubble Sort) 1. 두 숫자를 비교해서 더 작은 숫자를 왼쪽에 두는 것 2. 반복이 끝났을 때, 최댓값이 맨 뒤에 있게 된다. 3. 시간 복잡도 : O(𝑁²) 4. 선택 정렬보다 비효율적인 알고리즘 → 선택 정렬은 비교하면서 최솟값을 저장하고, 한 번 반복이 끝나고 바꾸기 연산을 수행하지만 버블 정렬은 비교할 때마다 바꾸기 연산이 이뤄지기 때문이다. import java.util.Arrays; public class BubbleSort { int[] array = new int[]{10, 2, 5, 8, 12, 73}; public void sort() { int temp; for (int i = 0; i < array.length; i++) { for (int j = 0; j < ..