首页 > 代码库 > 面向对象 封装 、继承

面向对象 封装 、继承

构造函数:

构造函数 - 创建一个类的函数

每一个类都有构造函数,访问修饰符必须是public的,并且不需要写任何返回值,方法名与类名一致

自己写的类 - 用户自定义类型
如果要使用自定义类型产生出来的  对象  必须有一个实例化的过程

实例化格式:
类型名  ss = new 构造函数();

访问修饰符 -  4个

public - 公共的,任何地方都可以访问,但是需要引用 命名空间

private - 私有的,类的内部才可以访问

internal - 内部的,默认的,程序集中可以访问,程序集就是命名空间

protected - 被保护的,类的内部和类的父类和子类中可以访问

封装:

private 数据类型 _名字;   --成员变量

public 默认一致 名字      --属性

{  

  get{ return _名字; }  

  set{ _名字 = value; }

}

可以单独只放get或者set

封装可以保护数据的安全性

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 面向对象封装
{

class xuesheng
{
public xuesheng()
{

}
private string _code;//成员变量
/// <summary>
/// 学生学号
/// </summary>
public string code//属性
{
get { return _code; }//属性取值
set { _code = value; }//属性赋值
}

private bool _xingbie;
/// <summary>
/// 学生性别
/// </summary>
public string xingbie
{
set
{
if (value =http://www.mamicode.com/="男")
_xingbie = true;
else if (value =http://www.mamicode.com/="女")
_xingbie = false;
else
_xingbie =true;
}
}
public string xingbie1
{
get
{
return _xingbie?"男":"女";
}
}


private string _age;
/// <summary>
/// 学生年龄
/// </summary>
public string age
{
get { return _age; }
set
{
if (int.Parse(value) > 16)
_age = "成年人";
else if (int.Parse(value) < 16)
_age = "未成年";
}
}

 

}
}

类中不仅可以有成员变量和属性,还可以有成员方法

方法又分为,普通方法    静态方法

普通方法使用: 需要实例化对象,用对象点出来

静态方法使用:  直接用类名点出来,不需要实例化对象,只需在访问修饰符后面加上static

using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace aaaaa{    public class jisuan    {        /// <summary>        /// 计算两个数的加法,返回和        /// </summary>        /// <param name="a">要计算的第一个数</param>        /// <param name="b">要计算的第二个数</param>        /// <returns></returns>        public int jiafa(int a, int b) //成员方法        {            return a + b;        }         public static int jianfa(int a, int b)        {            return a - b;         }    }}

继承:

继承语法:  类名 : 父类名(在类名后面直接写冒号与想要继承的父类名)

子类也叫做xxx的派生类,超类

父类也叫做基类

一个父类可以有无数个子类

一个子类可以有1个父类

子类并不是可以继承父类中所有的东西,而是可以继承父类中允许子类继承的内容,这个允许条件是依靠访问修饰符来做的权限

fly.cs中:

namespace 继承{    public class Fly    {        public string Fling()        {            return "我会飞行!!!";        }    }}

plane.cs中:

namespace 继承{    public class Plane : Fly    {    }}

bird.cs中:

namespace 继承{    public class Bird : Fly    {    }}

program.cs中:

namespace 继承{    class Program    {        static void Main(string[] args)        {            Plane pl = new Plane();            Console.WriteLine(pl.Fling());            Bird b = new Bird();            Console.WriteLine(b.Fling());            Console.ReadKey();        }    }}

 

面向对象 封装 、继承