首页 > 代码库 > 面向对象 【封装】【继承】【多态】
面向对象 【封装】【继承】【多态】
创建一个新项目
using System; ——
using System.Collections.Generic; .
using System.Linq; . -- 引用的命名空间
using System.Text; ——
namespace ConsoleApplication1 -- 命名空间 (程序集) ConsoleApplication1 为命名空间名称
{
class Program -- 类 Program 是类名
{
static void Main(string[] args) -- 函数
{
}
}
}
访问修饰符
-- 写在 类 前
public 公共的 -- 访问权限是最高的
private 私有的 -- 只能在类的内部进行访问
internal 默认的 -- 当前命名空间(程序集)下可以访问
protected 被保护的 -- 当前类及它的派生类中可以访问
命名空间
一个解决方案下可以有多个项目,
每个项目就是一个命名空间(程序集)
在每个项目下面添加类的文件
引用不同命名空间下的类时,将命名空间名称添加到主页的引用命名空间里
-- namespace ConsoleApplication1.wahaha
类所在命名空间
-- using ConsoleApplication1.wahaha;
类
一个命名空间下可建多个类,一个类文件一般放一个类
class Program
-- program 类 是程序的主入口,各程序模块的汇总
可对类进行封装
封装(对成员变量进行封装)
定义类 ——成员变量——属性
class 类名
{
private 数据类型 _名称; //成员变量,字段 --是私有的
public 数据类型 名称 //属性
{
get{ return _名称; }
set{ _名称 = value; }
}
}
——在min函数中引用 (实例化对象)
类名 对象 = new 类名();
-- student a = new student ( );
例1、 对成员变量的封装
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Student { private string _Code; //成员变量 public string Code { get { return _Code; } set { _Code = value; } } private string _Name; public string Name { get { return _Name; } set { if (value =http://www.mamicode.com/= "") _Name = "<暂无>"; else _Name = value; } } private DateTime _Birthday; public DateTime Birthday { get { return _Birthday; } set { _Birthday = value; } } public int Age { get { int end = 0; end = DateTime.Now.Year - _Birthday.Year; return end; } } private decimal _Score; public decimal Score { get { return _Score; } set { if (value > 100 || value < 0) _Score = 0; else _Score = value; } } } }
-- 属性的类型与字段的类型可以不同
-- get set 根据需要可以只有一个
例2、对方法封装
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class Math1 { public int JiaFa(int a, int b) { return a + b; } } } ————————————————————----- ——对方法的引用 Math1 m = new Math1 ( ); m.JiaFa( 10,20 );
继承:
子类:父类
父类 (基类)
子类 (派生类 超类)
一个子类只能有一个父类
子类可以继承全部父类中的public的方法和属性
案例
namespace ConsoleApplication3 { public class Fly { public virtual string Flying() { return "我会飞!"; —— 父类 } } } —————————————————— namespace ConsoleApplication3 { public class Bird : Fly { ——子类 } }
多态:
类的多种形态
有了继承才有了多态
virtual 写在访问修饰符之后(成员变量中),让方法变成 虚方法
可以被子类进行重写, override 只能重写函数体
案例
namespace ConsoleApplication3 { public class Fly { public virtual string Flying() { return "我会飞!"; } } } ———————————————— namespace ConsoleApplication3 { public class feiji : Fly { public override string Flying() { return "屁股喷火就能飞!"; } } }
面向对象 【封装】【继承】【多态】