캡슐화 C#

WBOY
WBOY원래의
2024-09-03 15:05:35611검색

C#의 캡슐화는 캡슐화 기능을 수행하기 위해 내장된 C# 프로그래밍 언어 기능으로 정의됩니다. 캡슐화 기능을 이해하려면 하나 이상의 항목을 단일 단위로 포장하고 해당 항목이 논리적 또는 물리적 유사성을 갖고 있는지 확인하는 것으로 정의됩니다. 이는 항목을 함께 패키징하는 이유가 됩니다. 구현 세부 사항에 대한 액세스를 방지하기 위해 함께 패키지되어 있으며, 이를 통해 데이터 변경이 방지됩니다. 세부사항에 접근할 수 있는 유일한 방법은 클래스의 getter 함수를 통해서이고, 세부사항을 수정하는 유일한 방법은 setter 함수를 통해서입니다. 수집된 데이터의 멤버와 멤버 함수를 하나의 엔터티로 묶어놓은 패키지 엔터티를 클래스라고 합니다.

캡슐화 C# 구문

sprintf를 사용한다는 아이디어는 인쇄 가능한 메시지를 콘솔에 인쇄하는 대신 저장하여 애플리케이션의 필요에 따라 언제든지 참조할 수 있도록 하는 대체 접근 방식이 되면서 인기를 얻기 시작했습니다. sprintf는 “String Print”를 의미하며, 여기서는 C에서 sprintf 함수의 구문 관점을 살펴보고 구문의 매개변수 또는 인수를 이해하겠습니다.

1. C#에서 캡슐화할 변수 선언.

private < data type > < variable name >;

2. C#으로 캡슐화된 변수의 Getter 함수입니다.

get
{
return < variable name >;
}

3. C#으로 캡슐화된 변수의 Setter 함수입니다.

set
{
return < variable name >;
}

4. C#으로 캡슐화할 클래스 선언.

public class < class name >{
// Declare the elements of the public class.
}

C#에서 캡슐화는 어떻게 작동하나요?

  • 캡슐화라는 개념은 다른 사람에 의해 발생할 수 있는 눈에 띄지 않는 오류로 인해 애플리케이션의 데이터가 손상될 가능성이 있을 때 탄생했습니다. 데이터는 객체 지향 프로그래밍 개념에서 중요한 요소이므로 외부 기능에 의한 실수로 데이터가 수정되는 것을 피해야 하며, 이 과정에서 악의적인 공격으로부터 데이터도 저장해야 합니다.
  • 데이터가 캡슐화되는 방식은 요소를 비공개로 정의하고 두 가지 방법으로만 수정이 가능하도록 만드는 것입니다. 이것은 캡슐화 작업에 대한 완전한 그림을 얻기 위해 지금 자세히 설명할 두 가지 방법입니다. 첫 번째 방법은 접근자와 돌연변이자를 사용하는 것입니다. 클래스가 만들어지면 일부 요소를 비공개로 설정합니다. 즉, 해당 요소는 클래스 외부 요소에서 액세스할 수 없습니다. 이제 우리는 수정이나 검색까지 수행해야 하는 경우 접근자(검색용)와 변경자(수정용)가 수행하도록 보장하는 2개의 함수를 만듭니다. 이러한 함수는 public으로 정의되어 네이티브 클래스 외부의 모든 함수/클래스가 mutator 및 접근자에 액세스할 수 있습니다. 다른 방법은 속성을 사용하는 것이며, 각각 요소를 검색하고 수정할 수 있는 2개의 속성 get 및 set이 있습니다.
  • 이 2가지 방법 중 개인 요소가 포함된 클래스의 인스턴스를 정의하여 원하는 접근자를 다른 클래스에서 호출하는 경우입니다. 이 인스턴스에는 기본적으로 상위 클래스(인스턴스가 속한 클래스)의 모든 공용 함수가 포함됩니다. 이제 해당 공용 속성/접근자/변형자를 사용하여 필요한 작업이 호출됩니다. 호출된 후 해당 작업은 작업 수행 선택에 따라 검색 또는 수정으로 할당됩니다. 이 작업은 조직의 일부 사람들만이 재무 기록(가장 기밀 정보)에 접근할 수 있는 조직과 유사하다고 생각할 수 있으며, 항목을 검색하거나 수정해야 하는 경우 재무 부서의 인스턴스를 호출합니다. 해당 직무를 배정받았습니다.

캡슐화 C#의 예

다음은 캡슐화 C#의 예입니다.

예시 #1

접근자 및 변경자를 사용하여 클래스의 비공개 변수에 액세스하려고 합니다(이 코드에서는 오류가 발생합니다).

코드:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string GetName() {
return name;
}
public void SetName(string n) {
name = n;
}
public string GetDept() {
return name;
}
public void SetDepartname(string d) {
dept = d;
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.name = "AmKy";
e.dept = "EduCBA";
e.Display();
Console.ReadLine();
}
}
}

출력:

캡슐화 C#

예시 #2

적절한 접근자와 변형자 장르를 사용하여 클래스 요소에 액세스하고 수정합니다.

코드:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string GetName() {
return name;
}
public void SetName(string n) {
name = n;
}
public string GetDept() {
return name;
}
public void SetDepartname(string d) {
dept = d;
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.SetName("AmKy");
e.SetDepartname("EduCBA");
e.Display();
Console.ReadLine();
}
}
}

출력:

캡슐화 C#

예시 #3

속성을 이용한 캡슐화

코드:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string DeptProp {
get {
return dept;
}
set {
dept = value;
}
}
public string EmpName {
get {
return name;
}
set {
name = value;
}
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.EmpName = "Employee 2";
e.DeptProp = "Finance";
e.Display();
Console.ReadLine();
}
}
}

출력:

캡슐화 C#

결론

이 기사에서는 C#에서 캡슐화가 수행되는 방식과 다른 클래스의 비공개 개체에 액세스하는 경우(부모 클래스의 인스턴스를 통해서라도) 어떻게 오류가 발생할 수 있는지 이해하는 예제를 살펴보았습니다. 코드를 실행할 수 없게 만듭니다.

위 내용은 캡슐화 C#의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C# 파일 읽기다음 기사:C# 파일 읽기