본문 바로가기

Backend/Java & Kotlin16

[Kotlin] Pair와 Triple Pair? Triple? 코틀린에는 변수의 값들을 하나로 묶어 사용할 수 있는 data class가 존재한다. 이는 자료구조 Map과 비슷한 형상을 띄고 있지만 key-value 구조가 아닌 정말 여러 개의 값을 하나의 묶음으로 표현한 것이므로 자료구조의 개념이 아닌 단순하게 편의성을 위해 변수를 묶어 사용한다. 이 data class는 Pair와 Triple로 이름에서 알 수 있듯이 Pair는 두 개의 값을, Triple은 세 개의 값을 묶어 사용한다. 💡 이 클래스의 값에는 의미가 부여되지 않으며, 어떤 목적으로도 사용할 수 있습니다. 위 설명에서 알 수 있듯이 단순 편의성을 위해 정의된 data class임을 알 수 있다. 정의하는 법 Pair와 Triple은 묶는 변수의 개수만 다를 뿐 사용하는 .. 2024. 4. 18.
[Kotlin] Java와 Kotlin의 접근 제어자 차이 Java와 Kotlin의 가시성 제어 Java의 접근제어자 Kotlin의 접근 제어자 public 모든 곳에서 접근 가능 public 모든 곳에서 접근 가능 protected 같은 패키지 또는 하위 클래스에서만 접근 가능 protected 선언된 클래스 또는 하위 클래스에서만 접근 가능 defalut 같은 패키지에서만 접근 가능 internal 같은 모듈에서만 접근 가능 private 선언된 클래스 내에서만 접근 가능 private 선언된 클래스 내에서만 접근 가 Java는 패키지라는 개념을 사용해 클래스들을 관리하지만 Kotlin에서는 패키지를 단순 namespace(어떤 클래스가 어떤 패키지에 있는 등 영역을 나누기 위한 용도)를 관리하기 위한 용도로만 사용하며 가시성 제어에는 사용되지 않는다. Ja.. 2024. 3. 24.
[Java] 객체 지향 4대 특징-3 (추상화) 추상화 좋은 코드는 새로운 기능이 추가되었을 때 변하는 부분을 최소화하는 것을 말한다. 이렇게 하기 위해서는 변하는 부분과 변하지 않는 부분을 명확하게 구분 지어 코드를 작성하는 것이 필요하다. 상속을 통해 다형성있는 코드를 구현하면서 부모와 자식 타입에 같은 이름을 가진 메서드를 작성한 경우 여러 가지 문제와 불편함이 있음을 알 수 있었다. 단순 상속과 다형성의 한계 public class Music { // 상속을 위한 부모 클래스 역할만 수행 public void play() { System.out.println("음악 재생)"; } } public class Dash extends Music { @Override public void play() { System.out.println("Dash를 .. 2024. 1. 22.
[Java] 객체 지향 4대 특징-2 (다형성) 다형성이란 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 말한다. 보통의 객체는 하나의 타입으로 고정되어 있지만 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다. 다형성은 상속과 추상화와 연계되어 사용하므로 일반적인 객체에 경우에는 다형성을 적용할 수 없음을 기억하자. 다형성의 특징을 알아보기 전에 상속을 받은 클래스들의 인스턴스를 생성했을 때, 해당 인스턴스의 상태를 짚어봐야 한다. // 부모 클래스 public class Parent { public void parentMethod() { System.out.println("parent method"); } } // 자식 클래스 public class Child extends Parent { public void childMeth.. 2024. 1. 19.
[Java] 객체 지향 4대 특징-1 (상속, 캡슐화) 💡 특징에 대해 처음부터 끝까지 설명된 글이 아닙니다. 인프런 김영한님의 실전 자바 - 기본편을 바탕으로 제가 알지 못했던 부분, 헷갈렸던 부분, 익숙해져야 하는 부분 등을 위주로 정리한 내용이니 참고 부탁드립니다. 객체 지향 4대 특징으로는 상속, 캡슐화, 추상화, 다형성이 있다. 이 중에서 가장 중요한 것은 다형성이며 다형성을 이해함으로서 상속과 추상화를 이해할 수 있고 더 나아가 여러 가지 디자인 패턴 등을 이해할 수 있다. 상속 상속은 말 그대로 나의 특성을 어떤 클래스에게 물려주어 사용할 수 있게 하는 특징이다. 특성을 물려주는 클래스를 부모 클래스, 특성을 물려받는 클래스를 자식 클래스라고 한다. 클래스의 인스턴스를 생성할 때, 해당 메모리에 접근할 수 있는 메모리 주소를 인스터스 명에 저장한.. 2024. 1. 15.
this와 super this와 super this와 super 키워드는 변수와 메서드에 관련이 있는 키워드이다. this : 현재 클래스의 변수(또는 메서드)을 가져올 때 사용하는 키워드 super : 현재 클래스의 상위 클래스(상속 관계)의 변수(또는 메서드)을 가져올 때 사용하는 키워드 public class Child extends Parents { public String value; public Child (String value) { this.value = value; // 현재 클래스(Child)의 값 super.value. = value; // 상위 클래스(Parents)의 값 } } public class Parents { public String value; } this()와 super() this()와 .. 2024. 1. 5.