c#封装

封装被定义为“把一个或多个项目封闭在一个物理 的或者逻辑的包中”在面向对象程序设计方法中,封装是为了防止对实现细节的访问

抽象和封装是面向对象程序设计的相关特性,抽象允许相关信息可视化,封装则使程序员实现所需级别的抽象

封装使用访问修饰符来实现,一个访问修饰符定义个类成员的范围和可见性,c#支持的访问修饰符如下所示

public

private

protected

internal

protected internal


public访问修饰符

public访问修饰符允许一个类将其成员变量和成员函数暴露给其他的函数和对象,任何公有成员可以被外部的类访问

using System

namespace RectangleApplication

{

class Rectangle

{

//成员变量

public double length;

public double width;

public double GetArea()

{

return length*width;

}

public void Display()

{

Console.WriteLine("长度:{0}",length);

Console.WriteLine("宽度:{0}",width);

Console.WriteLine("面积:{0}",GetArea());

}

}//Rectangle结束

class ExecuteRectangle

{

static void Main(String[] args)

{

Rectangle r=new Rectangle();

r.length=4.5;

r.width=3.5;

r.Display();

Console.ReadLine();

}

}

}

会产生下面结果

长度:4.5

宽度:3.5

面积:15.75

上面实例中,成员变量length和width被声明为public,所以她们可以被函数main()使用Rectangle类的实例访问

成员函数Display()和GetArea()可以直接访问这些变量

成员函数Display()也别声明为public,所以他也能被Main()使用Rectangle类的实例r访问


private访问修饰符

private访问修饰符允许一个类将其成员变量和成员函数对其他的函数和对象进行隐藏,只有同一个类的函数可以访问他的私有成员,即使是类的实例也不能访问它的私有成员

using System

namespace RectangleApplication

{

class Rectangle

{

//成员变量

private double length;

private double width;

public void Acceptdetails()

{

Console.WriteLine("请输入长度");

length=Convert.ToDouble(Console.ReadLine());

Console.WriteLine("请输入宽度");

width=Convert.ToDouble(Console.ReadLine());

}

public double GetArea()

{

return length*width;

}

public void Display()

{

Console.WriteLine("长度:{0}",length);

Console.WriteLine("宽度:{0}",width);

Console.WriteLine("面积:{0}",GetArea());

}

}//end class Rectangle

class ExecuteRectangle

{

static void Main(string[] args)

{

Rectangle r=new Rectangle();

r.Acceptdetails();

r.Display();

Console.ReadLine();

}

}

}

在上面的实例中,成员变量length和width被声明为private,所以她们不能被函数Main()访问

成员函数AcceptDetails()和Display()可以访问这些变量

由于成员函数AcceptDetails()和Display()被声明为public,所以她们可以被Main()使用Rectangle类的实例r访问


protected访问修饰符

protected访问修饰符允许子类访问它的基类的成员变量和成员函数,这样有助于实现继承


protected internal访问修饰符

protected internal访问修饰符允许一个类将其成员变量和成员函数对同一应用程序内的子类以外的其他的类对象和函数进行隐藏,这也被用于实现继承


internal访问修饰符

internal访问修饰符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象,换句话说,带有internal访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类和方法访问

using System;

namespace RectangleApplication

{

class Rectangle

{

//成员变量

internal double length;

internal double width;

double GetArea()

{

return length*width;

}

public void Display()

{

ConsoleWriteLIine("长度:{0}",length);

ConsoleWriteLIine("宽度:{0}",width);

ConsoleWriteLIine("面积:{0},GetArea());

}

}//end class Rectangle

class ExecuteRectangle

{

static void Main(string[] args)

{

Rectangle r=new Rectangle();

r.length=4.5;

r.width=3.5;

r.Display();

Console.ReadLine();

}

}

}

显示结果

长度:4.5

宽度:3.5

面积:15.75

在上面的实例中,请注意成员函数GetArea()声明的时候不带有任何访问修饰符,如果没有指定访问修饰符,则使用类成员的默认访问修饰符,即为private

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值