메소드 오버로딩
- 같은 이름의 메소드를 파라메터 타입 또는 개수를 달리해서 중복시켜서 사용하는 방식
- 생성자 메소드도 오버로딩이 가능하다.
패키지와 접근 제한자
- 패키지는 폴더의 형태로 구분된다.
- 패키지가 다르면 이름이 같더라도 다른 클래스로 인식한다. 클래스의 전체 이름은 패키지.패키지.클래스명이다.
- 사용하고자 하는 클래스, 또는 인터페이스가 다른 패키지의 경우 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 |