3 분 소요

-MemberVO-

public class MemberVO {
// 멤버 변수(필드)를 선언한다.
// 멤버 변수를 선언하고 초기화 시키지 않으면 숫자는 0, 문자는 공백, boolean은 false, 크ㅜㄹ래스로 만든 모든 멤버는 null로 자동 초기화된다.
// 멤버 변수에 저장된 데이터를 클래스 외부에서 함부로 수정할 수 없도록 일반적으로 멤버 변수의 접근 권한은 private로 지정한다.
// 데이터만 정확하다면 언제 어디서 메소드를 실행하더라도 같은 결과를 얻을 수 있으므로 일반적으로 메소드의 접근 권한은 public으로 지정한다.
// [접근권한 지정자] [static] 자료형 변수명 [=초기치];
public int no;
public String name;
public boolean gender;
public double height;
// 정적(static)변수
// 최초에 한번만 생성되고 초기화되는 변수로, 현재 클래스에 생성한 모든 객체에서 공유해서 사용한다.
// 변수를 사용하기 위해 클래스의 객체를 선언할 필요 ㅇ벗이 클래스 이름에 "."을 찍어서 바로 접근이 가능하다.
}

-MemberTest-

public class MemberTest {
public static void main(String[] args) {
// 클래스에 객체를 생성하는 방법
// 클래스이름 객체명 = new 생성자();
MemberVO vo = new MemberVO();
// 생성된 객체의 멤버에 접근하려면 객체이름에 "."을 찍어서 접근한다
System.out.println(vo.no);
System.out.println(vo.name);
System.out.println(vo.gender);
System.out.println(vo.height);
 }
}

-MemoVO-

import java.util.Date;
 
public class MemoVO {
private int no;          //객체가 생성 될 때 마다 자동으로 1씩 증가
private String name;
private boolean gender;   // 객체가 생성되는 순간의 날짜와 시간
private String memo;
private Date writeDate;
// 생성자 메소드(이하 생성자)
// 생성자 이름은 반드시 클래스 이름과 같아야한다
// 생성자는 return을 가지지 않는다,. return을 가지지 않는 메소드는 접근권한에 "void"를 입력한는데 생성자는 접근권한을 쓰지 않는다.
// 생성자를 선언하지 않으면 자바컴파일러가 아무런 일도 하지 않는 기본 생정자를 만들어준다. 하지만 사용자가 생성자를 선언하면 기본생성자는 자동으로 생성되지 않는다.
// 생성자는 객체가 생성될 때 자동으로 실행 되며 멤버 변수를 초기화 시키는 목적으로 사용된다.
public MemoVO() {
System.out.println("기본 생성자가 실행됩니다.");
this("무명씨", false, "없음");        //생성자 MemoVO(String name, boolean gender, String memo)을 실행한다.        
}
//   같은 {}블록에 같은 이름을 가지는 지역 변수와 멤버변수가 있을 경우 지역변수에 우선권을 준다.
public MemoVO(String name, boolean gender, String memo) {
// super(): 부모 클래스의 생성자를 의미한다. 생략하면 super()를 컴파일러가 자동으로 넣어준다.
// this(): 현재 클래스의 생성자를 의미한다.
// super()와 this()는 반드시 생성자의 첫줄에 코딩해야한다.
this.name = name;
this.gender = gender;
this.memo = memo;
}
// 객체에 저장된 내용을 출력해야 한다면 toString() 메소드를 재정의(override)한다.
@Override
public String toString() {
return name + "(" +  (gender ? "남" : "여") + ")이 남긴말 " + memo;
}
}

-memoTest-

public class MemoTest {
public static void main(String[] args) {
MemoVO vo1 = new MemoVO();
MemoVO vo2 = new MemoVO("홍길동", true, "1등입니다.");
System.out.println(vo1);
System.out.println(vo2.toString());
}
}
  • SimpleDateFormat name = new SimpleDateFormat(“yyyy.MM.dd(E)”);
  • H: 24시간 단위
  • h: 12시간 단위
  • m : 분
  • s: 초
  • S: 1000분의 1초
  • a : am/ pm (오전/오후)

-memoTest-

public class MemoTest {
 public static void main(String[] args) {
 MemoVO vo1 = new MemoVO();
 MemoVO vo2 = new MemoVO("홍길동", true, "1등입니다.");
 System.out.println(vo1);
 System.out.println(vo2.toString());
 
MemoVO vo3 = new MemoVO("성춘향", false, "이쁜이에요");
 System.out.println(vo3);
 
vo2.count = 100;
 System.out.println(vo3.count);
 
// System.out.println(vo2.name); name은 private이여서
 System.out.println(vo2.getName());
 vo2.setName("임꺽정");
 System.out.println(vo2.getName());
 }
}

-memoVO-

import java.util.Date;
 
public class MemoVO {
 
// 멤버 변수의 종류는 정적(static) 멤버 변수와 인스턴스 멤버 변수가 있는데 인스턴스 멤버 변수는 현재 클래스로 생성되는 모든 객체에서
// 독립된 기억공간을 가지지만 정적 멤버 변수는 현재 클래스로 생성되는 모든 객체에서 공유해서 사용한다.
 
public static int count;
 private int no; //객체가 생성 될 때 마다 자동으로 1씩 증가
 private String name;
 private boolean gender; // 객체가 생성되는 순간의 날짜와 시간
 private String memo;
 private Date writeDate;
 
public MemoVO() {
 this("무명씨", false, "없음"); 
}
 
public MemoVO(String name, boolean gender, String memo) {
 no = ++count;
 this.name = name;
 this.gender = gender;
 this.memo = memo;
 writeDate = new Date();
 }
 
// private 권한으로 설정된 멤버 변수는 클래스 외부에서 접근할 수 없다.
// 이 규칙이 너무 엄격히 적용 되므로, 이규칙에 대한 예외 지정을 getter & setter 메소드를 사용해서 한다.
// setter는 private 권한을 가지는 멤버 변수의 값을 수정할 때 사용한다.
 
@Override
 public String toString() {
 return name + "(" + (gender ? "남" : "여") + ")이 남긴말 " + memo;
 

}
 public static int getCount() {
 return count;
 }
 public static void setCount(int count) {
 MemoVO.count = count;
 }
 public int getNo() {
 return no;
 }
 public void setNo(int no) {
 this.no = no;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public boolean isGender() {
 return gender;
 }
 public void setGender(boolean gender) {
 this.gender = gender;
 }
 public String getMemo() {
 return memo;
 }
 public void setMemo(String memo) {
 this.memo = memo;
 }
 public Date getWriteDate() {
 return writeDate;
 }
 public void setWriteDate(Date writeDate) {
 this.writeDate = writeDate;
 }
}

image

댓글남기기