C#学习笔记(6):封装和方法

这篇博客探讨了C#中的封装概念,强调了它在面向对象编程中的作用,防止对实现细节的直接访问。文章介绍了C#的访问修饰符,如private,并指出未指定修饰符时的默认访问级别。此外,还详细讲解了C#中的方法,包括方法调用的实例、类调用以及递归调用,并讨论了参数传递方式,特别是ref和out关键字在传递引用和输出参数时的应用。
摘要由CSDN通过智能技术生成

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

C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现

C#支持的访问修饰符如下

public所有对象都可以访问
private对象本身在对象内部可以访问
protected只有该类对象及子类对象可以访问
internal同一个程序集的对象可以访问
protected internal访问限于当前程序集或派生自包含类的类型

如果没有指定访问修饰符,则使用类成员的默认访问修饰符,即为 private

一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类。

1. 方法定义
<Access Specifier> <Return Type> <Method Name>(Parameter List)
{
   Method Body
}

2.方法调用

实例调用和类调用 (实例类名.方法名/类名.方法名)、递归调用

当调用带有参数的方法时,您需要向方法传递参数。在 C# 中,有三种向方法传递参数的方式:

值传递默认传递方式。这种方式复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。
引用传递这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值
输出传递这种方式可以返回多个值。

在 C# 中,使用 ref 关键字声明引用参数,使用out关键字声明输出传递

提供给输出参数的变量不需要赋值。当需要从一个参数没有指定初始值的方法中返回值时,输出参数特别有用

/* 参数传递*/
using System;
public class Argstest
{
	class SwapTest
	{
		// 值传递
		public void swapV(int a, int b)
		{
			int temp;
			temp = a;
			a = b;
			b = temp;

		}
		//引用传递
		public void swpaQ(ref int a, ref int b)
		{
			int temp;
			temp = a;
			a = b;
			b = temp;
		}
		//输出传递
		public void getValue(out int x, out int y)
		{
			int temp = Convert.ToInt32(Console.ReadLine());
			x = temp;
			y = x*x;
		}
	}
	class TestMain
	{
		static void Main(string[] args)
		{
			SwapTest sw = new SwapTest();
			int a = 345;
			int b = 567;
			sw.swapV(a,b);
			Console.WriteLine("a: {0}",a);
			Console.WriteLine("b: {0}",b);

			sw.swpaQ(ref a,ref b);
			Console.WriteLine("a: {0}",a);
			Console.WriteLine("b: {0}",b);

			sw.getValue(out a, out b);
			Console.WriteLine("a: {0}",a);
			Console.WriteLine("b: {0}",b);
			Console.ReadLine();
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值