클래스정의 및 인스턴스(객체) 생성 (예제1 + 예제2) ¶
HelloWorld.java ¶
~cpp import javax.swing.JOptionPane; public class HelloWorld { private String name; public HelloWorld() { name = "noname"; } public void setName(String n) { name = n; } public void sayHello() { JOptionPane.showMessageDialog(null, "Hello, World!" + " " + name); } public static void main(String[] args) { HelloWorld hello1 = new HelloWorld(); hello1.setName("세환"); hello1.sayHello(); HelloWorld hello2; hello2 = hello1; hello2.sayHello(); } }
변수 및 메소드의 접근제어 (예제1 + 예제2) ¶
Point.java ¶
~cpp public class Point { private int x, y; public Point() { } public void setX(int xValue) { x = xValue; } public void setY(int yValue) { y = yValue; } public int getX() { return(x); } public int getY() { return(y); } public void move(int xValue, int yValue) { x += xValue; y += yValue; } }
Circle.java ¶
~cpp import javax.swing.*; class Circle { private Point middlePoint = new Point(); private int width; private int height; private String info = ""; public Circle() { } public void setData(int xValue, int yValue, int width, int height) { middlePoint.setX(xValue); middlePoint.setY(yValue); this.width = width; this.height = height; } public void setInfo() { info += "Circle x : " + middlePoint.getX() + "\n" + "Circle y : " + middlePoint.getY() + "\n" + "Circle width : " + width + "\n" + "Circle height : " + height + "\n"; } public void draw() { setInfo(); JOptionPane.showMessageDialog(null, info); } public void move(int xValue, int yValue) { middlePoint.move(xValue, yValue); } public void change(int xValue, int yValue, int width, int height) { move(xValue, yValue); this.width = width; this.height = height; } }
Line.java ¶
~cpp import javax.swing.JOptionPane; public class Line { private Point left_top = new Point(); private Point right_bottom = new Point(); private String info = ""; public Line() { } public void setData(int p1_x, int p1_y, int p2_x, int p2_y) { left_top.setX(p1_x); left_top.setY(p1_y); right_bottom.setX(p2_x); right_bottom.setY(p2_y); } public void setInfo() { info += "직선" + "\n" + "시작점의 x 좌표 : " + left_top.getX() + "\n" + "시작점의 y 좌표 : " + left_top.getY() + "\n" + "끝점의 x 좌표 : " + right_bottom.getX() + "\n" + "끝점의 y 좌표 : " + right_bottom.getY() + "\n"; } public void draw() { setInfo(); JOptionPane.showMessageDialog(null, info); } public void move(int xValue, int yValue) { left_top.move(xValue, yValue); right_bottom.move(xValue, yValue); } }
Rectangle.java ¶
~cpp import javax.swing.JOptionPane; public class Rectangle { private Point left_top = new Point(); private Point right_bottom = new Point(); private double area; private String info = ""; public Rectangle() { } public void setData(int p1_x, int p1_y, int p2_x, int p2_y) { left_top.setX(p1_x); left_top.setY(p1_y); right_bottom.setX(p2_x); right_bottom.setY(p2_y); setArea(); } public void setArea() { area = Math.abs(right_bottom.getX() - left_top.getX()) * Math.abs(left_top.getY() - right_bottom.getY()); } public void setInfo() { info += "사각형" + "\n" + "left 좌표 : " + left_top.getX() + "\n" + "top 좌표 : " + left_top.getY() + "\n" + "right 좌표 : " + right_bottom.getX() + "\n" + "bottom 좌표 : " + right_bottom.getY() + "\n" + "area : " + area; } public void draw() { setInfo(); JOptionPane.showMessageDialog(null, info); } public void move(int xValue, int yValue) { left_top.move(xValue, yValue); right_bottom.move(xValue, yValue); } }
MyPictureFrame.java ¶
~cpp class MyPictureFrame { private Circle circle = new Circle(); private Line line = new Line(); private Rectangle rect = new Rectangle(); public MyPictureFrame() { circle.setData(100,100,50,50); circle.draw(); line.setData(12, 34, 56, 78); line.move(100, 100); line.draw(); rect.setData(100, 200, 300, 400); rect.move(50, 50); rect.draw(); } public static void main(String[] args) { MyPictureFrame frame = new MyPictureFrame(); } }