C#学习之面象对象继承练习(二)
1.里氏转换
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _01
{class Program{static void Main(string[] args){1、里氏转换1)、子类可以赋值给父类:如果有一个地方需要一个父类作为参数,我们可以给一个子类代替// Student s = new Student();Person p = new Student();//s;//string str = string.Join("|",new string[] { "1", "2", "3", "4" });//Console.WriteLine(str);//Console.ReadKey();2)、如果父类中装的是子类对象,那么可以讲这个父类强转为子类对象。//is的用法//if (p is Student)//{// Student ss = (Student)p;// ss.StudentSayHello();//}//else//{// Console.WriteLine("转换失败");//}//as的用法Student t = p as Student;t.StudentSayHello();Console.ReadKey();}}public class Person{public void PersonSayHello(){Console.WriteLine("我是父类");}}public class Student : Person{public void StudentSayHello(){Console.WriteLine("我是学生");}}public class Teacher : Person{public void TeacherSayHello(){Console.WriteLine("我是老师");}}}
2.ArrayList集合
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _02
{class Program{static void Main(string[] args){//创建了一个集合对象ArrayList list = new ArrayList();//集合:很多数据的一个集合//数组:长度不可变、类型单一//集合的好处:长度可以任意改变 类型随便list.Add(1);list.Add(3.14);list.Add(true);list.Add("张三");list.Add('男');list.Add(5000m);list.Add(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });Person p = new Person();list.Add(p);list.Add(list);//list.AddRange(new string[]{})for (int i = 0; i < list.Count; i++){if (list[i] is Person){((Person)list[i]).SayHello();}else if (list[i] is int[]){for (int j = 0; j < ((int[])list[i]).Length; j++){Console.WriteLine(((int[])list[i])[j]);}}else{Console.WriteLine(list[i]);}//Console.WriteLine(list[i]);}Console.ReadKey();}}public class Person{public void SayHello(){Console.WriteLine("我是人类");}}
}
3.ToString方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _03
{class Program{static void Main(string[] args){//我们将一个对象输出到控制台 默认情况下 打印的就是这个对象所在的类的命名空间int[] nums = { 1, 2, 3, 4, 5 };Console.WriteLine(nums.ToString());Person p = new Person();Console.WriteLine(p.ToString());Console.ReadKey();}}public class Person{public void SayHello(){Console.WriteLine("我是人类");}}
}
4.ArrayList练习
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _04
{class Program{static void Main(string[] args){//创建一个集合,里面添加一些数字,求平均值与和,最大值,最小值//ArrayList list = new ArrayList();//list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });//int sum = 0;//int max = (int)list[0];//for (int i = 0; i < list.Count; i++)//{// if ((int)list[i] > max)// {// max = (int)list[i];// }// sum += (int)list[i];//}//Console.WriteLine(sum);//Console.WriteLine(max);//Console.WriteLine(sum/list.Count);//Console.ReadKey();//写一个长度为10的集合,要求在里面随机地存放10个数字(0-9),//但是要求所有的数字不重复//ArrayList list = new ArrayList();//Random r = new Random();//for (int i = 0; i <10; i++)//{// int rNumber = r.Next(0, 10);// //集合中没有这个随机数// if (!list.Contains(rNumber))// {// list.Add(rNumber);// }// else//集合中有这个随机数// {// //一旦产生了重复的随机数 这次循环就不算数// i--;// }//}//for (int i = 0; i < list.Count; i++)//{// Console.WriteLine(list[i]);//}//Console.ReadKey();string str = "2++b/c*d/e";string[] strNew = str.Split(new char[] { '+', '-', '*', '/' });StringBuilder sb = new StringBuilder();//capcity countsb.Append("12312312312312312");Console.WriteLine(sb.Capacity);//char[] chs= {'1','2','3'};Console.ReadKey();}}
}
5.键值对集合
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _05
{class Program{static void Main(string[] args){//创建了一个键值对集合对象Hashtable ht = new Hashtable();ht.Add(1, "张三");ht.Add(2, true);ht.Add(3, '男');ht.Add(false, "错误的");ht.Add(5, "张三");ht[6] = "新来的";//这也是一种添加数据的方式ht[1] = "欢迎张三";ht.Add("abc", "cba");//abc----cbaif (!ht.ContainsKey("abc")){//ht.Add("abc", "哈哈哈");ht["abc"] = "哈哈哈";}else{Console.WriteLine("已经包含abc这个键!!!");}// ht.Clear(); //移除集合中所有的元素ht.Remove(3);foreach (var item in ht.Keys){Console.WriteLine("键是-----{0}==============值是{1}", item, ht[item]);}//在键值对集合中 是根据键去找值的//Console.WriteLine(ht[1]);//Console.WriteLine(ht[2]);//Console.WriteLine(ht[3]);//Console.WriteLine(ht[false]);//Console.WriteLine("==================================");//for (int i = 0; i < ht.Count; i++)//{// Console.WriteLine(ht[i]);//}Console.ReadKey();}}
}
6.Var推断类型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _06
{class Program{static void Main(string[] args){//var:根据值能够推断出来类型//c#是一门强类型语言:在代码当中,必须对每一个变量的类型有一个明确的定义//var n = 15;//var n2 = "张三";//var n3 = 3.14;//var n4 = 5000m;//var n5 = true;//var n6 = '男';//Console.WriteLine(n.GetType());//Console.WriteLine(n2.GetType());//Console.WriteLine(n3.GetType());//Console.WriteLine(n4.GetType());//Console.WriteLine(n5.GetType());//Console.WriteLine(n6.GetType());//Console.ReadKey();//var input;//input = "张三";//js是一门弱类型语言//12 3.14 true "fdsfds" 'c' var}}
}
7.foreach循环
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _07
{class Program{static void Main(string[] args){//int[] nums = { 1, 2, 3, 4, 5, 6, 76, 7, 8, 23 };//for (int i = 0; i < nums.Length; i++)//{// Console.WriteLine(nums[i]);//}//Console.WriteLine("=====================================");//foreach (var item in nums)//{// Console.WriteLine(item);//}//Console.ReadKey();//Stopwatch sw = new Stopwatch();//int[] nums = new int[1000];00:00:04.206921900:00:00.000007000:00:00.0000121//sw.Start();//foreach (var item in nums)//{//}//for (int i = 0; i < nums.Length; i++)//{//}//sw.Stop();//Console.WriteLine(sw.Elapsed);//Console.ReadKey();}}
}
8.Path类
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _08
{class Program{static void Main(string[] args){string str = @"C:\3000soft\Red Spider\Data\abc\C#学习.wav";//获得文件名Console.WriteLine(Path.GetFileName(str));//获得文件名但是不包含扩展名Console.WriteLine(Path.GetFileNameWithoutExtension(str));//获得文件的扩展名Console.WriteLine(Path.GetExtension(str));//获得文件所在的文件夹的名称Console.WriteLine(Path.GetDirectoryName(str));//获得文件所在的全路径Console.WriteLine(Path.GetFullPath(str));//连接两个字符串作为路径Console.WriteLine(Path.Combine(@"c:\a\" , "b.txt"));//int index = str.LastIndexOf("\\");//str = str.Substring(index + 1);//Console.WriteLine(str);Console.ReadKey();}}
}
9.File类
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _09
{class Program{static void Main(string[] args){//创建一个文件//File.Create(@"C:\Users\SpringRain\Desktop\C语言.txt");//Console.WriteLine("创建成功");//Console.ReadKey();//删除一个文件//File.Delete(@"C:\Users\SpringRain\Desktop\C语言.txt");//Console.WriteLine("删除成功");//Console.ReadKey();//1024byte=1kb//1024kb=1M//1024M=1G//1024G=1T//1024T=1PT//复制一个文件//File.Copy(@"C:\Users\SpringRain\Desktop\code.txt", @"C:\Users\SpringRain\Desktop\new.txt");//Console.WriteLine("复制成功");//Console.ReadKey();//剪切File.Move(@"C:\Users\SpringRain\Desktop\code.txt", @"C:\Users\SpringRain\Desktop\newnew.txt");Console.WriteLine("剪切成功");Console.ReadKey();//Console.WriteLine(sizeof(char));//Console.ReadKey();//Console.WriteLine(sizeof(string));a "dsfdsfds"//Console.ReadKey();}}
}
10.File类练习
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace _10
{class Program{static void Main(string[] args){//byte[] buffer = File.ReadAllBytes(@"C:\Users\SpringRain\Desktop\01.txt");//EncodingInfo[] en = Encoding.GetEncodings();//foreach (var item in en)//{// Console.WriteLine(item.DisplayName);//}//Console.ReadKey();//将字节数组转换成字符串//string s = Encoding.UTF8.GetString(buffer);//Console.WriteLine(s);// Console.WriteLine(buffer.ToString());//编码格式:指的就是你以怎样的形式来存储字符串//a-z 0-9 Ascii 117 u---->汉字--->GB2312 GBK//int n = (int)'u';//char c = (char)188;//Console.WriteLine(c);Console.WriteLine(n);//string s="今天天气好晴朗,处处好风光";将字符串转换成字节数组//byte[] buffer= Encoding.Default.GetBytes(s);以字节的形式向计算机中写入文本文件//File.WriteAllBytes(@"C:\Users\SpringRain\Desktop\01.txt", buffer);//Console.WriteLine("写入成功");//Console.ReadKey();//使用File类来实现一个多媒体文件的复制操作//读取byte[] buffer = File.ReadAllBytes(@"C:\Users\SpringRain\Desktop\12333.wmv");Console.ReadKey();写入//File.WriteAllBytes(@"C:\Users\SpringRain\Desktop\new.wav", buffer);//Console.WriteLine("复制成功");//Console.ReadKey();//byte[] buffer=new byte[1024*1024*5];//while (true)//{// File.WriteAllBytes(@"C:\Users\SpringRain\Desktop\123.wmv", buffer);//}}}
}
C#学习之面象对象继承练习(二)相关推荐
- 面象对象设计6大原则之二:开放封闭原则
转载自 面象对象设计6大原则之二:开放封闭原则 开放封闭原则(OCP),The Open Closed Principle 定义 一个软件的实体,包括类.方法.模块.应该对扩展开放,对修改关闭. 也就 ...
- python代码学习——类与对象提升(继承、超继承,类的例题,魔术方法)
python代码学习--类与对象提升 继承 继承的特殊属性: 代码示例 方法的重写和覆盖(overrrid) 总结 超继承 继承中的初始化 多继承 例题 类的魔术方法 哈希(hash)和eq方法 bo ...
- JavaScript学习笔记之对象及继承
JavaScript学习笔记之对象及继承 对象属性 ES5中有两种属性,数据属性和访问器属性. 数据属性包括[[writable]](能否修改属性的值).[[value]]等等: 访问器属性包括[[C ...
- JavaScript学习笔记(十)构造函数封装、对象检测、对象继承
构造函数封装 创建一个对象可以使用字面量或者构造函数的方法,但是纯对象只能调用Object.prototype中的方法,并且类型无法细分.(细分类型是指特定的对象可以调用特定方法). 工厂函数模式 f ...
- 学习Scala:伴生对象和伴生类之间的关系(二)
孤立对象是只有一个object关键字修饰的对象,该对象会编译成两个class文件,一个是以孤立对象的名字命名的class, 一个是以孤立对象的名字后面加上一个$ 字符命名的class, 这个class ...
- python编程语言继承_python应用:学习笔记(Python继承)
学习笔记(Python继承)Python是一种解释型脚本语言,可以应用于以下领域: web 和 Internet开发 科学计算和统计 人工智能 教育 桌面界面开发 后端开发 网络爬虫 有几种叫法(父类 ...
- 学习Kotlin(四)对象与泛型
推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...
- 小汤学编程之JavaScript学习day04——自定义对象、原型与原型链、BOM
一.自定义对象 1.对象的定义 2.对象的使用 二.原型与原型链 1.JS的继承结构图 2.关键点 三.BOM 1.window对象 2.document对象 3.lo ...
- 学习Coding-iOS开源项目日志(二)
继续前篇:<学习Coding-iOS开源项目日志(一)>,接着本第二篇<学习Coding-iOS开源项目日志(二)>讲解Coding-iOS开源项目. 前言:作为初级程序员,想 ...
最新文章
- Coursera公开课笔记: 斯坦福大学机器学习第二课“单变量线性回归(Linear regression with one variable)”
- 理解注意力机制的好文二
- 【drp 11】使用Junit简单测试接口方法
- android调用oncreate,Android - 每次启动时都会调用onCreate
- JSP+Javabean+Servlet实现用户注册
- poj 1985 Cow Marathon 【树的直径】
- oracle shared_pool_size 0,Oracle 参数shared_pool_size
- 从优秀到卓越 pdf_演讲口才培训:演讲能力是卓越领导者需要具备的能力
- 在VB中用DAO实现数据库编程Java教程
- 还记得儿时的那片海么?
- 微信speex音频格式转mp3
- focaltech(敦泰)触摸屏驱动Ft5306.c学习记录
- 2022卡塔尔世界杯来了,谁是你心中的夺冠热门球队?
- 关于信息熵 ,KL散度,交叉熵,一文读懂(bushi)。
- 软件工程Alpha冲刺day7
- 基于Capacitor编写Ionic React二维码扫描应用
- (65)-- 爬取58交友信息
- Weakly-Supervised Aspect-Based Sentiment Analysis via Joint Aspect-Sentiment Topic Embedding论文阅读
- 各人口大国的人口密度排名
- java实现简繁字体转换