비행기를 나타내는 Class 설계
1] 문제
비행기를 나타내는 Plane라는 이름의 클래스를 설계하라.
1)필드를 정의하라. 모든 필드는 전용 멤버로 하라.
2)모든 필드에 대한 접근자와 설정자메소드를 작성한다.
3)Plane클래스의 생성자를 몇 개를 중복 정의하라.
4)PlaneTest라를 이름의 클래스를 만들고,
main()에서 객체 여러 개를 생성하고 접근자와 설정자를 호출하여 보라.
5)생성된 비행기의 개수를 나타내는 정적 변수인 planes를 추가하고,
생성자에서 증가시켜 보자.
6)Plane클래스에 정적 변수 planes의 값을 반환하는 정적 메소드 getPlanes()를
추가하고 main()에서 호출하여 보라.
2] 알고리즘 및 설명
Step 1 : 객체를 생성하고 예제에 맞는 필드를 선언한다.
Step 2 : 생성자를 받는 값의 개수에 따라 오버로딩하고, 인자 값을 받지 않는 필드는 NULL로 초기화 한다. 또한 모든 필드에 대하여 접근자와 설정자를 작성한다.
Step 3 : 필드에 정적 변수 count를 선언하고, 이를 반환하는 정적 메소드
getPlanes()도 추가한다.
Step 4 : main()에서 객체가 잘 생성되었는지
1)접근자와 설정자 호출,
2)객체 생성시 값의 개수에 따른 생성자 정의,
3)정적 변수와 정적 메소드
잘 동작하는지 확인한다.
3] 프로그램 코드
class Plane {
private String company;
private String model;
private int psg;
public static int count = 0;
public Plane(String company, String model, int psg) {
this.company = company;
this.model = model;
this.psg = psg; // 필드를 정의.
count++; // 정적 변수 정의.
}
public Plane(String company, String model) {
this(company, model, 0);
}
public Plane(String company) {
this(company, "\0", 0);
}
public Plane() {
this("\0", "\0", 0);
} // 여기까지 생성자 중복 정의.
public String Getcom() {
return company;
}
public String Getmo() {
return model;
}
public int Getpsg() {
return psg;
}
// 각 필드의 접근자 메소드 정의.
public void Setcom(String scom) {
company = scom;
}
public void Setmo(String smo) {
model = smo;
}
public void Setpsg(int spsg) {
psg = spsg;
}
// 각 필드의 설정자 메소드 정의.
public static int getPlanes() {
return count;
}// 정적 변수를 반환하는 정적 메소드 정의.
}
public class PlanTest {
public static void main(String args[]) {
Plane p1 = new Plane("Asisna", "co-22", 500);
Plane p2 = new Plane("Jeju", "S1027");
Plane p3 = new Plane("k-12");
Plane p4 = new Plane(); // 여러 객체 생성.
p1.Setpsg(400); // 설정자 호출.
System.out.println(p1.Getpsg()); // 접근자 호출.
System.out.println(p3.Getmo()); // 인자를 받지 않는 생성자는 NULL.
System.out.println(Plane.count); // 정적 메소드 ‘count’ 호출.
}
}
class Plane {
private String company;
private String model;
private int psg;
public static int count = 0;
public Plane(String company, String model, int psg) {
this.company = company;
this.model = model;
this.psg = psg; // 필드를 정의.
count++; // 정적 변수 정의.
}
public Plane(String company, String model) {
this(company, model, 0);
}
public Plane(String company) {
this(company, "\0", 0);
}
public Plane() {
this("\0", "\0", 0);
} // 여기까지 생성자 중복 정의.
public String Getcom() {
return company;
}
public String Getmo() {
return model;
}
public int Getpsg() {
return psg;
}
// 각 필드의 접근자 메소드 정의.
public void Setcom(String scom) {
company = scom;
}
public void Setmo(String smo) {
model = smo;
}
public void Setpsg(int spsg) {
psg = spsg;
}
// 각 필드의 설정자 메소드 정의.
public static int getPlanes() {
return count;
}// 정적 변수를 반환하는 정적 메소드 정의.
}
public class PlanTest {
public static void main(String args[]) {
Plane p1 = new Plane("Asisna", "co-22", 500);
Plane p2 = new Plane("Jeju", "S1027");
Plane p3 = new Plane("k-12");
Plane p4 = new Plane(); // 여러 객체 생성.
p1.Setpsg(400); // 설정자 호출.
System.out.println(p1.Getpsg()); // 접근자 호출.
System.out.println(p3.Getmo()); // 인자를 받지 않는 생성자는 NULL.
System.out.println(Plane.count); // 정적 메소드 ‘count’ 호출.
}
}
4] 실행 결과
댓글 없음:
댓글 쓰기