zoukankan      html  css  js  c++  java
  • UML解析Hello World

    得在学习C语言的时候,教科书上的第一个程序就是叫Hello world,一个在屏幕上简单地打印出“Hello world!”语句的例子。在系统的学习UML语言之前我们来看一个简单的例子,让大家有一个系统的认识。
    在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,在他的实现中调用了另一个方法drawString来输出“Hello World!”。
    我们可以很直接地为这个程序用UML建立模型。如图2-1。

    图2-1
    图2-1表达了最基本的HelloWorld模型,但它还有很多东西没有表示出来。在我们的程序中Applet类和Graphics类的使用是不相同的。Applet用作HelloWorld类的父类,而Graphics类用在方法paint的实现中。在UML模型中可以将这些关系表示为图2-2:

    图2-2
    在图2-2的类关系图中,我们用简单的矩行图标表示类Applet和Graphics类,没有将它们的属性和方法显露出来是为了简化。图中的空心箭头表示HelloWorld类是Applet类的子类,代表一般化。HelloWorld和Graphics之间的虚线箭头表示依赖关系,表示HelloWorld类使用了Graphics类。
    到这里或许你认为已结束了,其实不然,如果认真研究java库中的Applet类和Graphics类会发现他们都是一个庞大的继承关系中的一部分。追踪Applet的实现可以得到另外一个类图,如图2-3所示:

    图2-3

  • 相关阅读:
    问题大全
    redis学习笔记-03:redis安装
    redis学习笔记-02:为什么使用NoSQL数据库
    redis学习笔记-01:redis简介
    docker学习笔记-05:Docker安装mysql和redis
    docker学习笔记-06:自定义DockerFile生成镜像
    docker学习笔记-05:DockerFile解析
    全栈之路-杂篇-JPA多对多配置分析
    全栈之路-小程序API-JWT令牌详细剖析与使用
    全栈之路-小程序API-Json数据类型的序列化与反序列化
  • 原文地址:https://www.cnblogs.com/AngelLee2009/p/1549434.html
Copyright © 2011-2022 走看看