분류 전체보기 (14) 썸네일형 리스트형 JPA - org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value 도메인 package com.personal.board.domain; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEn.. org.springframework.dao.DataIntegrityViolationException 해결 객체 클래스 package com.personal.board.domain; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.Auditin.. Java - 상속_다형성과 Casting 다형성(polymorphism)이란? 같은 타입이지만 실행 결과가 다양한 객체로 대입 가능한 성질 부모타입에는 모든 자식 객체가 대입 가능하다. 예를 들면 부모클래스 Parent와 자식 클래스 Child가 있을 때 Parent parent = new Child(); 위 코드가 가능하다는 뜻이다. 그러나 여기서 parent를 Child 의 인스턴스와 똑같이 생각하면 안되는 이유가 있다. 예를 들어 설명해보면 Parent class public class Parent { // 필드 int field1; // 메소드 public void method1() { System.out.println("Parent : method1"); } public void method2() { System.out.println(.. Java - 상속_super는 무엇인가? super? 부모 클래스의 생성자나 메소드를 호출할 때 사용한다. override한 메소드에서 super()을 사용하면 부모 클래스의 메소드를 그대로 호출한다는 뜻이 된다. 예시) 부모 클래스 public class Animal { // 부모 클래스 void sound() { System.out.println("소리를 낸다."); } } 자식 클래스(강아지, 호랑이, 고양이) //강아지 public class Dog extends Animal { @Override void sound() { System.out.println("강아지는 멍멍"); super.sound(); } }//super 사용 //호랑이 public class Tiger extends Animal { @Override void soun.. Java - 상속_ 재정의 (Override) 상속에서 method를 활용하는 방법 중 Override를 알아보자 예시) 부모 클래스 public class Parent { // 필드 int field1; // 생성자(default - 생략 가능) public Parent() {} // 메소드 void method1() { System.out.println("method1이 실행됨"); } void method2() { System.out.println("method2가 실행됨"); } } 자식클래스 -> method1은 Override하고 method2는 하지 않는다. public class Child extends Parent { // 필드 int field2; // 메소드 추가 @Override void method1() { super.meth.. Java - 접근 제한자(public이 뭐야) 접근 제한자(Access Modifier)란? 다른 패키지 또는 클래스에서 필드나 메소드를 사용하지 못하도록 제한하는 키워드이다. 프로그램이 실행 중인 단계에서 다른 클래스에서 접근하여 변경되면 안되는 중요한 정보가 변경되거나 다른 클래스나 패키지에서 변경하면 안되는 필드가 있을 때, 사용한다. 프로그래밍을 시작할 때부터 봐왔던 public void main~~ 메소드의 public이 바로 접근 제한자이다. 접근 제한자는 총 4가지 종류로 나뉜다. public : 다른 패키지, 클래스 모두 접근 가능 protected : 서브 클래스(다른 패키지도 해당) 혹은 같은 패키지의 클래스 접근 가능 default : 접근 제한자 설정하지 않으면 기본으로 적용되는 접근 제한자. 같은 클래스 접근 가능, 다른 패키.. Java - 객체와 상속 객체란 무엇인가? 예를 들어 쇼핑몰의 한 고객이 옷을 구매한다고 해보자. 고객에게는 쇼핑몰에서 사용하는 아이디와 패스워드가 있을 것이고 보유 중인 쿠폰과 기타 등등의 속성이 있을 것이다. 옷은 상품의 일종일 것이고 가격과 할인율, 카테고리 등등의 속성이 있을 것이다. 이때, 고객과 옷을 하나의 객체라고 하고 고객이 옷을 구매하는 행위를 메소드로 구현하는 것이 프로그래밍이다. 고객의 아이디 패스워드 보유 중인 쿠폰 등등, 그리고 옷의 가격, 할인율, 카테고리 등등은 객체의 속성에 해당한다. 상속은 무엇인가? 위의 예에서 옷이 상품의 일종이라고 했는데 이때, 옷과 상품이 상속관계에 있다고 한다. 상품은 다양한 카테고리가 있고 그 카테고리들이 공유하는 속성이 있을 것이다.(가격, 상품평 등) 또한, 옷만이 가.. 객체 속성 ArrayList에서 발생할 수 있는 오류 - 생성자 문제 Customer class package chap8.inheritance.inheritanceExample; import java.util.ArrayList; public class Customer { int customerId; String customerName; String customerGrade; int bonusPoint; double bonusRatio; ArrayList couponList; public Customer(int customerId, String customerName) { this.customerId = customerId; this.customerName = customerName; this.bonusRatio = 0.01; this.customerGrade = "SILV.. 이전 1 2 다음