zoukankan      html  css  js  c++  java
  • 离基础班结束大概还有三天

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

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

    先是思路图

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

      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

  • 相关阅读:
    BF算法和KMP算法
    Python课程笔记 (五)
    0268. Missing Number (E)
    0009. Palindrome Number (E)
    0008. String to Integer (atoi) (M)
    0213. House Robber II (M)
    0198. House Robber (E)
    0187. Repeated DNA Sequences (M)
    0007. Reverse Integer (E)
    0006. ZigZag Conversion (M)
  • 原文地址:https://www.cnblogs.com/-SANG/p/5040522.html
Copyright © 2011-2022 走看看