c#-基础知识-封装&面向对象

封装

public private和protected跟c++一样,internal表示同一个程序集的对象可以访问;
protected internal表示当前程序集、本类和派生类中可以访问。
比如成员变量声明为:

using System; // namespace declaration. 可能不止一个
namespace csharptest // namespace
{
    class HelloWorldApplication // 与 Java 不同的是,文件名可以不同于类的名称。
    {
        class Rectangle
        {
            internal double length;
            internal double width;
            public void Acceptdetails()
            {
                length = 4.5;
                width = 3.5;
            }
            public double GetArea()
            {
                return length * width;
            }
            public void Display()
            {
                Console.WriteLine("Length: {0}", length);
                Console.WriteLine("Width: {0}", width);
                Console.WriteLine("Area: {0}", GetArea());
            }
        }
          // 在与本类相同的类中
        static void Demo() { // 方法名需要首字母大写,声明成static吧
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            Console.WriteLine(r.length*r.width);
        }
        static void Main(String[] args) // 所有c#程序的入口点
        {
            HelloWorldApplication.Demo(); // 调用static要带类名的
            Console.ReadKey(); // 针对VS.NET用户,指等待一个按键输入,避免闪退
        }
    }
}

析构函数

~类名()
不能继承或重载,用于在结束程序前释放资源。

静态成员

static修饰,如何初始化?(待补充。。。)

静态函数

public static int getNum() 只能访问静态变量
如果是public static,那么只用类名.静态方法名即可调用了,不用实例化。

继承

<访问修饰符符> class <基类>
{
 ...
}
class <派生类> : <基类>
{
 ...
}

c#不支持多重继承,但是可以用接口来实现多重继承。
在这里插入图片描述
静态多态性:函数重载、运算符重载
动态多态性:抽象类;虚方法

运算符重载

例如Box类中重载+

public static Box operator+ (Box b, Box c)

抽象类

不能创建实例,抽象方法要放在抽象类里,类名前放sealed表示密封类,此时不能被继承了,所以抽象类也不能声明为sealed。
在这里插入图片描述
虚方法是要在继承类中实现的方法,加virtual关键字。它的调用是运行时发生的。
就是说,不同的子类中可以override不同方案,调用时根据对象调用。
在这里插入图片描述

在这里插入图片描述

接口

命名以I开头,public的。

interface IMyInterface
{
    void MethodToImplement();
}

继承跟类一样,接口也可以继承其他接口。

class InterfaceImplementer : IMyInterface {}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值