본문 바로가기
공부/JAVA

Product.java

by 예림220 2023. 5. 25.

package com.my.product.dto;

public class Product {
private String prodNo; // 상품번호 
private String prodName; // 상품이름
private int prodPrice; // 상품가격

public Product() {
}
/* 설명
public Product()
 * 기본생성자, 클래스의 객체를 생성할 때 호출되는 메서드. 
 * 이 생성자를 만드는 이유 
 * (1) 객체 생성 
 * : 기본 생성자를 제공함으로써 클래스의 객체를 생성할 때 사용할 수 있습니다. 예를 들어, 'product'
 * 클래스의 인스턴스를 생성하고자 할 때 'new Product()'와 같이 호출할 수 있습니다
 * (2) 기본 초기화 
 * : 기본 생성자는 필드를  초기화하는 역할을 할 수 있습니다. 
 * 만약 다른 생성자들이 매개변수를 받아 필드를 초기화한다면, 기본 생성자를 통해 필드를 기본값으로 초기화
 * 할 수 있습니다.
 * (3) 상속
 * 기본 생성자는 상속과 관련하여 중요합니다.
 * 자식 클래스가 부모 클래스를 상속 받을 때, 자식 클래스의 생성자에서 명시적으로 부모 클래스의 특정
 * 생성자를 호출해야 합니다. 이때, 부모 클래스가 기본 생성자를 갖고 있다면 자식 클래스에서는 
 * 기본 생성자를 호출해야 합니다. 그렇지 않으면 컴파일러 오류가 발생합니다. 
 * (+) 이 클래스에서는 매개변수를 받는 생성자도 정의되어 있으므로, 기본 생성자가 따로 필요하지는 않을 
 *  수도 있다. 하지만 명시적으로 기본 생성자를 정의해두면 다른 개발자가 클래스를 사용할 때 편의성을 
 *  제공하고, 상속시에도 문제가 없도록 해준다.  
 */

public Product(String prodNo, String prodName, int prodPrice) {
this.prodNo = prodNo;
this.prodName = prodName;
this.prodPrice = prodPrice;
}
/*설명
public Product(){} 은 생성자
 * (String prodNo, String prodName, int prodPrice)은 매개변수
 * this.prodNo 는 현재객체, 즉 Product 클래스의 멤버변수
 * = prodNo 는 매개변수를 가리킴
 */

public String getProdNo() {
return prodNo;
}
/* 설명
 * getProdNo라는 이름의 메소드. 
 * prodNo 값을 리턴해줌
 * (예시) product이라는 객체가 있을 때, product.getProdNo()를 호출하면 해당 객체의 
 * prodNo값이 반환되어 사용자가 이 값을 가져올 수 있게 됩니다. 이를 통해 prodNo값을 
 * 클래스 외부에서 읽을 수 있습니다. 
 */
/*설명 (getter / setter) 
 * getter와 setter은 객체 지향 프로그래밍에서 사용되는 메서드로, 클래스의 private 멤버변수에
 * 접근하고 값을 가져오거나 설정하기 위해 사용됩니다. 
 * getter와 setter의 사용 이유
 * (1) 캡슐화
 * getter와 setter를 사용하여 멤버변수에 접근할 수 있도록 제어할 수 있다. 멤버변수를 private으로 
 * 선언하고, getter와 setter를 통해 간접적으로 접근하면서 데이터의 접근을 제어할 수 있다. 
 * 이를 통해 데이터의 무결성을 유지하고, 잘못된 값의 할당을 방지할 수 있다. 
 * (2) 데이터 은닉
 * getter와 setter을 통해 멤버 변수에 대한 접근을 제어함으로써, 클래스 외부에서 직접적으로 멤버변수에
 * 접근하지 못하도록 합니다. 이는 객체의 내부 구현을 숨기고 외부에 공개할 필요가 있는 메서드를 제공함으로써 
 * 정보 은닉을 실현하는데 도움을 준다. 
 * (3) 유효성 검사
 * setter 메서드를 사용하여 데이터를 설정할 때 유효성 검사를 수행할 수 있다. 
 * setter 내에서 특정조건을 확인하고, 잘못된 값이 전달었을 경우 예외를 발생시키거나, 알맞은 방식으로
 * 처리할 수 있다. 이를 통해 잘못된 값의 할당을 방지하고 안정성을 높일 수 있다
 * (4) 코드 일관성 유지
 * getter와 setter를 사용하여 멤버변수의 값을 읽고 수정할 수 있는 일관된 방법을 제공한다. 
 * 이는 클래스를 사용하는 다른 코드에서도 일관성있는 접근방식을 유지하고, 코드의 가독성을 향상시킨다.
 * (5) 외부 인터페이스 제공
 * getter와 setter를 사용하여 클래스 외부에서 객체의 속성에 접근할 수 있는 인터페이스를 제공할 수있다.
 * 이를 통해 개게의 데이터를 안전하게 읽고 수정할 수 있으며, 객체간의 상호작용이 원활해진다.
 */
---------------------------------------------------------------------------------------------------여기지
public void setProdNo(String prodNo) {
if (prodNo.charAt(0) == 'S' || prodNo.length() > 10) {
System.out.println("상품번호가 잘못되었습니다");
return;
}
this.prodNo = prodNo;
}

public String getProdName() {
return prodName;
}

public void setProdName(String prodName) {
this.prodName = prodName;
}

public int getProdPrice() {
return prodPrice;
}

public void setProdPrice(int prodPrice) {
this.prodPrice = prodPrice;
}

public void print() {
System.out.println("상품번호:" + prodNo);
System.out.println("상품명:" + prodName);
System.out.println("가격:" + prodPrice);
}

}

'공부 > JAVA' 카테고리의 다른 글

2차배열 (이름넣고 불러오기)  (0) 2023.06.24
배열 (최고점수, 최저점수, 점수총합, 점수평균 구하기)  (0) 2023.06.24
배열 (향상된 for문 이용하기)  (0) 2023.06.24
MyConnection  (0) 2023.06.20
JDBCTest  (0) 2023.06.20