离基础班结束大概还有三天

说实话,老赵(传智播客 赵剑宇)教的真的好,虽然最近学的感觉好难,但是每个知识点都学的很细致,虽然真的很头疼,但是当越学越发现当时还是大白的时候写的代码好简单。今天真的好累,早上跑操早自习还上课,然后十点多去把昨天欠的代码学完了,吃了个饭又回来把昨天的代码复习一遍。看代码觉得写代码好简单,但是自己去做一个题的时候就一点思路都没有,感觉找不到方向,只能看着老赵写一行我照着抄一行,然后自己想一想这一步实现了什么功能,却从没想过这一行是怎么想出来的。挺担心以后自己写软件的时候我会不会无从下手,不知怎么写了。今天下午一节电工实训下来真的好累不想动,眼睛又疼又是麦粒肿。代码也不想传到博客里来,但是想想还是坚持下去吧。嗯。好接下来贴代码。

今天上午写的是模拟硬盘读写数据

先是思路图

然后是贴代码。。。。。。。。。

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace 模拟移动硬盘
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             //用多态来实现  将移动硬盘或者U盘或者MP3插到电脑上进行读写
 14             //MobileStorage md = new MobileDisk();
 15             //MobileStorage u = new UDisk();
 16             //MobileStorage mp3 = new MP3();
 17             MobileStorage ms = new MP3();//这里定义是什么设备插入
 18             Computer cpu = new Computer();
 19             //cpu.Ms = ms;
 20             //cpu.CpuRead();
 21             //cpu.CpuWrite();
 22             cpu.CpuRead(ms);
 23             cpu.CpuWrite(ms);//记得传参进去
 24             Console.ReadKey();
 25         }
 26     }
 27     public abstract class MobileStorage
 28     {
 29         public abstract void Read();
 30         public abstract void Write();
 31     }
 32     public class MobileDisk : MobileStorage
 33     {
 34         public override void Read()
 35         {
 36             Console.WriteLine("移动硬盘在读取数据");
 37         }
 38         public override void Write()
 39         {
 40             Console.WriteLine("移动硬盘在写入数据");
 41         }
 42     }
 43     public class UDisk : MobileStorage
 44     {
 45         public override void Read()
 46         {
 47             Console.WriteLine("U盘在读取数据");
 48         }
 49         public override void Write()
 50         {
 51             Console.WriteLine("U盘在写入数据");
 52         }
 53     }
 54     public class MP3 : MobileStorage
 55     {
 56         public override void Read()
 57         {
 58             Console.WriteLine("MP3在读取数据");
 59         }
 60         public override void Write()
 61         {
 62             Console.WriteLine("MP3在写入数据");
 63         }
 64         public void PlayMusic()
 65         {
 66             Console.WriteLine("正在播放音乐");
 67         }
 68     }
 69     public class Computer
 70     {
 71         //private MobileStorage _ms;
 72         //public MobileStorage Ms
 73         //{
 74         //    get
 75         //    {
 76         //        return _ms;
 77         //    }
 78 
 79         //    set
 80         //    {
 81         //        _ms = value;
 82         //    }
 83         //}
 84 
 85         //public void CpuRead()
 86         //{
 87         //    Ms.Read();
 88         //}
 89         //public void CpuWrite()
 90         //{
 91         //    Ms.Write();
 92         //}
 93         public void CpuRead(MobileStorage ms)//父类的数据传进来
 94         {
 95             ms.Read();//这就可以调用父类定义的方法啦(~ ̄▽ ̄)~*
 96         }
 97         public void CpuWrite(MobileStorage ms)
 98         {
 99             ms.Write();
100         }
101     }
102 }

这个就是变量可以点出来方法让人很难理解,这个类是如何传进来的还是头疼想不过来。跟这个有点相似的头疼的就是传参,传参现在写多了也差不多可以理解了,以后这个知识点可能会理解的好一些。

上午就是这样。。。

下午主要交了一些零散的知识。像五个访问修饰符,internal,public,protected,private,protected internal。

也挺难的,感觉呵呵不好说。先上代码吧,上两个感觉最难的。。。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.IO;
 7 using System.Runtime.Serialization.Formatters.Binary;
 8 
 9 namespace 序列化和反序列化
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             //序列化   将对象转化为二进制
16             //反序列化   将二进制转化为对象
17             //作用  传输数据。
18 
19 
20             //要将P这个对象传输给对方电脑
21             //Person p = new Person();
22             //p.Name = "张三";
23             //p.Gender = '男';
24             //p.Age = 29;
25             //using (FileStream fsWrite = new FileStream(@"C:Users就是栗子桑Desktop
ew.txt", FileMode.OpenOrCreate, FileAccess.Write))
26             //{
27             //    //开始序列化对象
28             //    BinaryFormatter bf = new BinaryFormatter();
29             //    bf.Serialize(fsWrite, p);
30             //}
31             //Console.WriteLine("序列化成功");
32 
33 
34             //接受对方发送过来的二进制  反序列化  流
35             Person p;
36             using (FileStream fsRead = new FileStream(@"C:Users就是栗子桑Desktop
ew.txt", FileMode.OpenOrCreate, FileAccess.Read))
37             {
38                 BinaryFormatter bf = new BinaryFormatter();
39                 p = (Person)bf.Deserialize(fsRead);
40             }
41             Console.WriteLine(p.Name);
42             Console.WriteLine(p.Age);
43             Console.WriteLine(p.Gender);
44             Console.ReadKey();
45         }
46     }
47     [Serializable]
48     public class Person
49     {
50         private string _name;
51         public string Name
52         {
53             get
54             {
55                 return _name;
56             }
57 
58             set
59             {
60                 _name = value;
61             }
62         }
63         private int _age;
64         public int Age
65         {
66             get
67             {
68                 return _age;
69             }
70 
71             set
72             {
73                 _age = value;
74             }
75         }
76         private char _gender;
77         public char Gender
78         {
79             get
80             {
81                 return _gender;
82             }
83 
84             set
85             {
86                 _gender = value;
87             }
88         }
89     }
90 }

这个是序列化和反序列化,就是还不太熟悉第一次见。熟了就好了。

然后接下来是简单工厂模式,这一课老赵讲的挺扯的,感觉听不出什么所以然(哈哈哈是我水平低)

贴上来吧。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 简单工厂设计模式
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             Console.WriteLine("请输入你想要的笔记本品牌");
14             string brand = Console.ReadLine();
15             NoteBook nb = GetNoteBook(brand);
16             nb.SayHello();
17             Console.ReadKey();
18         }
19         public static NoteBook GetNoteBook(string brand)
20         {
21             NoteBook nb = null;
22             switch (brand)
23             {
24                 case "Lenovo": nb = new Lenovo();
25                     break;
26                 case "Dell":nb = new Dell();
27                     break;
28                 case "Acer":nb = new Acer();
29                     break;
30                 case "IBM":nb = new IBM();
31                     break;
32             }
33             return nb;
34         }
35     }
36     public abstract class NoteBook
37     {
38         public abstract void SayHello();
39     }
40 
41     public class Lenovo : NoteBook
42     {
43         public override void SayHello()
44         {
45             Console.WriteLine("我是联想");
46         }
47     }
48     public class Dell : NoteBook
49     {
50         public override void SayHello()
51         {
52             Console.WriteLine("我是戴尔");
53         }
54     }
55     public class IBM : NoteBook
56     {
57         public override void SayHello()
58         {
59             Console.WriteLine("我是IBM");
60         }
61     }
62     public class Acer : NoteBook
63     {
64         public override void SayHello()
65         {
66             Console.WriteLine("我是宏基");
67         }
68     }
69 }

还有一些零零散散的笔记,我自己也看不懂了哈哈哈,好了就是这样子了,感觉还是要努力,不然今年年底就完不成进度了。。。

好了今天就是这样。

希望明天更好。2015-12-11

原文地址:https://www.cnblogs.com/-SANG/p/5040522.html