전체 글(209)
-
중첩 클래스 ,내부 클래스1
◎ 중첩 클래스-> 클래스 안에 클래스를 중첩해서 정의할 수 있는데 이를 중첩 클래스라 한다.class Outer{ // 중첩 클래스 class Nested{ ... }}-> 중첩 클래스는 클래스를 정의하는 위치에 따라 아래와 같이 분류된다.-> 정적 중첩 클래스 : 정적 변수와 같은 위치의 클래스-> 내부 클래스 : 인스턴스 변수와 같은 위치의 클래스-> 지역 클래스 : 지역 변수와 같은 위치의 클래스 ◎ 중첩 클래스의 용도-> 특정 클래스가 다른 하나의 클래스 내부에서만 사용되거나 둘이 긴밀하게 연결되어 있는 경우에만 사용한다. 외부의 여러 클래스가 특정 중첩 클래스를 사용한다면 중첩 클래스로 만들면 안된다.-> 논리적 그룹화 : 특정 클래스가 다른 하나의 클래스에서만 사용되는 경우..
2025.04.07 -
열거형 - ENUM
◎ 문자열과 타입 안정성-> 어떤 서비스에서 고객의 등급을 BASIC, GOLD, DIAMOND로 나누고 각 등급에 따라 할인율을 다르게 적용한다.-> 다음은 위 요구 사항에 대한 코드이다.public class DiscountService { public int discount(String grade, int price) { int discountPercent = 0; // 할인율 // 각 등급에 따라 할인율 적용 if (grade.equals("BASIC")) { discountPercent = 10; } else if (grade.equals("GOLD")) { discountPercent =..
2025.04.01 -
래퍼, Class 클래스
◎ 기본형의 한계-> 자바의 int, double과 같은 기본형에는 몇가지 한계가 있다.- 객체가 아님 : 기본형 데이터는 객체가 아니기 떄문에 객체와 관련된 메서드 등을 이용할 수 없다. - null 값을 가질 수 없음 : 기본형은 null 값을 가질 수 없다. 데이터가 없는 상태를 나타내야 할 때는 기본형 데이터로는 나타낼 수 없다.-> 다음은 기본형 데이터를 이용한 두 정수의 대소 관계를 비교하는 코드이다.package lang.wrapper;public class MyIntegerMethodMain0 { public static void main(String[] args) { int value = 10; int i1 = compareTo(value, 5); ..
2025.03.27 -
값 타입2
◎ 값 타입 컬렉션-> 값 타입을 컬렉션에 담아서 사용하는 방식으로 값 타입을 하나 이상 저장할 때 사용한다.-> 데이터베이스에는 같은 테이블에 컬렉션을 저장할 수 없다. 따라서 컬렉션을 저장하기 위한 별도의 테이블을 생성해서 저장해야 한다.-> 다음은 값 타입 저장 예제다.@Entitypublic class Member extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "MEMBER_ID") private Long id; @Column(name = "name") private String username; // Period @Embedded p..
2025.02.28 -
값 타입1
◎ JPA의 데이터 타입 분류-> 엔티티 타입- @Entity로 정의하는 객체- 데이터가 변해도 식별자로 지속해서 추적 가능(회원의 나이 값을 변경해도 pk와 같은 식별자로 추적 가능) -> 값 타입- int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본타입이나 객체- 식별자가 없고 값만 있기 때문에 변경 시 추적 불가 ◎ 값 타입 분류-> 기본값 타입- 자바 기본 타입(int, long, double...)- 래퍼 클래스(Integer, Long)- String -> 임베디드 타입(embedded type, 복합 값 타입) -> 컬렉션 값 타입(collection value type) ◎ 기본값 타입-> 생명주기가 엔티티에 의존한다. 회원 엔티티를 삭제하면 회원의 이름, 나이 등..
2025.02.27 -
영속성 전이 CASCADE & 고아 객체
◎ 영속성 전이-> 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 같이 영속 상태로 만들기 위해 사용한다.-> 다음은 Child와 Parent 엔티티가 다대일로 매핑되어 있는 상태에서 영속성 전이 설정을 한 것이다.public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); ..
2025.02.27