프로그래밍

 3198, 1/160 회원가입  로그인  
   lmi
   http://super-user.co.kr
   java 클래스 관련 문의드립니다. -기초-

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3072 [복사]


class Point {
   int x, y;
   void setX(int xValue) { x = xValue; }
   void setY(int yValue) { y = yValue; }
   int getX() { return(x); }
   int getY() { return(y); }
   void move(int xValue, int yValue) {
      x += xValue;
      y += yValue;
   }
}
class Circle {
   Point center = new Point();
   int radius;
   void setRadius(int r) { radius = r; }
   void setCenter(int x, int y) {
      center.setX(x);
      center.setY(y);
   }
   int getRadius() { return(radius); }
   int getCenterX() { return(center.getX()); }
   int getCenterY() { return(center.getY()); }
   double getArea() { return(Math.PI * radius * radius); }
}
class ClassTest {
   public static void main(String args[]) {
      Circle c1 = new Circle(), c2;
      c2 = new Circle();
      c1.setRadius(5);
      c1.setCenter(10, 10);
      c2.setRadius(10);
      c2.setCenter(20, 20);
      System.out.println("c1(x,y,r): (" + c1.getRadius() + ","
                                        + c1.getCenterX() + ","
                                        + c1.getCenterY() + ")");
      System.out.println("c2(x,y,r): (" + c2.getRadius() + ","
                                        + c2.getCenterX() + ","
                                        + c2.getCenterY() + ")");
   }
}
/*
* Results:
D:\AIIT\JAVA\Working\07>java ClassTest
c1(x,y,r): (5,10,10)
c2(x,y,r): (10,20,20)
D:\AIIT\JAVA\Working\07>
*/

위 내용중 .. Circle c1 = new Circle(), c2; 이부분에서 Circle 인스턴스를 생성하고 c1 클래스 참조 변수가 참조할수 있도록 선언하고 콤마로 c2가 이어지는데 이건 뭥가요..

  Hit : 4263     Date : 2011/06/24 04:33



    
$Zero 그냥 별 의미없는 선언문입니다. 위의 것을 다르게 고쳐보면
Circle c1 = new Circle(), c2 = new Circle();
c1.setRadi....

이렇게 되는거죠 .
이 코드가 책에서 나온건가요 ? 뭔가 체계적이지 않게 작성했다고 볼 수 있네요 .

그냥 c1변수를 선언함과 동시에 인스턴스를 생성해서 참조를 하게 만든거구요 .
c2는 단순히 선언만 한것입니다.

c1만 선언과 동시에 초기화하고 c2는 안하는 게 코드의 가독성을 떨어지게 만든거지요 .
어렵게 생각하실거 없습니다.
2011/06/25