实习6

任务:

1.优化:面向对象编程1-15课

总结:       

①枚举类型的使用。——自定义的数据类型,在命名空间下使用,关键字enum。如星期、性别、RPG人物、切水果中水果类型等可以自定义,规范化。

②结构体类型。——用来封装一些小型变量数据,比如保存一个人的基本信息。和对象很类似。定义如下

  public struct Person
    {
        public string name ;
        public int age ;
        public Gender gender ;
        public string address ;
    }


  class Program
    {
        static void Main(string[] args)
        {
            //保持人的基本信息,姓名,年龄,性别,地址
            Person hanleeRao = new Person();
            hanleeRao.name = "hanleerao";
            hanleeRao.age = 23;
            hanleeRao.gender = Gender.男;
            hanleeRao.address = "深圳";
        }
    }

③类:根据不同特征分类,描述的是这类食物的特征(字段、属性、方法)

④对象:描述一个具体的个体,也就是对象,一定是具体的。通过类实例化出来的就是对象(类名  对象名=new 类名();)

⑤三种方法的学习(普通方法、构造方法、析构方法)

⑥创建一个类要注意的地方:一、根据说给信息,分析类总包括哪些字段、那些方法,列出来。二、通过分析,抽象出有哪些共有部分,抽取出来作为一个父类。三、通过父类,之类可以继承,共享父类资源,达到优化代码结构,提高代码复用性,为多态提供前提。

⑦继承之构造方法。父类:空构造方法、有产构造方法。

子类:

       public AiLuoKe(...):base(...)前后对应父类方法的传入参数

⑧继承之成员继承。   子类继承父类:字段。base.字段名。        属性。base.属性名       方法,构造方法。base()



任务:
2. lua40-50课
总结:

①元表的学习。——元表是用来定义一些方法,改变table的行为。

             mytable=setmetatable(mytable,mymetatable)

__index元方法,用来访问不存在索引是调用         __newindex用来对添加新数据时使用。    +-*/操作对应的方法,对应的操作在菜鸟教程网站。

②                               协同程序(coroutine)任一指定时刻只能有一个协同程序运行(由程序员控制这么进行的)

线程,可以同时多个运行,(用CPU控制调用,和电脑核数有关)

③定义、启动、暂停、继续协同程序的方法:

--定义

co=coroutine.create(

       function(a,b)                      --匿名函数

          print(a+b)

          coroutine.yield()

          print(a-b)

       end

)

--启动协程

coroutine.resume(co,20,30)       --指定启动的协程,给匿名函数赋初值

print()

coroutine.resume(co)               不用传递参数






任务:
3.优化:弹窗加入打开、关闭效果
总结:

①为防止在加载前使用打开弹窗动画,需要用callback来调用动画。

function this.Show(_title,_text)
    if this.gameObject == nil then
        local loadHandler = LoadResHandler.New()
        loadHandler.resPath = "common/PVPpopoverBox"


        loadHandler.callback = function ()
          --界面加载完毕,动画特效
        DialogAnimTool.OpenWindowAnim(this.gameObject,nil)
        end


        UISys.Instance:LoadUIAsync(loadHandler)        
    else
        this.gameObject:SetActive(true)
        DialogAnimTool.OpenWindowAnim(this.gameObject,nil)
        this.SetLabel()
    end
    this.isOverlapMainUI = true  --
    this:RegistUSRelation() --调用ui_base中的US关系注册,prefab的根节点执行
end


总结:多对lua代码框架进行研究,在套模板的时候,也要明白模板的原理。同时,在写代码的时候,也要注意设计模式的几大原则。注意代码风格,养成良好的习惯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值