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

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

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();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/u013783095/article/details/94717244