C#笔记三:类-对象-结构-方法-函数-属性-数组等整理
2011-03-17 22:04
786 查看
类是一种数据结构,可包含数据成员(常量和域),函数成员(方法,属性,事件,索引器,运算符,函数)和嵌套机制。
目前大多数编程语言都是面向对象【OOP】---object oriented programming 以前的语言是面向过程的
以前:程序=算法+数据结构
现在:程序=对象+对象+对象...... 对象=算法+数据结构
很明显的,面向对象更加利于代码的重用和维护,对象具有封装,继承和多态
这里简单说下多态: 不同的类之间可以相同的操作,但是行为不同(例如汽车和火车都可以移动,但是火车在铁轨上,汽车在公路上)
我的理解:类是抽象化的对象集合,集合了对象的相同特征
结构是一种值的类型,用来封装一组相关的变量,它与类相似,但是限制更多,不支持继承(类支持单继承)
类和结构可以包含--属性和方法(属性一般用 get-set访问器来定义,方法和函数一样,静态方法【不能操作特定实例】不能用this 访问,非静态则可以
一维数组,二维数组中(大一的矩阵可以方便理解)
一维数组长度计算: arr.Length 二维: 行=arr.Rank 列=arr.GetUpperBound(arr.Rank-1)+1
ArrayList, 有了强大的数值,为什么还需要ArrayList呢?
1:ArrayList可以自动扩充容量,数组固定
2:ArrayList 可以增删插某一范围的方法,数组只能单个操作
3:ArrayList提供将只读和固定大小包装返回到集合的方法,数组不能
缺点:ArrayList只能是一维的
个人感觉:arraylist和数组互补,都无法取代,使用arraylist需要调用 System.Collections名称空间
View Code
namespace arraylist2
{
class Program
{
static void Main(string[] args)
{
//下面将列出arraylist的Clear,Remove和RemoveAt,RemoveRange方法
int[] arr = new int[9] { 1, 2, 3, 5, 6, 7, 89, 12, 120 };
ArrayList list=new ArrayList(arr);
Console.WriteLine("原arraylist集合:");
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
Console.WriteLine(list.Contains(2)); //查找集合里面是否含有数组2
list.Remove(5); //删除集合里面含有5的值
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
list.RemoveAt(1); //删除索引为1的位置的值
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
list.RemoveRange(5,2); //从索引为5的位置删除2个元素
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
Console.WriteLine(list.Contains(2));
list.Clear(); //清空集合里面的所有元素
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
Console.ReadKey();
}
}
}
Hashtable部分,有必要去看看数据结构中的哈希表详细解说
目前大多数编程语言都是面向对象【OOP】---object oriented programming 以前的语言是面向过程的
以前:程序=算法+数据结构
现在:程序=对象+对象+对象...... 对象=算法+数据结构
很明显的,面向对象更加利于代码的重用和维护,对象具有封装,继承和多态
这里简单说下多态: 不同的类之间可以相同的操作,但是行为不同(例如汽车和火车都可以移动,但是火车在铁轨上,汽车在公路上)
我的理解:类是抽象化的对象集合,集合了对象的相同特征
结构是一种值的类型,用来封装一组相关的变量,它与类相似,但是限制更多,不支持继承(类支持单继承)
类和结构可以包含--属性和方法(属性一般用 get-set访问器来定义,方法和函数一样,静态方法【不能操作特定实例】不能用this 访问,非静态则可以
一维数组,二维数组中(大一的矩阵可以方便理解)
一维数组长度计算: arr.Length 二维: 行=arr.Rank 列=arr.GetUpperBound(arr.Rank-1)+1
ArrayList, 有了强大的数值,为什么还需要ArrayList呢?
1:ArrayList可以自动扩充容量,数组固定
2:ArrayList 可以增删插某一范围的方法,数组只能单个操作
3:ArrayList提供将只读和固定大小包装返回到集合的方法,数组不能
缺点:ArrayList只能是一维的
个人感觉:arraylist和数组互补,都无法取代,使用arraylist需要调用 System.Collections名称空间
View Code
namespace arraylist2
{
class Program
{
static void Main(string[] args)
{
//下面将列出arraylist的Clear,Remove和RemoveAt,RemoveRange方法
int[] arr = new int[9] { 1, 2, 3, 5, 6, 7, 89, 12, 120 };
ArrayList list=new ArrayList(arr);
Console.WriteLine("原arraylist集合:");
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
Console.WriteLine(list.Contains(2)); //查找集合里面是否含有数组2
list.Remove(5); //删除集合里面含有5的值
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
list.RemoveAt(1); //删除索引为1的位置的值
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
list.RemoveRange(5,2); //从索引为5的位置删除2个元素
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
Console.WriteLine(list.Contains(2));
list.Clear(); //清空集合里面的所有元素
foreach(int i in list)
Console.Write(i+" ");
Console.WriteLine();
Console.ReadKey();
}
}
}
Hashtable部分,有必要去看看数据结构中的哈希表详细解说
相关文章推荐
- C#2005 .NET3.0高级编程学习笔记————类和结构,类的数据成员,类的函数成员(方法、属性)
- C#2005 .NET3.0高级编程学习笔记————类和结构,类的数据成员,类的函数成员(方法、属性)
- 【C#】面向对象基础—属性、方法、结构
- C# 中对象与Json互转的方法整理笔记
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
- C# 中对象与Json互转的方法整理笔记
- js--数组对象的属性方法整理
- Python面向对象学习笔记-类、属性、方法
- Flex判断对象中属性、方法(函数)是否存在的最简单方法
- js深入研究之克隆,属性,数组,对象,函数
- java基础笔记一函数、数组、面向对象
- C#动态对象(dynamic)示例(实现方法和属性的动态)
- JavaScript 对象属性操作和方法学习笔记(上)
- 显示js对象所有属性和方法的函数
- JavaScript中判断变量是数组、函数或是对象类型的方法
- VBA调用C#对象方法,传递double数组参数
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- 学习笔记3_函数、方法与对象
- 实验7:巩固分支结构、循环结构、函数和数组的使用方法 四