삼성SDS_멀티캠퍼스/Java

8일 차 중간점검(생성자)

박성우기 2015. 9. 16. 14:59
반응형

import java.util.Scanner;


class Point {


private int x;

private int y;


@Override

public String toString() {

return "Point [x=" + x + ", y=" + y + "]";

}


public int getX() {

return x;

}


public void setX(int x) {

this.x = x;

}


public int getY() {

return y;

}


public void setY(int y) {

this.y = y;

}


public Point() {


x = 10;

y = 20;

}


public Point(int num, int num2) {


Scanner scan = new Scanner(System.in);


System.out.println("x 좌표 정보를 입력하세요");

num = scan.nextInt();

System.out.println("y 좌표 정보를 입력하세요");

num2 = scan.nextInt();


setPoint(num, num2);


}


public void setPoint(int i, int j) {

this.x = i;

this.y = j;


}


}





public class Test4 {

public static void main(String[] args) {
Point pt = new Point();
Point pt2 = new Point(20,50);
System.out.println(pt);
System.out.println(pt2);
}

}












------------------------------------------------------------------------------------------------



문제 : Circle 클래스 작성

Circle 클래스는 상태정보로 원점의 좌표와 반지름의 크기를 가짐

원점의 좌표는 만들어둔 Point자료형을 활용

반지름의 크기는 정수로


기본생성자/매개변수 받는 생성자
접근자/설정자(getter/setter)
toString 





class Circle {

private int radius; // 반지름
private Point x; // Point 클래스의 좌표

public int getRadius() {
return radius;
}

public void setRadius(int radius) {
this.radius = radius;
}

public Point getX() {
return x;
}

public void setX(Point x) {
this.x = x;
}

@Override
public String toString() {
return "Circle [radius=" + radius + ", x=" + x + "]";
}

public Circle() {

radius = 3;
x = new Point(3, 5);

}

public Circle(int radius, Point x) {

setCircle(radius, x);
}

public void setCircle(int radius, Point x) {

this.radius = radius;
this.x = x;

}

}



import java.util.Scanner;

public class Test5 {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
int i, j;

System.out.println("x좌표 값을 입력하세요");
i = scan.nextInt();
System.out.println("y좌표 값을 입력하세요");
j = scan.nextInt();

Point x = new Point(i, j);

Circle cir = new Circle();
Circle cir2 = new Circle(51, x);

System.out.println(cir);
System.out.println(cir2);

}

}

















응용하면 이것도 가능하다




===============================================

import java.util.Scanner;

public class Test5 {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);
int i, j;

System.out.println("x좌표 값을 입력하세요");
i = scan.nextInt();
System.out.println("y좌표 값을 입력하세요");
j = scan.nextInt();

Point x = new Point(i, j);

Circle cir = new Circle();
Circle cir2 = new Circle(51, x);

// cir2.setX(new Point(5,7)); // Circle의 객체인 cir2를 불러내고 cir2의 Point 객체인
  // x를 불러내서 매개변수를 5,7로 설정

System.out.println(cir);
System.out.println(cir2);
System.out.println();

cir2.getX().setX(20); // cir2의 Point 객체인 x를 읽어와서 x의 값을 20으로 세팅
cir2.getX().setY(50); // cir2의 Point 객체인 x를 읽어와서 y의 값을 50으로 세팅
x.setX(100);  // Point의 객체인 x에 매개변수인 x를 100으로 세팅
System.out.println(cir);
System.out.println(cir2);
System.out.println();

cir2.getX().setX(30); // cir2의 Point 객체인 x를 읽어와서 x의 값을 30으로 세팅
System.out.println(cir);
System.out.println(cir2);

}

}







출처: 삼성SDS멀티캠퍼스 
강사: 홍승길
Email : iccack70@gmail.com

















반응형