Person
public class Person {
String name; //멤버변수
int height;
int weight;
//생성자가 1개도 없을 경우 default 생성자가 존재한다
/*생성자 작성 규칙
클래스명과 동일, 변환타입이 없음(문법자체가 없음), 명시적으로 default생성자 필요 */
public Person() {
}//이런 빈 껍데기를 만들어줌
//오버로딩된 생성자
public Person(String pName) { //생성자 이름이 동일, 매개변수 다름(갯수, 타입, 순서)
name = pName; //사람 이름을 매개변수로 입력받아서 person클래스를 생성하는 생성자------이거 hu2
}
//오버로딩된 생성자
public Person(String pName, int pHeight, int pWeight) { //이름, 키, 몸무게를 매개변수로 입력받는 생성자---hu3
name = pName;
height = pHeight;
weight = pWeight;
}
//생성자니까 타입이 없는거지 여기서부터 일반적인 메소드이다
public String getName() {
return name;
}
//키와 몸무게를 각각 추출할 수 있는 메소드 추가
public int getHeight() { //추출은 get 읽기
return height;
}
public int getWeight() {
return weight;
}
//성명, 키, 몸무게를 변경할 수 있는 메소드 추가
public void setPerson(String pName, int pHeight, int pWeight) { //변경은 set 쓰기
name = pName;
height = pHeight;
weight = pWeight;
return; // 제어 반환 그러나 값은 없다
}
PersonTest
public class PersonTest {
public static void main(String[] args) {
// Person class test
Person hu1 = new Person(); /*default 생성자, 정의안했지만 에러가 없다 그러나 오버로딩된 생성자가 하나이상 존재하면 default생성자도 구현해줘야 함
빈 껍데기라도 하나 만들어야 에러가 없다*/
Person hu2 = new Person("홍길동"); //매개변수 1개 생성자
System.out.println(hu2.getName());
//추가된 메소드 기능 테스트
Person hu3 = new Person("김삿갓", 170, 70); //숫자는 그냥들어감, 설계가 3개되있으므로 3개를 넣어야 함
System.out.println("성명 : " + hu3.getName() + ", 키 : " + hu3.getHeight() + ", 몸무게 : " + hu3.getWeight());
hu3.setPerson("김삿갓", 160, 80); //성명, 키, 몸무게 변경 즉, set
System.out.println("성명 : " + hu3.getName() + ", 키 : " + hu3.getHeight() + ", 몸무게 : " + hu3.getWeight());
hu1.setPerson("이도령", 150, 50); //h1의 비어있는 상태에서 수정작업을 함, 즉 객체 수정
System.out.println("성명 : " + hu1.getName() + ", 키 : " + hu1.getHeight() + ", 몸무게 : " + hu1.getWeight());
}
}
댓글