軟件設(shè)計師UML知識點:第二章Hello-World

字號:

記得在學(xué)習(xí)C語言的時候,教科書上的第一個程序就是叫Hello world,一個在屏幕上簡單地打印出“Hello world!”語句的例子。在系統(tǒng)的學(xué)習(xí)UML語言之前我們來看一個簡單的例子,讓大家有一個系統(tǒng)的認(rèn)識。
    在java中一個在瀏覽器中顯示“Hello World!”的Applet代碼如下:
    import java.awt.Graphics;
    class HelloWorld extends java.applet.Applet{
    public void paint( Graphics g ){
    g.drawString("Hello World!", 10,10 );
    }
    }
    代碼的第一行:
    import java.awt.Graphics;
    使得程序可以使用Graphics類。前綴 java.awt指出了類Graphics所在的包。
    第二行代碼:
    class HelloWorld extends java.applet.Applet{
    從Applet類派生出新的類HelloWorld,Applet類在java.applet包中。
    接下來的三行代碼:
    public void paint( Graphics g ){
    g.drawString("Hello World!", 10,10 );
    }
    聲明了類HelloWorld的方法paint,在他的實現(xiàn)中調(diào)用了另一個方法drawString來輸出“Hello World!”。
    我們可以很直接地為這個程序用UML建立模型。如圖2-1。
    圖2-1表達(dá)了最基本的HelloWorld模型,但它還有很多東西沒有表示出來。在我們的程序中Applet類和Graphics類的使用是不相同的。Applet用作HelloWorld類的父類,而Graphics類用在方法paint的實現(xiàn)中。在UML模型中可以將這些關(guān)系表示為圖2-2:
    在圖2-2的類關(guān)系圖中,我們用簡單的矩行圖標(biāo)表示類Applet和Graphics類,沒有將它們的屬性和方法顯露出來是為了簡化。圖中的空心箭頭表示HelloWorld類是Applet類的子類,代表一般化。HelloWorld和Graphics之間的虛線箭頭表示依賴關(guān)系,表示HelloWorld類使用了Graphics類。
    到這里或許你認(rèn)為已結(jié)束了,其實不然,如果認(rèn)真研究java庫中的Applet類和Graphics類會發(fā)現(xiàn)他們都是一個龐大的繼承關(guān)系中的一部分。追蹤Applet的實現(xiàn)可以得到另外一個類圖