资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第11章 MODULE及面向对象,王恒志,11-1,结构化与面向对象,结构化与面向对象,是目前设计程序时最常使用的两种编写概念,11-1-1 结构化程序设计概论,program main,第一层程序代码,do while (.true.),在循环中的程序代码是另外一个模块,end do, 离开循环后回到第一层的程序代码,end program,结构化的程序代码,可以做出“层次的分析”。在没有遇到循环、流程控制时,程序代码是属于同一个层次;进入循环、流程控制时,程序代码则会归类为下一个层次。相同层次的程序代码,可以把它们视为相同的程序模块。,11-1-2 面向对象程序设计概论,面向对象是在做程序代码封装的操作。封装过后的程序代码,在使用上会比较安全。,简单的说,面向对象给程序员两个新的思考方向:,1、为了安全起见,有些数据不应该让外界使用。,2、经过继承来重复使用程序代码。(使用module可以用,类似继承的方法来重复使用程序代码),11-2 再论MODULE,11-2-1 MODULE的结构及功能,1、,MODULE里边可以声明变量,常量,或存放全局变量。,2、,MODULE里边可以定义自定义类型,再经过use的命令来让程序中的每个函数都能使用它。,3、,MODULE里边可以编写函数,在外边调用这些函数时,同样要使用use命令。,4、,MODULE里边的函数,可以使用同一个MODULE中声明的变量,这样可以使得同一个MODELE里的函数可以经过里边的变量来互相传递数据,11-2-2 PUBLIC,PRIVARE,module里边的变量可以通过public和private命令,来区分,成公开使用及私下使用,module bank,implicit none,private money,public LoadMoney, SaveMoney, Report,integer : money = 1000000,end module,在上边的例子里,变量money进过private声明以后,就只,能在module中使用,没有经过private和public来赋值时,,默认的状态为public,11-2-3 USE,编写好module之后,要使用use命令才能让module,外的函数使用module里边的东西。,变量重名问题1,module a,implicit none,integer va,end module,module b,implicit none,integer va,end module,program main,use a,aa=va,use b,implicit none,同时使用多个module,可能遇到变量重,名,在主程序当中,可以临时把module里,边的变量或函数名称改名。,变量重名问题2,module a,implicit none,integer va,vb,vc,end module,module b,implicit none,integer va,vb,end module,program main,use a,only : c=vc,use b,implicit none,11-3 再论INTERFACE,1,1-3-1 同名函数的重载(OVERLOAD),OVERLOAD的意义是:“在程序代码中可以同时拥有多个名称相同,但是参数类型,数目不同的函数,程序会自动根据输入的参数,来决定要调用哪一个函数,
展开阅读全文