技术实践 2019 小组第二次活动

大家好,以下是咱们工业大学2019年技术学习小组的第二次活动记录及培训概要。

活动时间:2018年10月23日 TUE 19:50 – 21:55


本次内容

0. 前言
基础 – 技术 – 专业 – 职业 – 职责 – 事业 – 产业
大一 – 大二 – 大三 – 实习 – 转正 – 晋升 – 野心

1. 推荐
a. 书目 —— 《编程大师访谈录》《数学之美与浪潮之巅》
b. 百词斩,坚持背单词

2. C#: Hello, World!
a. 项目与解决方案的区别,Solution 与 Project
b. 最基本的命名规范

3. 编写:1 + 2 =? 如何运行,如何实现?
a. 计算机与程序的内在原理
b. $”Hello {value}” 格式化字符串与屏幕输出

4. 面向对象的程序设计(1)
a. People 类
i. 值类型与引用类型的区别
ii. 成员变量或成员方法
iii. Getter 与 Setter

    class People
    {

        // 构造方法
        public People(int birthYear, string gender)
        {
            if (birthYear < 1)
            {
                throw new Exception("不能这么玩!");
            }
            this.Age = DateTime.Now.Year - birthYear;
            this.Gender = gender;
            this.IsHungry = true;
        }

        // 成员属性
        public string Name { get; set; }
        public string Gender { get; set; }
        public int Age { get; }
        private bool IsHungry;

        // 成员方法
        public void Eat()
        {
            this.IsHungry = false;
        }
    }

b. 封装 Number
i. Static 静态方法(类方法) 与 实例方法的区别
ii. 泛型
(a) 使用搜索引擎:查找关键词 add two generic value
(b) 推荐 StackOverflow.com 这里有任何技术问题的答案

namespace ConsoleApp1
{
    using System;

    // 泛型类
    class MyNumber<T>
    {
        public MyNumber(T number)
        {
            this.Number = number;
        }

        public T Number { get; set; }

        // 静态方法,不是成员(实例)方法,是类方法
        public static MyNumber<T> Add(MyNumber<T> a, MyNumber<T> b)
        {
            dynamic x = a;
            dynamic y = b;
            return new MyNumber<T>(x.Number + y.Number);
        }

        // 运算符重载的实现
        public static MyNumber<T> operator +(MyNumber<T> a, MyNumber<T> b)
        {
            return Add(a, b);
        }
    }

    class Program
    {
        private static void Main(string[] args)
        {
            // int a = 3;
            var a = new MyNumber<int>(3);
            // int b = 5;
            var b = new MyNumber<int>(5);
            var r = MyNumber<int>.Add(a, b);

            var x = new MyNumber<double>(3.1415);
            var y = new MyNumber<double>(6.28);
            var r2 = MyNumber<double>.Add(x, y);

            // 运算符重载
            var r3 = a + b;

            Console.WriteLine(r.Number);
            Console.WriteLine(r2.Number);
            Console.WriteLine(r3.Number);
            
            Console.ReadKey();
        }
    }
}

本次作业


1. 在自己的机器上,使用 Visual Studio 2017,自己认真重新编写上述程序
2. 在自己的机器上,安装 JDK,用于下次的安卓培训

以上任务每个人都需要在下次培训前完成,完成后请告知齐亚楠,或张梦雪,或景彦红,或者我

以上操作如果有任何问题,请在群里直接提问!或者向任意大三学长咨询,希望咱们的技术群是活跃的!

如果在学习上有任何迷茫,可以随时找几位学长或者我聊一聊,如果觉得本活动并不适合自己,请随时主动退群,我们的活动未必适合每个人,急流勇退,志在四方,非常感谢!

下次的培训时间是本周四晚,请大家尽早完成任务,下次培训将由 杨挺(Tommy Yang) 学长,给大家带来 Android 开发概览,加油!

Hendry

About Hendry

不经历复杂的简单,只是一种苍白。

发表评论

电子邮件地址不会被公开。