전체 글84 OOPS의 개념 OOPS의 개념 객체 지향 프로그래밍은 Inheritance(상속). data binding (데이터 바인딩), polymorphism(다형성) 같은 많은 개념을 제공하는 패러다임이다. 🔴 OOPs(Object oriented programming system, 객체 지향 프로그래밍 시스템) 객체는 펜, 의자, 탁자 같은 실제 단어적 실체(entity)를 의미한다. 객체 지향 프로그래밍은 클래스와 객체를 사용하는 프로그래밍을 설계하기 위한 방법론 혹은 패러다임이다. 아래의 일부 개념들은 소프트웨어 개발과 유지를 간소하게 한다. 🔴특징 1) 코드 재사용성이 높다. 새로운 코드를 작성할 때, 기존의 코드를 이용하여 쉽게 작성할 수 있음 2) 코드의 관리가 용이하다. 코드간의 관계를 이용해서 적은 노력으로 쉽.. 2024. 3. 8. immutability(불변성) 🔴 객체의 불변성(Immutability)란? 객체가 immutable 하다는 것은 객체가 최초 생성된 시점 이후 상태 값이 변하지 않는다는 의미이다. 객체를 처음 만들었을 대의 속성을 해당 객체가 사라질 때까지 그대로 유지한다는 것. 🔴 객체의 불변성이 왜 중요할까? 어떤 장단점이 있을까? 이펙티브 자바(Effective Java)에서는 특별한 이유가 있지 않은 이상 클래스는 immutable해야 한다고 한다. Classes should be immutable unless there's a very good reason to make them mutable....If a class cannot be made immutable, limit its mutability as much as possib.. 2024. 3. 7. Arrays.sort() Collections.sort()에서 사용되는 알고리즘 Arrays.sort() Collections.sort()에서 사용되는 알고리즘 🔴 Arrays.sort() 배열을 정렬하는 Arrays.sort에 대해 알아보자. Arrays,sort의 코드를 확인했을 때 아래와 같이 주석과 코드가 나왔다. 이를 토해서 보면 듀얼피봇 퀵정렬(Dual-Pivot QuickSort)를 사용한다고 명시되어 있는 것을 확인할 수 있다. /* * * Sorts the specified array into ascending numerical order. * * Implementation note: The sorting algorithm is a Dual-Pivot Quicksort * by Vladimir Yaroslavskiy, Jon Bentley, and Joshua Blo.. 2024. 3. 6. .equals와 .hashCode() .equals와 .hashCode() Object 메서드에 있는 .hashCode() 메서드는 해당 객체의 주소값을 이용하여 만든 객체만의 고유한 정수 값을 가진다. equals()를 오버라이딩 할 때에는 반드시 hashCode()도 동일한 결과를 내도록 함께 오버라이딩 해주어야 한다. 차근 차근 알아보기. Card a = new Card('트럼프카드',10) Card b = new Card('트럼프카드',10) a == b // a와 b는 내용만 같을 뿐, 다른 객체라서 False가 나온다. a.equals(b) // 이 결과가 True 나오게 오버라이딩했다면 a.hashCode() == b.hashCode() // 이 결과도 True가 나오도록 오버라이딩해야 한다. 🔴 동.. 2024. 3. 6. 이전 1 2 3 4 5 ··· 21 다음