面向对象 封装 继承
Posted 尘暮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象 封装 继承相关的知识,希望对你有一定的参考价值。
构造函数:
构造函数 - 创建一个类的函数
每一个类都有构造函数,访问修饰符必须是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 == "男")
_xingbie = true;
else if (value == "女")
_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(); } } }
以上是关于面向对象 封装 继承的主要内容,如果未能解决你的问题,请参考以下文章