수업 문제(국비 지원)/Java
[JAVA] 2022.09.01 - java 클래스 생성자
by byeolsub
2023. 4. 28.
문제 :
Coin 클래스와 구동 클래스 구현하기
- Coin 클래스
멤버 변수 : int side(앞면 : 0, 뒷면:1), sno(동전번호), cnt(동전번호 생성을 위한 클래스변수)
생성자 : () : 매개변수 없는 생성자 앞면으로 등록
(int side) : side(0|1)로 동전의 면을 결정
멤버 메서드 : void flip()
Math.random() 메서드를 사용하여 side를 결정 => 0,1만 가능
- 구동 클래스
Coin 클래스의 객체를 10개 생성하기
객체 생성시, 동전 번호를 입력하고 flip()메서드를 이용하여 각각의 동전이 앞면인지
뒷면인지 여부를 출력하기
[결과]
1번동전 : 앞면
2번동전 : 뒷면
.....
전체 앞면 동전의 갯수 :
전체 뒷면 동전의 갯수 :
class Coin{
int side;
int sno;
static int cnt = 1;
Coin(int side){
this.side = side;
this.sno = cnt++;
}
Coin(){
this.side = 0;
this.sno = cnt++;
}
void flip(){
System.out.println(sno+"번 동전 : "+((side<1)?"앞면":"뒷면"));
}
}
/**
* Test1
*/
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
int i =0;
int sum1=0;
int sum2 =0;
Coin [] c = new Coin [10];
for(i=0; i<c.length;i++){
c[i] = new Coin((int)(Math.random()*2));
}
for(i=0; i<c.length;i++){
c[i].flip();
}
for(i=0; i<c.length;i++){
if(c[i].side==0){
sum1++;
}else {
sum2++;
}
}
System.out.println("전체 앞면 동전의 개수 : "+sum1);
System.out.println("전체 뒷면 동전의 개수 :"+sum2);
}
}
class Coin {
int side;
int sno;
static int cnt;
Coin(int a){
this.side = side;
sno = ++cnt; // 제일 위에 한번만 써도 가능함. 앞에 ++해주면 숫자 1번부터 출력됨.
}
Coin() {
this.side = 0;
}
void flip() {
System.out.println(sno+"번 동전: "+((side<1)?"앞면":"뒷면"));
}
}
public class Test1 {
public static void main(String[] args) {
int sum1 = 0;
int sum2 = 0;
Coin [] c = new Coin[10];
for(int i=0;i<c.length;i++) {
c[i] = new Coin((int)(Math.random()*2));
c[i].flip();
if(c[i].side==0)
sum1++;
else sum2++;
}
System.out.println("전체 앞면 동전의 개수: "+sum1);
System.out.println("전체 뒷면 동전의 개수: "+sum2);
}
}