C# 面向对象基础&封装&继承&多态&加深一下冒泡排序写法
(一)面向对象是什么?
面向对象是一种编程思想
(二)为什么要用面向对象?
1、结构清晰
2、易于维护
3、方便扩展
(三)new一个对象是什么过程?
实例化
构造函数
创建对象的过程就是将类实例化的过程
实例化的过程就是执行构造函数的过程
构造函数的执行一定是在创建类的第一步完成
(四)访问修饰符有哪些?
pubilc 公共的,可以在任何位置使用
private 私有的,只有内部才可以使用
internal 默认的,同一个命名空间可以使用
protected 被保护的,同一个继承关系下才可以使用
(五)命名空间 程序集
namespace 加名字(如果继承必须起同一个名或者在上面调用using+空间名字)
(六)封装
类与Main函数
在同一个命名空间下,新建一个类
可以直接在新建类里面写入大框架,调用的时候直接在Main函数里面调用即可(除了private不能被调用以外其他的可以被调用)
比如:
class Student
{
private string _Name;//成员变量姓名
public string Name//属性
{
get{ return _Name; }//获取
set { _Name = value; }//接收
}
private bool _Sex;
public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
} public string Sexs
{
get { return _Sex ? "男" : "女"; }
set
{
if (value == "男")
_Sex = true;
else
_Sex = false;
}
}
private int _Chengji;
public int Chengji
{
get { return _Chengji; }
set { _Chengji = value; }
}
}
调用方法
class Program
{
static void Main(string[] args)
{
Student s = new Student();
s.Name = "张三";
s.Sexs = "男";
s.Chengji = ;
Console.WriteLine(s.Name+s.Sexs+s.Chengji);
Console.ReadKey();
}
}
(七)继承
类名:父类名
子类可以继承父类所有的公共方法和属性
一个子类只能有一个亲父类
一个父类可以有无数个后辈类
有多种叫法
父类、基类
子类、派生类、超类
基本格式
父类
class Student
{
private string _Name;//成员变量姓名
public string Name//属性
{
get{ return _Name; }//获取
set { _Name = value; }//接收
}
private bool _Sex;
public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
} public string Sexs
{
get { return _Sex ? "男" : "女"; }
set
{
if (value == "男")
_Sex = true;
else
_Sex = false;
}
}
private int _Chengji;
public int Chengji
{
get { return _Chengji; }
set { _Chengji = value; }
}
}
那么子类就可以
class Fly:Student
{
}
(八)多态
比如父类里面有
public class Fly
{
public virtual string Flying()//virtual为虚方法
{
return "正在飞行";
}
}
子类可以修改里面内容
public class Bird : Fly
{
public override string Flying()//override为重写
{
return "我飞的很高!!";
}
} //一共有三种方法 , 父类里面virtual虚写后才可以用override重写
//当然还有overload重写
(九) 写一下冒泡排序加深一下印象
int[] a = new int[] { , , , , };
for (int i = ; i < a.Length; i++)
{
for (int j = ; j < a.Length; j++)
{
if (a[i] > a[j])
{
int tamp = a[i];
a[i] = a[j];
a[j] = tamp;
}
}
}
foreach (int b in a)
{
Console.WriteLine(b);
}
Console.Read();
C# 面向对象基础&封装&继承&多态&加深一下冒泡排序写法的更多相关文章
- java面向对象(封装-继承-多态)
框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...
- Python设计模式 - 基础 - 封装 & 继承 & 多态
面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作.类是用来描述具有相同属性和方法的所有对象的集合.类通常是抽象化的概念,而 ...
- <python基础>封装,继承,多态,重写,重载
什么是封装? 所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的特性属性和通过这些属性来实现一些动作的具体方法放到一个类里面,这就是封装.封装是我们所说的面相对象编程的特征之一.除此之外还有继 ...
- Java基础——面向对象(封装——继承——多态 )
对象 对象: 是类的实例(实现世界中 真 实存在的一切事物 可以称为对象) 类: 类是对象的抽象描述 步骤: 1.定义一个类 (用于 描述人:) ( * 人:有特征和行为) 2.根据类 创建对象 -- ...
- objective-c自学总结(三)---面向对象的封装,继承与多态
面向对象的三大特性 封装 继承 多态 1.封装: 隐藏属性,方法或实现细节的过程称为封装 信息隐藏,隐藏对象的实现细节,不允许用户看到 将东西包装在一 然后以新的完整形式呈现出来 例如,两种或多种化学 ...
- php面向对象 封装继承多态 接口、重载、抽象类、最终类总结
1.面向对象 封装继承多态 接口.重载.抽象类.最终类 面向对象 封装继承多态 首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一 ...
- Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)
Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...
- python面向对象(封装,继承,多态)
python面向对象(封装,继承,多态) 学习完本篇,你将会深入掌握 如何封装一个优雅的借口 python是如何实现继承 python的多态 封装 含义: 1.把对象的属性和方法结合成一个独立的单位, ...
- OOP三大核心封装继承多态
OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...
随机推荐
- 【BZOJ】1015 [JSOI2008]星球大战starwar(并查集+离线处理)
Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...
- ARCGIS切图:TPK文件的空间参考为地理坐标系
先来吐槽一下,之前习惯了百度地图API,所以一直习惯直接将经纬度点添加到地图上进行显示,目前使用ARCGIS RUNTIME FOR ANDROID进行开发,在地图上加点需要原始点的坐标为投影坐标系, ...
- Ubuntu Docker 版本的更新与安装
突然发现自己的docker 版本特别的低,目前是1.9.1 属于古董级别的了,想更新一下最新版本,这样最新的一下命令就可以被支持.研究了半天都没有更新成功,更新后的版本始终都是1.9.1 :蒙圈了,找 ...
- Python实战之双向队列deque/queue学习笔记及简单练习
['__add__', '__bool__', '__class__', '__contains__', '__copy__', '__delattr__', '__delitem__', '__di ...
- python之串口操作
1.安装pyserial linux上直接安装: #python2 sudo pip install pyserial #或者python3 sudo pip3 install pyserial Wi ...
- Oracle 定时查询数据插入新表中(job+存储过程)
create table EGMAS_COUNT_DATA(TIMES date not null, COUNT NUMBER(30) not null, SYSTEM_NAME VARC ...
- 提纲挈领webrtc之vad检测
顾名思义,VAD(Voice Activity Detection)算法的作用是检测是否是人的语音,它的使用 范围极广,降噪,语音识别等领域都需要有vad检测.vad检测有很多方法,这里我们之介绍一 ...
- CSS之 z-index 属性
层叠上下文: 三维概念,表示元素在Z轴的位置 层叠可嵌套,组合成一个分层次上下文 每个层叠上下文和兄弟元素独立,进行层叠变化或渲染时,只考虑后代元素 每个层叠上下是自成体系的 层叠顺序 1 bac ...
- ubuntu 14.04 vim YoucompleteMe 代码自动补全工具安装
安装步骤如下: sudo apt-get install vim ; sudo apt-get install vim-youcompleteme ; sudo apt-get install vim ...
- C#中的协变(Covariance)和逆变(Contravariance)
摘要 ● 协变和逆变的定义是什么?给我们带来了什么便利?如何应用? ● 对于可变的泛型接口,为什么要区分成协变的和逆变的两种?只要一种不是更方便吗? ● 为什么还有不可变的泛型接口,为什么有的泛型接口 ...