U E D R , A S I H C RSS

Java Study2004/클래스상속

. . .
(superclass) (subclass) .클 .
. 한 행 . . Object . . .
. Button Button . Button .
subclassing.

, . .
  • .
  • 한 클 . .
Motorcycle클 Car . Car Motorcycle . . . , Object Vehicle PersonPoweredVehicle EnginePoweredVehicle . EnginePoweredVehicle Motorcycle, Car, Truck . make color Vehicle 클 .

, . 한 템플 .
. . . . .
? . . (overriding) .

Point 클

  • x,y
  • x,y
  • x ,
  • y ,

  • ~cpp 
     
    import javax.swing.JOptionPane;
    
    public class Point {
    
    	private int x;
    
    	private int y;
    
    	public Point() {
    
    	}
    
    	public Point(int aX, int aY) { // .
    		this.x = aX;
    		y = aY;		
    	}
    
    	public int getX() {
    		return x;
    	}
    
    	public int getY() {
    		return y;
    	}
    
    	public void setX(int Ax) {
    		x = Ax;
    	}
    
    	public void setY(int Ay) {
    		y = Ay;
    	}
    
    	public String getName() {
    		return "Point";
    	}
    
    	public void Say(String str) {
    		JOptionPane.showMessageDialog(null, str);
    	}
    
    	public void Say(int temp) {
    		String str = Integer.toString(temp);
    
    		JOptionPane.showMessageDialog(null, str);
    	}
    
    	public static void main(String[] args) {
    		Point P1 = new Point(20,20);
    		Point P2 = new Point(10,10);
    		//RECTANGLE
    		Rectangle p = new Rectangle(P1,P2);
    //		System.out.println(p.getArea());
    		//circle
    		Circle c = new Circle(P1,P2);
    		System.out.println(c.getArea());
    	}	
    }
     

Shape 클

  • x,y, x,y



~cpp 
public class Shape {
	protected Point left_top;
	protected Point right_bottom;
	public String name;
	
	public Shape()
	{
		
	}
	public  Shape ( Point p1 , Point p2)
	{
		left_top =	p1;
		right_bottom = p2;
		name = "Shape";
	}
	public Shape ( int x1, int y1, int x2, int y2)
	{
		this.left_top = new Point(x1,y1);
		this.right_bottom = new Point( x2,y2 );
		name = "Shape";
	}
	
	public double getArea()
	{
		return 0;
	}
	public String getName()
	{
		return name;
	}
}

Circle 클

~cpp public class Circle extends Shape {

	private double radius;

	public Circle() {

	}

	public Circle(Point p1, Point p2) {
		super(p1, p2);
		name = "Circle";
	}

	public Circle(int x1, int y1, int x2, int y2) {
		super(x1, y1, x2, y2);
		name = "Circle";
	}

	public double getArea() {
		if(Math.abs(left_top.getX()-right_bottom.getX()) >= Math.abs(left_top.getY()-right_bottom.getY()))
			radius = Math.abs(left_top.getY()-right_bottom.getY());
		else
			radius = Math.abs(left_top.getX()-right_bottom.getX());
		return Math.PI * radius * radius;
	}

	public String getName() {
		return super.getName();
	}
}

Rectangle 클

~cpp public class Rectangle extends Shape {
	//right_bottom
	//Point left_top
	
	public Rectangle() {

	}

	public Rectangle(Point P1, Point P2) {
		super(P1, P2);
		name = "Rectangle";
	}

	public Rectangle(int x1, int y1, int x2, int y2) {
		super(x1, y1, x2, y2);
		name = "Rectangle";
	}

	public double getArea() {
		return Math.abs(right_bottom.getX()-left_top.getX()) * Math.abs(left_top.getY()-right_bottom.getY());		
	}

}

  • Unit 클
    • HP, , 태(, , , 탑),
    • , , , 탑한( )
    • HP ( ) (ex public void underattack(int aAttackPoint) )

  • (Unit 클 )
    • HP 100, 10,
    • 100
  • (Unit 클 )
    • HP 150, 20,
    • 150
  • , .
  • .

  • java 폴트 ?? 폴트 . -
    • 폴트 ; --iruril
      • 폴트 : type functionName( type A1, type A2, A3 = 0 ); .
  • super() ?? --

    • circle 클 getName super.getName() --iruril
      • ~^^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:32
Processing time 0.0267 sec