applet 5 class_inheritance

6
การออกแบบ Class แบบ Inheritance การออกแบบ Class แบบ Inheritance คือ ........................................................................................................................... ............................................................................................................................................................................................ ตัวอยางการออกแบบ Class แบบ Inheritance จากรูป สามารถอธิบายไดวา .................................................................................................................................................. ............................................................................................................................................................................................. Superclass คือ ................................................................................................................................................................ Subclass คือ ................................................................................................................................................................ ตัวอยางการสราง Class แบบ Inheritance Class Point ขั้นตอนที1 สราง Class Point ขึ้นมา public class Point { }// end class Point ขั้นตอนที2 สราง Attribute ตางๆ ตามที่ไดออกแบบไว private int x = 10; private int y = 10; private static int count = 0; ขั้นตอนที3 สราง Constructor method ตางๆ ตามที่ไดออกแบบไว // no-argument constructor public Point() { setX(0); setY(0); count++; } // constructor public Point( int xValue, int yValue ) { setX(xValue); setY(yValue); count++; } Constructor method 2 method นี้มีไวเพื่อ ............................................................................................................................ ............................................................................................................................................................................................. Page 1 of 6 ssc Note :: .....................................................................

Upload: nitigan-nakjuatong

Post on 28-Jun-2015

244 views

Category:

Documents


1 download

DESCRIPTION

class_inheritance

TRANSCRIPT

Page 1: Applet 5 class_inheritance

การออกแบบ Class แบบ Inheritance

การออกแบบ Class แบบ Inheritance คือ ...........................................................................................................................

............................................................................................................................................................................................

ตัวอยางการออกแบบ Class แบบ Inheritance

จากรูป สามารถอธิบายไดวา ..................................................................................................................................................

.............................................................................................................................................................................................

Superclass คือ7 ................................................................................................................................................................

Subclass คือ7 ................................................................................................................................................................

ตัวอยางการสราง Class แบบ Inheritance

Class Pointขั้นตอนท่ี 1 สราง Class Point ขึ้นมา

public class Point { }// end class Point

ขั้นตอนท่ี 2 สราง Attribute ตางๆ ตามที่ไดออกแบบไว

! private int x = 10; ! private int y = 10; ! private static int count = 0;

ขั้นตอนท่ี 3 สราง Constructor method ตางๆ ตามที่ไดออกแบบไว

! // no-argument constructor! public Point() {! ! setX(0);! ! setY(0);! ! count++;! }! // constructor! public Point( int xValue, int yValue ) {! ! setX(xValue);! ! setY(yValue);! ! count++;! }

Constructor method 2 method นี้มีไวเพ่ือ ............................................................................................................................

.............................................................................................................................................................................................

Page 1 of 6

ssc

Note :: .....................................................................

Page 2: Applet 5 class_inheritance

ขั้นตอนท่ี 4 สราง “set” method ตางๆ ตามที่ไดออกแบบไว

! // set x in coordinate pair! public void setX( int xValue ) {! ! x = xValue; // no need for validation! }! // set y in coordinate pair! public void setY( int yValue ) {! ! y = yValue; // no need for validation! }

“set” method 2 method นี้มีไวเพ่ือ ........................................................................................................................................

.............................................................................................................................................................................................ขั้นตอนท่ี 5 สราง “get” method ตางๆ ตามที่ไดออกแบบไว

! // return x from coordinate pair! public int getX() {! ! return x;! }! // return y from coordinate pair! public int getY() {! ! return y;! }

“get” method 2 method นี้มีไวเพ่ือ .......................................................................................................................................

.............................................................................................................................................................................................ขั้นตอนท่ี 6 สราง Facilities method ตางๆ ตามที่ไดออกแบบไว

! public static int getCount() {! ! return count;! }! // return String representation of Point object! public String toString() {! ! return "[" + getX() + ", " + getY() + "]";! }! // finalizer! protected void finalize() {! ! count--;! }

Facilities method 3 method นี้มีไวเพ่ือ .................................................................................................................................

.............................................................................................................................................................................................

.............................................................................................................................................................................................

ขั้นตอนท่ี 7 ทำการ Compile

โดยใชคำสั่ง ..........................................................................................................................................................................

ผลลัพธที่ได ..........................................................................................................................................................................ขั้นตอนท่ี 8 ทดสอบการทำงานของ Class Point เพียง Class เดียวกอน

1) สราง testPoint.html เอาไวสำหรับ Run2) สราง testPoint.java เอาไวทดสอบ Class Point

ตัวอยางหนาจอการทำงาน (http://202.44.47.108/~ssc/inheritance/testPoint.html)

Page 2 of 6

Page 3: Applet 5 class_inheritance

testPoint.html<html>! <body> <h1>Test Class Point</h1> <h3>Create by: 5366261111 Supaporn Simcharoen IT1-RC</h3>! ! <applet code="testPoint.class" height="200" width="400">! ! </applet>! </body></html>

testPoint.javaขั้นตอนท่ี 1 สราง Class พรอมกับ import package ที่ตองใช และสราง Method ที่นาจะมี

import java.awt.*;import javax.swing.*;

public class testPoint extends JApplet{! public void init(){! }! public void paint(Graphics g) {! }}

method init มีไวเพ่ือ .............................................................................................................................................................

method paint มีไวเพ่ือ ..........................................................................................................................................................

ขั้นตอนท่ี 2 กำหนดคาเริ่มตนที่ method init พรอมกับตัวแปรตางๆ ที่ตองใช

! int num;! Point p[] ;

public void init()! {! ! String input; // user's input! ! // obtain user's choice! ! input = JOptionPane.showInputDialog("Enter number of point : " );! ! num = Integer.parseInt( input ); // convert input to int! ! p = new Point[num];! ! for(int n = 0 ; n < p.length ; n++) {! ! ! int x = 5 + (int) (Math.random() * 400);! ! ! int y = 5 + (int) (Math.random() * 200);! ! ! p[n] = new Point(x, y);! ! }! } // end method init

Note:: ..................................................................................................................................................................................

.............................................................................................................................................................................................

ขั้นตอนท่ี 3 ทดลอง Compile และ Run

วิธีในการ Run คือ .................................................................................................................................................................

ขั้นตอนท่ี 4 กำหนดการทำงานใน method paint

! // draw shapes on applet's background! public void paint( Graphics g )! {! ! super.paint( g ); //call paint method inherited from JApplet! ! for ( int n = 0; n < p.length; n++ ) {! ! ! // set color! ! ! g.setColor( new Color(255,0,0) );! ! ! // plot point! ! ! g.drawLine( p[n].getX(), p[n].getY(), p[n].getX(), p[n].getY() );! ! } // end for! ! showStatus("จำนวน Object : "+ Point.getCount());! } // end method paint

Note:: ..................................................................................................................................................................................

.............................................................................................................................................................................................

ขั้นตอนท่ี 5 ทดลอง Compile และ Run อีกครั้ง

Page 3 of 6

Page 4: Applet 5 class_inheritance

Class Rectangleขั้นตอนท่ี 1 สราง Class Rectangle ขึ้นมา

public class Rectangle extends Point {}

Note:: ..................................................................................................................................................................................ขั้นตอนท่ี 2 สราง Attribute ตางๆ ตามที่ไดออกแบบไว

! private int width = 10;! private int height = 10;! private static int count = 0;

ขั้นตอนท่ี 3 สราง Constructor method ตางๆ ตามที่ไดออกแบบไว

! public Rectangle() {! }! public Rectangle(int x, int y, int w, int h ) {! ! super(x,y);! ! setWidth(w);! ! setHeight(h);! }

super(x,y); คือ .....................................................................................................................................................................

Constructor method 2 method นี้มีไวเพ่ือ ............................................................................................................................

............................................................................................................................................................................................

ขั้นตอนท่ี 4 สราง “set” method ตางๆ ตามที่ไดออกแบบไว

! public void setWidth(int w) {! ! width = w;! }! public void setHeight(int h) {! ! height = h;! }

“set” method 2 method นี้มีไวเพ่ือ ........................................................................................................................................

.............................................................................................................................................................................................ขั้นตอนท่ี 5 สราง “get” method ตางๆ ตามที่ไดออกแบบไว

! public int getWidth() {! ! return width;! }! public int getHeight() {! ! return height;! }! public int getArea() {! ! return width*height;! }! public static int getCount() {! ! return count;! }

“get” method 4 method นี้มีไวเพ่ือ .......................................................................................................................................

.............................................................................................................................................................................................ขั้นตอนท่ี 6 สราง Facilities method ตางๆ ตามที่ไดออกแบบไว

! protected void finalize() {! ! count--;! }! public String toString() {! ! return "Point[x,y]Left = " + super.toString() + "; Width = " +! ! getWidth() + "; Height = " + getHeight();! }

Facilities method 2 method นี้มีไวเพ่ือ .................................................................................................................................

.............................................................................................................................................................................................ขั้นตอนท่ี 7 ทำการ Compile

โดยใชคำสั่ง ..........................................................................................................................................................................

ผลลัพธที่ได ..........................................................................................................................................................................Page 4 of 6

Page 5: Applet 5 class_inheritance

ขั้นตอนท่ี 8 ทดสอบการทำงานของ Class Rectangle1) สราง testRectangle.html เอาไวสำหรับ Run2) สราง testRectangle.java เอาไวทดสอบ Class Rectangle

ตัวอยางหนาจอการทำงาน (http://202.44.47.108/~ssc/inheritance/testRectangle.html)

testRectangle.html<html>! <body> <h1>Test Class Rectangle</h1> <h3>Create by: 5366261111 Supaporn Simcharoen IT1-RC</h3>! ! <applet code="testRectangle.class" height="250" width="400">! ! </applet>! </body></html>

testRectangel.javaขั้นตอนท่ี 1 สราง Class พรอมกับ import package ที่ตองใช และสราง Method ที่นาจะมี

import java.awt.*;import javax.swing.*;

public class testRectangle extends JApplet{! public void init(){! }! public void paint(Graphics g) {! }}

ขั้นตอนท่ี 2 กำหนดคาเริ่มตนที่ method init พรอมกับตัวแปรตางๆ ที่ตองใช

! int x, y;! Rectangle r ;

! public void init()! {! ! String input; // user's input! ! // obtain user's choice! ! input = JOptionPane.showInputDialog("Enter value x of left point : " );! ! x = Integer.parseInt( input ); // convert input to int! ! input = JOptionPane.showInputDialog("Enter value y of left point : " );! ! y = Integer.parseInt( input ); // convert input to int! ! int w = 10 + (int) (Math.random() * 280);! ! int h = 10 + (int) (Math.random() * 180);! ! r = new Rectangle(x, y, w, h);! } // end method init

Note:: ..................................................................................................................................................................................

.............................................................................................................................................................................................

ขั้นตอนท่ี 3 ทดลอง Compile และ Run

Page 5 of 6

Page 6: Applet 5 class_inheritance

ขั้นตอนท่ี 4 กำหนดการทำงานใน method paint

! // draw shapes on applet's background! public void paint( Graphics g )! {! ! super.paint( g ); //call paint method inherited from JApplet! ! // set color! ! g.setColor( Color.ORANGE );! ! g.drawRect(r.getX(), r.getY(), r.getWidth(),r.getHeight() );! ! g.setColor( Color.BLUE );! ! g.drawString( "Point Left : " + r.getX() + ", " + r.getY(), r.getX(), r.getY());! ! g.drawString( "Width : " + r.getWidth() , r.getX(), r.getY() + 15);! ! g.drawString( "Height : " + r.getHeight() , r.getX(), r.getY() + 30);! ! g.drawString( "Area : " + r.getArea() , r.getX(), r.getY() + 45);! } // end method paint

Note:: ..................................................................................................................................................................................

.............................................................................................................................................................................................

ขั้นตอนท่ี 5 ทดลอง Compile และ Run อีกครั้ง

การบานแกไขการทำงานของ testRectangle ใหสามารถรับคาจำนวนของ Rectangle ที่จะสรางได

ตัวอยางหนาจอการทำงาน (http://202.44.47.108/~ssc/inheritance-hw/testRectangle.html)

Page 6 of 6