阳光石油网|石油技术交流|石油人论坛

 找回密码
 欢迎注册
查看: 1052|回复: 1

[基本理论] 建模与编程3

[复制链接]
  • TA的每日心情
    慵懒
    2012-11-8 10:13
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2016-1-31 23:10:11 | 显示全部楼层 |阅读模式

    马上注册,下载丰富资料,享用更多功能,让你轻松玩转阳光石油论坛。

    您需要 登录 才可以下载或查看,没有账号?欢迎注册

    x
    希望以下分享可以对研究建模软件的人一些启发。我本人已经编写了所有的建模算法,也写出了几款建模软件。谢谢大家。

    在建模编程的时候,不能把河道名称赋予河道数目,这是个原则,譬如string name = jianmo.shumu 不对
    也不能把河道的宽度给天然堤宽度用,因为河道的宽度是private私有的,而不是天然堤宽度用的 。

    public string channelwidth(int amount)
    {
      if (amount>=pp)
       {
       return  levee width;
        }
      else
      {
      return levee width+channelwidth;
      }

    }

    实际上,我们如果封装,就可以让河道对天然堤隐藏一些信息,便于我们后面更复杂的建模算法出错。

    封装就是隐藏不同的地质体特有的信息,防止错误调用。

    实际上,如果我们把地质类里的声明变量封装,那么我们展示给其它类的就是地质类里的一些常用的方法和属性,因为可能那些变量根本不想让别的类直接修改。而我只想利用这些方法。譬如,天然堤类不能直接修改河道类的宽度,但是可以调用河道的计算天然堤宽度与河道宽度关系函数的方法,这样的话就合理了。要用正确的形式获取字段信息。

          为什么这么说,让我举一个例子吧。
    class channel
    {
    private int width
    private int thickness

    public double tiji(int width, int thickness)
    {
    double tiji1=width*thickness
    return tiji1;
    }

    看上面的河道类,里面存储了信息,然后可以计算体积,如果我不封装字段,那么其他类就可以改字段,这会影响我的tiji()方法,实际上,我只允许其他人调用我的tiji()方法。

    否则如果我只改了宽度,但是我的tiji并不知道,所以体积没有变化。


    }

    这样说吧,假如我设置了一个按钮。

    farmer myfarmer = new farmer();我先设置一个对象
    myfarmer.numberof channel=10;  实际上这个numberofchannel是一个特殊的万一

    int howmanybags=myfarmer。bagsoffeed;这时候因为setfagnfa一斤获取了,可以用

    myfarmer。numberofcows=20; 再次设置存入方法,传入20.而且还会运行set中的其他东西。实际上,就是说我们可以把某些东西一分为二的看,譬如,我可以让天然堤类知道河道的宽度,但是不允许修改他,为什么,我可以通过河道的宽度估算天然堤宽度。
    所以我这样写
    private int tianrandiwidth;

    public int tianrandishuxing 这个不是函数,是字段,没有()东西,字段里有获取和存取。

    {
    get
    {
    return tianrandiwidth;
    }

    }

  • TA的每日心情
    无聊
    2017-2-26 17:13
  • 签到天数: 301 天

    [LV.8]以坛为家I

    发表于 2016-2-2 22:09:39 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 欢迎注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|阳光石油网 ( 鲁ICP备2021003870号-1 )

    GMT+8, 2024-12-23 10:03 , Processed in 0.050901 second(s), 20 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表