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

  • 相关阅读:
    HDU-1275-两车追及或相遇问题(数学题目)
    hdu 2209 翻纸牌游戏
    HDU1217:Arbitrage(SPFA)
    HDU1548:A strange lift(Dijkstra或BFS)
    Hdu-2112 HDU Today (单源多点最短路——Dijsktra算法)
    HDU 3374 String Problem (KMP+最大最小表示)
    mysql导入的时候提示“1046-No Database selected”的解决办法
    win10开发环境下安装mongodb
    微服务项目开发学成在线_day01_CMS服务端开发
    springboot的http监控接口启动器的配置
  • 原文地址:https://www.cnblogs.com/-SANG/p/5040522.html
Copyright © 2011-2022 走看看