본문 바로가기

공부일지

231011 (Java)

메소드 오버로딩

  • 같은 이름의 메소드를 파라메터 타입 또는 개수를 달리해서 중복시켜서 사용하는 방식
  • 생성자 메소드도 오버로딩이 가능하다.

패키지와 접근 제한자

  • 패키지는 폴더의 형태로 구분된다.
  • 패키지가 다르면 이름이 같더라도 다른 클래스로 인식한다. 클래스의 전체 이름은 패키지.패키지.클래스명이다.
  • 사용하고자 하는 클래스, 또는 인터페이스가 다른 패키지의 경우 import를 이용하여 가져올 수 있다.
  • public : 외부 클래스가 자유롭게 사용할 수 있다.
  • protected : 같은 패키지 또는 자식 클래스에서만 사용
  • default : 같은 패키지 소속된 클래스만 사용할 수 있다. 접근 제한자가 없는 경우에 해당한다.
  • private : 외부에서 이용할 수 없다.
  • 같은 이름의 클래스를 가져와서 사용 할 경우 2번째 이후의 클래스는 패키지 이름이 같이 작성된다.
  • private는 class 내부에서 공유하는 것이기 때문에 class 앞에 붙을 수 없다.
  • class 내부의 멤버에 붙여서 사용할 수 있다.

DTO, DAO

  • DTO : database transfer object
  • DAO : database access object

getter, setter

  • get : 외부로부터 접근 불가한 필드의 변수 값을 return 해서 사용 가능하게 하는 메소드
  • set : 외부로부터 접근 불가한 필드의 변수 값을 바꾸기 위해서 사용하는 메소드
  • dto에 설정한 변수들이 있을 경우 getter와 setter를 자동완성 할 수 있다. 알트 쉬프트 s에서 자동완성 가능
public class ProductDTO {
	private int num;
	private int price;
	private String name;

	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		if (price >= 0) {
			this.price = price;
		} else {
			this.name = "금액 입력 오류";
		}
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public ProductDTO(int num, int price, String name) {
		super();
		this.num = num;
		this.price = price;
		this.name = name;
	}
}
public class ProductDAO {
	public void display(ProductDTO dto) {
		System.out.println(dto.getNum() + ". " + dto.getName() + " " + dto.getPrice() + "원");
	}
	public void displays(ProductDTO[] dtos) {
		for (int i=0; i<dtos.length; i++) {
			display(dtos[i]);
		}
	}
}
public class ProductMain {
	public static void main(String[] args) {
		ProductDTO[] dtos = new ProductDTO[5];
				
		dtos[0] = new ProductDTO(1, 15000, "스카프");
		dtos[1] = new ProductDTO(2, 1000, "마늘");
		dtos[2] = new ProductDTO(3, 66000, "커피");
		dtos[3] = new ProductDTO(4, 6000, "피");
		dtos[4] = new ProductDTO(5, 6600, "커");
		ProductDAO dao = new ProductDAO();
		dao.displays(dtos);
	}
}

'공부일지' 카테고리의 다른 글

231017 (jQuery)  (1) 2023.10.17
231012 (HTML)  (0) 2023.10.12
231011 (HTML)  (0) 2023.10.11
231010 (Java)  (3) 2023.10.10
231010 (HTML)  (0) 2023.10.10