一次给自己的测试

  1. 面向对象的特性是?对面向对象的理解?

 

封装继承多态。面向对象:对象是事件的抽象,万物皆对象,在C#中面向是对一个类的抽象。

 

  1. 重写和重载的区别?

重写:在父子之间重写,方法名称、返回值类型、参数列表必须相同。

重载:函数名字相同,参数必须不同与返回值无关。

 

  1. 求一组数的最大公约数,最小公倍数,以及质数。

            int m=2;

            int n=6;

            int max;

            int min;

            min = m < n ? m : n;

            max = m > n ? m : n;

            for (int i = max; i >0; i--)

            {

                if (m % i == 0 && n % i == 0) {

 

                   Console.WriteLine("最大公约" + i);

                    Console.WriteLine("最小公倍"+min*i);

                    break;

                }

 

                

            }

static void Main(string[] args)

        {

 

            for (int i = 2; i < 10; i++)

            {

 

 

                if (st(i))

                {

                    Console.WriteLine(i);

                }

 

            }

 

 

        }

 

        static bool st(int n)

        {

            int m = (int)Math.Sqrt(n);

            for (int i = 2; i <= m; i++)

            {

                if (n % i == 0 && i != n)

                    return false;

            }

            return true;

        }

    }

 

  1. 值类型和引用类型学过哪些有什么区别?

值类型:int ,double,bool,char,enum,struct

引用类型:string 数组 集合arrylist hashtable list dictionary 栈 队列 自定义类 接口 委托

值类型只有一个内存空间重新赋值会被覆盖 存在栈中

引用类型每new一次会开辟一个新的内存空间 存在堆中

 

  1. ArrayListListArray有什么区别。

List:类型是确定的一类,需要指定存储的类型,通过索引来访问,大小不固定。

Array:数组,只能存储一种数据类型,长度固定。

ArrayList:链表,类型不固定,值不确定,长度不固定。

 

  1. interface与抽象类的区别?

接口只能包含方法,属性,和事件的声明。不能有构造函数,也不能有字段,接口也不允许运算符重载。定义中不允许声明成员的修饰符,接口成员都是公有的,可以被多继承。

抽象类:不能被实例化,只能单继承,可以有抽象方法和非抽象方法,可以有字段属性的定义。

  1. 委托是什么?举一个观察者模式的例子?

委托:把方法作为一个参数使用。

猫叫老鼠跑。

猫是观察者,老鼠是被观察者,当猫叫(方法)的时候,老鼠就跑(事件监听)。

 

  1. 学过的访问修饰符有哪些?具体含义。

public 和private修饰字段和方法的时候,表示该字段或者方法能不能通过对象去访问,只有public的才可以通过对象访问,

private(私有的)只能在类模板内部访问。

protected 保护的,当没有继承的时候,它的作用和private是一样的,当有继承的时候,protected表示可以被子类访问的字段或者方法

 

 

  1. UGUI与NGUI的区别?

1) NGUI还保留着图集,需要进行图集的维护。而UGUI没有图集的概念,可以充分利用资源,避免重复资源。
   2) UGUI出现了锚点的概念,更方便屏幕自适应。 
   3) NGUI支持图文混排,UGUI暂未发现支持此功能。 
   4) UGUI没有 UIWrap 来循环 scrollview 内容。 
   5) UGUI暂时没有Tween组件。

  1. 自己定义一个int类型一维数组进行冒泡排序,然后反转他的排序。

 

 

static void Main(string[] args)

        {

 

            int[] data = {5,2,3,6,10,60 };

 

            for (int i = 0; i < data.Length; i++)

            {

                for (int j = i+1; j < data.Length-1; j++)

                {

                    if (data[i] > data[j]) {

                        int d = data[i];

                        data[i] = data[j];

                        data[j] = d;

 

                    }

 

                }

 

            }

            for (int i = 0; i < data.Length; i++)

            {

                Console.WriteLine(data[i]);

 

            }

 

        }

 

反转:把if(data[i]<data[j])

 

 

 

  1. 对象池的原理是什么?用代码表现子弹的生成与销毁。

对象池:把创建出的物体放进一个池子里,下次用的时候直接取,如果不够再重新创建。只是控制物体的激活与失活,而不是重复的销毁与创建,节省系统资源。

 

 

 

 

  1. 自己定义一个三列两行的Excel,解析在unity中进行输出

 

  1. 摆放十个cube,通过方法获取他们的坐标点后进行删除,然后用胶囊模拟人物,当人物靠近这十个cube中心点的时全部生成

 

 

 

  1. 实现一个Button按钮的颜色变化,以及动画效果(放大缩小)
  2. 保存和读取数据的类是什么,现在有一个人物,如何保存该人物的姓名和等级?代码实现

        PlayerPrefs.SetString("name", "小明");

        PlayerPrefs.SetInt("degree", 100);

        PlayerPrefs.GetString("name");

        PlayerPrefs.GetInt("degree");

        PlayerPrefs.DeleteKey("name");

        PlayerPrefs.DeleteAll();

保存和应用删除。

 

  1. 设计场景一个Plane,里面有障碍物,利用射线检测,点击地面哪里让小球向该位置运动,点击障碍物小球不动

 

 

  1. 16题的利用射线检测改为利用寻路系统

 

 

  1. 实现一个消消乐的单消功能(10*10矩阵,点一个消除一个生成一个)

 

  1. 实现UI播放视频(通过按钮实现播放循环和暂停)

 

 

 

  1. 利用文件流,读取一个视频,进行复制

 

 

  1. 用三种方式实现cube的移动

void Update () {

float h=Input.GetAxis("Horizontal");//返回-1到1的值

float v = Input.GetAxis("Vertical");//返回-1到1的值

 

transform.Translate(0,0, v*Time.deltaTime);

 

transform.Rotate(new Vector3(0,h*Time.deltaTime*30,0) );

transform.Translate(new Vector3(0, j * Time.deltaTime*10, 0));

Rigidbody.Addforce(5*Vector3.forward);

}

}

position移动的问题

 

transform.position += transform.forward*Time.deltaTime;

  1. 学过几种获取面板物体的方法,几种生成物体的方法,列举出来
  2. GameObject.Find();
  3. Tranform.Find();
  4. 拖拽

生成:

  1. GameObject.Instantiate()
  2. GameObject.CreatePrimitive()
  3. Resources.Load(“物体名称”)

 

  1. 利用UGUI遮罩与相机结合实现小地图(圆形小地图)
  2. 开启一个应用的进程,开启一个线程

Process.Start("calc");

        static void Text()

        {

            Console.WriteLine("线程开启");

        }

        static void Main(string[] args)

        {

            Thread t = new Thread(Text);

            t.Start();

            Console.WriteLine("main");

        }

  1. 学过哪些特性,举例

[Obsolete()]:提示此方法已经过时了,参数如果有true就会报错此方法.

[Conditional(“方法名字”)]:注释掉该方法的调用.

[DebuggerStepThrough]//对此方法调试操作进行跳过,表示该方法没有任何无错误,可以直接跳过

[CallerLineNumber]int fileLinename = 0, [CallerMemberName]string methodName = "")

调用文件所在的路径,调用该方法的所在行数,调用该方法所在方法的名字 统称:调用者信息特性

 

 

  1. 思维拓展:自己设计一个RPG游戏,把RPG的设计思想用思维导图画出来

 

 

 

 

 

posted @ 2018-02-02 22:16  薛小爽  阅读(139)  评论(0编辑  收藏  举报