삼성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
반응형