.NET面向对象基础

面向对象基础的一些概念:
递归:方法通过直接或间接调用自身得到的结果.(递归必须拥有终止条件)
对象通信:在一个对象的行为中与其它类的对象发生数据交互(注意:对象他那个新会增加程序的耦合)

集合的三要素:结合类型、元素、所引器.
数组的优点:读取速度快、查询方便(查询方便与数组的存放位置有关)
数组的缺点:长度固定、移动数据是会导致数据的级联变动
集合的优点:长度不固定、每次集合容纳不下时,集合会新建一个步长为四的内存(新建内存是指:在已有的内存基础上加一个步长为四)

泛型:某一些类不能单独使用,它依托与另一个或多个类型,但该类在定义时,无法预知起依托的类型,把这种情况可以使用泛型.
泛型的定义<类型1,类型2,......,类型n>

删除指定位置元素:
例:
m RemoveAt(0)删除 索引为0的元素
m Remove(2) 删除集合中遇到的第一个数字为2的元素

清空集合:
例 nums.Clear();

查找:
例 nums.Contaions(3) 找集合中的数字3

集合反转用:Reverse

foeeach循环:
foreach(类型 变量名 in 集合){ }
类型必须与集合中元素的类型匹配
foreach循环也称为制度循环,因为循环体中不能更改集合(更改集合指:改变集合的大小或顺序)

完全限定名:命名空间.类名

字典:Dictionarg<Key,Value>
字典的特点:字典中的键值必须是唯一

对象通信:行为产生的关联
对象关系:是指两个对象之间具有的某个常态的关联

对象关系:

描述对象关系是应该在同一语境下
对象关系有:一对一关系,一对多关系(多对一),多对多关系

描述关系
一对一关系:一个A对应一个B,一个B对应一个A,A与B是一对一关系

一对多(多对一)关系:一个A(1个A)对应多个B(1个B),一个B(1个B)对应一个A(多个A),A与B是一对多(多对一)关系

多对多关系:一个A对应多个B,一个B对应多个A,A与B是多对多关系

对象关系在代码中用属性表示.该属性持有对另一个对象的引用

多对多关系:通常在两个类中各持有单个对另一个类的引用
一对多(多对一)关系:通常在多的一端持有单个类的引用,在少的一端持有集合引用(可以值在一端写引用)
多对多关系:在两端都持有集合引用

注意:
如果出现错误为:未将对象引用设置到对象的实例(该错误通常出现在使用指为Null的对象资源)

构造函数:
1.逻辑上它是一个对象产生时应该完成一些工作使得该对象具有现实意义.
2.技术上它是一个初始化器,通过它可以产生对象资源
3.时间点对象创建时

给属性赋值:为了保证对象在现实中有意义

构造函数书写规范:
修饰符 类名 (参数列表){
构造体
}
注意:构造函数的类名只能写当前类名

构造函数:
发生时间点:对象常见时
完成工作时:初始化数据,是该对象具有现实意义,当类中没有显示定义构造函数时,它拥有默认的无参构造函数.

显示构造函数就是自己手动常见的构造函数.
注意:当类中有了显示定义了构造函数,默认无参构造函数就消失

设计构造参数是应当尽量避免调用者可能出现的赋予不正确值得情况,同时 还应该让调用方法尽量简单

this关键字:
this:表示当前对象,其类型就是当前对象的类型
对象初始化器,必须保证该类具有无参构造函数
当一个方法体中,参数名、字段和属性名相同时,字段和属性在该方法中将被覆盖.

时间: 2024-10-11 17:18:27

.NET面向对象基础的相关文章

C#面向对象基础(一)

面向对象这个词我很早就知道了,但具体是什么东西?什么是面向对象?一直以来都 不理解,只知道它有三大特征,即封装-继承-多态.直到学习完C#视频和看完设计模式 中面向对象基础后,对C#面向对象才有了一个大致的理解.下面这幅图是我对它的一个 宏观的认识. 一.基本知识 1.类成员 属性 C#不直接访问类的数据,通过get和set访问类中字段 方法 表示类的行为.方法可以构造,也可以重载 2.封装 每个对象都包含它能进行操作所需要的所有信息,这种特性就是封装 3.继承 如果两个对象A和B,可以描述为B

java基础学习05(面向对象基础01--类实例分析)

面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过setter和getter设置和取得4.如果需要可以加入若干构造方法 5.再根据其它要求添加相应的方法6.类中的所有方法都不要直接输出,而是交给被调用处调用 Demo 定义并测试一个名为Student的类,包括属性有"学号"."姓名"以及3门课程"数学".

Python学习系列(八)( 面向对象基础)

 Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类本身. 2,类的方法:对象也可以使用属于类的函数来具有功能,这样的函数称之为类的方法.域和方法合称为类的属性.类使用class关键字创建,类的属性被列在一个缩进块中. 3,self:类的方法与普通的函数只有一个特别的区别----他们必须有一个额外的第一个参数名称,但是在调用的时候不能为其赋值,Pyt

软件工程——理论、方法与实践 之 面向对象基础

软件工程——理论.方法与实践 之 面向对象基础 面向对象技术是软件工程领域中的重要技术,这种技术比较自然的模拟了人类认识客观世界的方式,是当前计算机软件工程学中的主流方法.面向对象方法认为:客观世界是由对象组成的,任何客观的事物或实体都是对象,复杂的对象可以由简单的对象组成:具有相同数据和相同操作的对象可以归并为一个类,对象是对象类的一个实例:类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特征,子类与父类形成类的层次结构:对象之间通过消息传递相互联系:类具有封装性,其数

附录A培训实习生-面向对象基础(2):构造方法和带参数的构造方法

构造方法,又叫构造函数,其实就是对类进行实例化.构造方法与类同名,无返回值,也不需要void,在new时候调用.也就是说,就是调用构造方法的时候. 所有类都有构造方法,如果你不编码则系统默认生成空的的构造方法,如你有定义构造方法,那么默认的构造方法就会失效. 有参数的构造方法:比如我们希望每个小猫一诞生都有姓名,那么就应该写一个有参数的构造方法. 这是一个有参数的构造方法,可以看下: 1 using System; 2 using System.Collections.Generic; 3 us

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

【设计模式】面向对象基础

最近一直在学习<大话设计模式>根据师傅对我的指导,让我先学习这本书的附录--面向对象基础.说实在话,面向对象技术从很早就接触了,从刚开始的C++,其次是软工视频,然后是UML,紧接着是C#,直到现在的设计模式.. 总的来说,在设计模式之前,我对面向对象的了解还只是停留在封装.继承.多态的层次上,虽然在C#视频中,有全面的讲解了一下,但是自己还是晕晕乎乎的,脑子中还是有很多疑云..直到这次的设计模式,通过通过幽默生动.而又通俗易懂的故事,对面向对象技术深入浅出,我才算是真正的入门了.. 这篇博客

附录A培训实习生-面向对象基础(3):方法重载

就上一篇代码而言,你如果写Cat cat = new Cat();会直接报错错误 : 1       “Cat”方法没有采用“0”个参数的重载 E:\大话设计模式学习\BigDesignPatterns\附录A培训实习生之面向对象基础\动物运动会\AnimalGames\Form1.cs       20     23     AnimalGames 原因就是必要给小猫起名字.如果当真需要不起名字也要生出小猫来,可以采用方法重载. 方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参

2.C#面向对象基础属性

属性: 1.一般属性开头字母大写,字段开头字母小写. 2.通过public来赋值的方法无法判断赋值是否非法! 3.无论赋值如何,取值如果就是不采用赋值的结果,那么无论赋值什么都不管用. 4.经典错误之死循环. 例一: 通过public来赋值的方法无法判断赋值是否非法! 验证代码如下: using System; using System.Collections.Generic; using System.Text; namespace stduy2 { class Program { stati