面向对象 封装 继承

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();
        }
    }
}
复制代码

 

以上是关于面向对象 封装 继承的主要内容,如果未能解决你的问题,请参考以下文章

0面向对象三大机制 封装继承多态

0面向对象三大机制 封装继承多态

Python面向对象之:三大特性:继承,封装,多态。

面向对象之:三大特性:继承(已讲),封装,多态

19.Python面向对象之:三大特性:继承,封装,多态。

面向对象编程继承