
package com.haenin.section04.constructor;
public class Application {
public static void main(String[] args) {
/* 목표, 생성자 함수가 무엇인지 이해하고 선언 및 호출할 수 있다. */
User user1 = new User();
System.out.println(user1.getInfo());
User user2 = new User("user01","pass01","홍길동");
/* 필기. 매개변수 3개를 초기화하는 생성자 */
System.out.println(user2.getInfo());
}
}
package com.haenin.section04.constructor;
import java.util.Date;
public class User {
private String id;
private String pwd;
private String name;
private java.util.Date enrollDate;
// 필기 util패키지 안에 있는 데이트를 쓸 때는 풀 패키지를 작성하는 것이 좋다 mysql과 비교
// 필기 user()함수를 작성하지 않은 상태에서도 컴파일로가 작성해줌
/* 설명. 기본 생성자( 작성하지 않아도 작성됨, 명시적으로 작성하는 것을 권장) */
public User(){
System.out.println("기본생성자 실행됨...");
}
/* 설명. 매개변수 있는 생성자(객체가 생성될 때 초기화하고 싶은 값을 매개변수로 가지는 생성자 */
/* 설명. 생성자에서 this.의 이미는 해당 생성자로 생성될 객체를 뜻함 */
public User(String id, String pwd, String name) {
this.id = id;
this.pwd =pwd;
this.name = name;
}
public User(String id, String pwd, String name, Date enrollDate) {
/* 설명. this()는 같은 클래스의 다른 생성자를 참조할 때 사용
* 1. 첫 줄에 사용할 것
* 2. 다른 생성자 하나만 추가 사용 가능
* (목적은 코드 줄 수 줄이기)
* */
// this.id = id;
// this.pwd = pwd;
// this.name = name;
this(id, pwd, name);
/* 필기. this()는 생성자 */
this.enrollDate = enrollDate;
}
// 필기 속성이랑 생성자 함수가 실행되고 객체가 생성됨
public String getInfo(){
return this.id + ", " + this.pwd + ", " + this.name + ", " + this.enrollDate;
}
}
package com.haenin.section04.dto;
public class Application {
public static void main(String[] args) {
UserDTO user1 = new UserDTO();
System.out.println(user1);
// println은 변수가 들어오면 스스로 변수.toString()을 호출함
UserDTO user2 = new UserDTO("user01", "pass01", "홍길동",
new java.util.Date());
System.out.println("user2 = "+ user2);
/* 설명. JSP, Spring Framework, Mybatis, ... 등에서 사용할 예정 */
user2.setName("유관순");
System.out.println("user2 = " + user2.getName());
}
}
package com.haenin.section04.dto;
/* 설명. DTO(Data Transfer Object) */
/* 설명. 자바빈(Java Bean) 형태의 클래스
* JSP에서 사용되는 표준 액션 태그로 접근할 수 있게 만든 자바 클래스 형태이다.
* 자바 코드를 모르는 웹 퍼블리셔들도 자바 코드를 사용할 수 있도록 태크 형식으로 지원하는 문법을
* 의미하는데, 그 때 사용할 수 있도록 규칙을 지정해 높은 java 클래스를 자바빈(java bean)이라고 부른다.
* 지금은 특정 목적 및 프레임워크를 위해 클래스를 작성하는 규칙이라고 보면 된다.
* */
/* 설명.
* 자바빈 작성 규칙
* 1. 자바빈은 특정 패키지에 속해 있어야 함
* 2. 필드의 접근 제어자는 private으로 선언되어야 함(캡슐화 적용)
* 3. 기본 생성자가 명시적으로 존재해야 함(매개변수 있는 생성자는 선택사항)
* 4. 모든 필드에 접근 가능한 설정자(setter)와 접근자(getter)가 public으로 작성되어 있어야 함
* */
import java.util.Date;
public class UserDTO {
private String id;
private String pwd;
private String name;
private java.util.Date enrollDate;
public UserDTO() {
}
public UserDTO(String id, String pwd, String name, Date enrollDate) {
this.id = id;
this.pwd = pwd;
this.name = name;
this.enrollDate = enrollDate;
}
public String getId() {
return id;
// 필기 this.이 생략된 상태
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getEnrollDate() {
return enrollDate;
}
public void setEnrollDate(Date enrollDate) {
this.enrollDate = enrollDate;
}
@Override
public String toString() {
return "UserDTO{" +
"id='" + id + '\\'' +
", pwd='" + pwd + '\\'' +
", name='" + name + '\\'' +
", enrollDate=" + enrollDate +
'}';
}
}