본문 바로가기
카테고리 없음

객체지향2

by 새벽물망초 2021. 11. 19.

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()); 


}

}

 

 

 

댓글