목록분류 전체보기 (68)
nueijeel

2023.05.15 1. 지연 초기화 예외적으로 변수 선언과 동시에 초깃값을 할당할 수 없는 경우가 생기는데, 이때는 lazy나 lateinit 키워드를 사용하여 초기화를 미룰 수 있다. fun main(){ val a = 1 val b = 10 lateinit var data1 : String val data2 : Int by lazy{ data1 = b a+b } } data1은 lateinit 키워드로 초기화를 미룬 변수이고, data2는 lazy 키워드로 초기화를 미룬 변수이다. lazy 키워드로 초기화하는 변수는 {} 괄호 안에 작성된 내용이 수행된 결괏값을 초깃값으로 할당한다. 괄호 안에 작성된 코드가 여러 줄인 경우에는 맨 마지막 줄의 실행 결과만이 초깃값으로 할당된다. 이 코드에서는 laz..
2023-05-15 1. 상속 상속 : 클래스를 설계할 때 다른 클래스가 가지고 있는 부분을 물려받는 개념으로 이를 통해 클래스마다 중복된 부분을 하나의 클래스에 만들 수 있다. 상속을 해주는 클래스를 부모 클래스(SuperClass)라고 하고, 상속을 받는 클래스를 자식 클래스(SubClass)라고 한다. open class SuperClass{} class SubClass : SuperClass{} 코틀린에서 클래스를 정의하면 컴파일 했을 때 자바 코드에서는 final 클래스가 된다. 따라서 상속 관계의 부모 클래스를 정의할 때는 open 키워드를 사용해 정의해야한다. 그러면 자바 코드로 컴파일해도 일반 클래스가 되어 상속이 가능하다. 자식 클래스는 이름 옆에 콜론을 사용해 상속 받을 부모 클래스 이..
2023.05.12 1. 클래스 fun main(){ val t1 = TestClass1() val t2 = TestClass2() //t1 변수에 담긴 TestClass1의 객체 ID 출력 println("t1: $t1") //TestClass2 객체의 멤버 변수 출력 println("t2.a1: ${t2.a1}") println("t2.a2: ${t2.a2}") //t2 객체의 멤버 메서드 호출 t2.inputNum(10, 20) } //내용이 없는 클래스 정의 class TestClass1 //멤버를 가지는 클래스 정의 class TestClass2{ //멤버 변수 var a1 = 0 var a2 = 0 //멤버 메서드 fun inputNum(num1:Int, num2 : Int){ a1 = num..
2023.05.11 1. Kotlin - JetBrains에서 만든 프로그래밍 언어 - 2017년 Google IO 행사에서 안드로이드 개발 공식 언어로 Kotlin을 지정해 Java를 대체할 언어로 주목받고 있다. - 코틀린 파일 확장자는 '.kt'로 코틀린 컴파일러가 파일을 컴파일하면 자바 바이트코드가 만들어지고, 이를 JVM이 실행한다. - 코틀린은 java와 달리 파일명과 클래스명을 다르게 작성해도 된다. - 간결한 코드 표현 - 널 안전성 지원 - 자바와의 상호 운용성 - 구조화 동시성 2. 주석 코틀린에서 사용하는 주석은 자바에서 사용하는 주석의 종류와 동일하다 fun main(){ // 한 줄 주석 /* 여러 줄 주석 */ /** */ } 원래 자바에서 주석을 사용하면 ..

2023.05.04 1. 스레드 (Thread) 동기 : 작업을 순차적으로 처리하는 것 비동기 : 동시에 여러 작업을 처리하는 것 스레드(Thread) : 비동기 처리를 위해 java에서 제공하는 클래스로 한 프로그램에 여러 개의 스레드를 동시에 동작시킬 수 있다. 오류 발생 가능성이 높은 작업을 별도의 스레드로 운영하면 안정적으로 운영할 수 있다. Thread 클래스는 java.lang 패키지에서 제공하는 라이브러리 클래스이므로 별다른 import가 필요하지 않다. //Thread 클래스는 4개의 생성자 가짐 Thread() Thread(String s) Thread(Runnable r) Thread(Runnable r, String s) //r : Runnable ..
2023.04.28 1. 객체 지향 프로그래밍 (Object Oriented Programming) 객체 지향 프로그래밍 : 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지 정의하여 객체들 간 상호작용을 이용해 프로그래밍하는 방법 객체 지향 프로그래밍 기법을 사용하면 기능들을 작은 단위로 나누기 때문에 유지보수에 용이하고, 객체들 간 독립성이 유지된다. 객체는 클래스를 통해 생성할 수 있다. 2. 클래스 클래스 : 객체를 정의하는 틀 [ 접근 제한자 ] class 클래스 이름 { } 위와 같이 클래스를 선언한다. 클래스 내부 body는 역할에 따라 멤버 변수와 멤버 메소드, 생성자로 구성된다. 접근 제한자와 생성자는 이후 다른 게시물에 작성할 예정이다. 이전 게시물에서 작성했던 식..
2023.04.27 1. 조건문 - if 문 : 특정 조건에 만족할 때만 수행해야하는 경우에 사용하는 제어문. 주어진 수식의 결과가 true인 경우 해당 블록의 코드가 수행되고 그렇지 않은 경우에는 수행되지 않는다. if (조건식) { 수행할 코드 } if (조건식) { 수행할 코드 } else { 수행할 코드 } if (조건식) { 수행할 코드 } else if (조건식) { 수행할 코드 } else { 수행할 코드 } int a = 0; if(a==0) System.out.println("a는 0입니다."); if(a!=0) System.out.println("a는 0이 아닙니다."); int a = 10; if(a==0) System.out.println("..