분류 전체보기474 여러 내부 클래스 내부 클래스 (inner class) 클래스 내부에 선언한 클래스로 이 클래스를 감싸고 있는 외부 클래스와 밀접한 연관이 있는 경우가 많고 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용함 중첩 클래스라고도 함 내부 클래스의 종류: 인스턴스 내부클래스, 정적(static) 내부 클래스, 지역(local) 내부 클래스, 익명(anonymous) 내부 클래스 인스턴스 내부 클래스 내부적으로 사용할 클래스를 선언 (private으로 선언하는 것을 권장) 외부 클래스가 생성된 후 생성됨(정적 내부 클래스와 다름) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성할 수 있음 package ch51; class OutClass { private int num = 0; p.. 2021. 5. 8. JPA - ORM ORM: 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것 ORM을 사용하기 위해서는 Database와 OOP에 대해 모두 잘 알고 있어야 한다 ORM을 이용할 때 결국 영속성을 가진 객체는 Database에 저장된다. 테이블 설계도 중요하며, ORM을 사용할 때 가장 중요한 것 중 하나는 테이블과 객체의 매핑을 하는 것이다. 그렇기 때문에 ORM을 사용할 Database와 OOP를 모두 잘 알고 있는게 중요하다 ORM을 사용하는 이유(Database을 직접 다룰 때 발생하는 문제점) 코드의 반복이 발생: 수 많은 SQL, 프로시저 등 작성해야 함 SQL에 의존적인 개발: 테이블을 수정할 때 수많은 쿼리를 수정해야할 가능성이 있음 ORM vs DB ORM DB 데이터 객체(클래스) 테이.. 2021. 5. 2. Map 인터페이스 쌍(pair)으로 자료를 관리하는 Map 인터페이스 HashMap 클래스 활용하기 Map 인터페이스를 구현한 클래스와 가장 많이 사용되는 Map인터페이스 기반 클래스 Key - Value를 쌍으로 관리하는 메서드를 구현함 검색을 위한 자료구조 Key를 이용하여 값을 저장하고 key를 이용하여 값을 꺼내오는 방식 - hash 알고리즘으로 구현 됨 Key가 되는 객체는 중복될 수 없고 객체의 유일성을 비교를 위한 equals()와 hashCode() 메서드를 구현해야 함 package ch50; import java.util.Comparator; import java.util.TreeSet; public class Member implements Comparator { private int memberId;.. 2021. 5. 2. Comparable, Comparator 인터페이스 정렬을 위해 Comparable, Comparator 인터페이스 구현 TreeSet 클래스 활용 객체의 정렬에 사용하는 클래스 Set 인터페이스를 구현하여 중복을 허용하지 않고, 오름차순이나 내림차순으로 객체를 정렬할 수 있음 내부적으로 이진검색트리(binary search tree)로 구현됨 이진검색트리에 저장하기 위해 각 객체를 비교해야 함 비교 대상이 되는 객체에 Comparable이나 Comparator 인터페이스를 구현 해야 TreeSet에 추가 될 수 있음 String, Integer등 JDK의 많은 클래스들이 이미 Comparable을 구현했다 Comparable 이용 package ch49; public class Member implements Comparable { private int.. 2021. 5. 2. Set 인터페이스 중복되지 않게 자료를 관리하는 Set 인터페이스를 구현한 클래스와 그 활용 HashSet 클래스 Set 인터페이스를 구현한 클래스와 멤버의 중복 여부를 체크하기 위해 인스턴스의 동일성을 확인해야 함 동일성 구현을 위해 필요에 따라 equals()와 hashCode()메서드를 재정의 함 package ch48; public class Member { private int memberId; //회원 아이디 private String memberName; //회원 이름 public Member(int memberId, String memberName){ //생성자 this.memberId = memberId; this.memberName = memberName; } public int getMemberId().. 2021. 5. 2. Iterator Collection 요소를 순회하는 Iterator 요소의 순회 컬렉션 프레임워크에 저장된 요소들을 하나씩 차례로 참조하는 것 순서가 있는 List인터페이스의 경우는 Iterator를 사용 하지 않고 get(i) 메서드를 활용할 수 있음 Set 인터페이스의 경우 get(i) 메서드가 제공되지 않으므로 Iterator를 활용하여 객체를 순회함 Iterator 사용하기 boolean hasNext(): 이후에 요소가 더 있는지를 체크하는 메서드, 요소가 있다면 true를 반환 E next(): 다음에 있는 요소를 반환 MemberArrayList.java의 removeMember() 메서드를 Iterator를 활용하여 구현 public boolean removeMember(int memberId) { /* .. 2021. 5. 2. 이전 1 ··· 60 61 62 63 64 65 66 ··· 79 다음