이번 글에서는 C# 클래스에 대해 알아보겠습니다. 클래스는 생성되는 객체의 청사진입니다. 실시간 시나리오에서 Car가 클래스라고 가정해 보겠습니다. 따라서 자동차에는 모양, 속도, 인테리어, 색상 및 기타 여러 가지 특성이 있습니다. 그래서 많은 회사들이 이러한 요구 사항을 충족하는 자동차를 만듭니다. 예를 들어 Maruti, Hyundai의 모든 자동차에는 이러한 개체가 있습니다. car라는 클래스를 정의하고 자동차의 특성에 따라 객체를 생성할 수 있습니다. 마찬가지로 OOP 또는 객체 지향 프로그램에서 클래스에는 이벤트, 메서드, 필드 등과 같은 많은 속성이 있습니다. 클래스를 사용하면 프로그래머는 요구 사항에 따라 사용자 정의 유형의 객체를 만들 수 있습니다.
구문:
the class라는 키워드와 우리가 결정할 클래스 이름을 중괄호로 묶어 클래스를 정의할 수 있습니다.
Class Test { }
아래는 구현 방법을 보여주는 예시입니다
추상클래스
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public abstract class Animals { public abstract void aml (); // abstract class method } public class Cat : Animals // inheritance { public override void aml() { Console.WriteLine("This is first animal"); } } public class Dog : Animals // another class inheritance { public override void aml() { Console.WriteLine("This is second animal"); } } public class main_method { public static void Main() // main method { Animals a; a = new Cat(); a.aml(); a = new Dog(); a.aml(); Console.ReadLine(); } }
설명: 위의 예에는 추상 메소드 aml()을 사용하는 추상 클래스 Animals가 있습니다. 동물 클래스는 하위 클래스 'Cat'과 또 다른 하위 클래스 'Dog'에 내재되어 있습니다. 기본 메소드에서 'a'는 인스턴스화할 수 없는 Animals 클래스의 객체입니다. 상속시 생성자와 소멸자를 포함하는 추상 클래스가 사용됩니다. Override 키워드는 자식 클래스를 상속하는 추상 메소드 이전에 반드시 필요한 키워드입니다.
출력:
밀폐수업
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public class Animal { public virtual void sleep() { Console.WriteLine("Animals are sleeping"); } public virtual void eat() { Console.WriteLine("Animals are eating"); } } public class Cat : Animal // inheritance { public override void sleep() { Console.WriteLine("Cat is sleeping"); } public sealed override void eat() // sealed method { Console.WriteLine("Cat is eating"); } } public class Dog : Cat // inheritance { public override void Sleep() { Console.WriteLine("Sleeping"); } public override void eat() { Console.WriteLine("Eating"); } } public class TestSealed { public static void Main() // main method { Dog d = new Dog(); d.eat(); d.fly(); } }
설명: 위의 예에는 다른 클래스가 상속되지 않도록 하기 위해 사용되는 봉인된 메서드가 있습니다. 따라서 이 경우에 봉인된 클래스를 상속하려고 하면 컴파일러는 봉인된 키워드를 읽고 오류를 발생시킵니다. 따라서 재정의할 수 없습니다.
출력:
정적 클래스
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Office { public static string Name; // static fields public static string Location; static Office() // constructor { Name = "Microsoft"; Location = "Hyderabad"; } } class Program { static void Main(string[] args) { Console.WriteLine(Office.Name); Console.WriteLine(Office.Location); Console.Read(); } }
설명: 위의 예에는 정적 클래스가 있고 정적 클래스에 static 키워드가 사용되어 클래스를 인스턴스화할 수 없게 만듭니다. 정적 멤버의 이름과 위치로 구성됩니다. 기본 메서드에서는 학급 사무실의 정적 데이터 멤버에 액세스합니다. 정적 클래스에 대한 개체를 만들 수 없습니다. 정적 클래스는 다른 클래스에서 상속될 수 없습니다.
출력:
부분수업
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; // partial class1.cs public partial class Class1 { private string EmpName; private int EmpId; public Class1(string a, int t) { this.EmpName = a; this.EmpId = t; } } // partial class2.cs public partial class Class1 { public void Display() { Console.WriteLine("Employee name is : " + EmpName); Console.WriteLine("Employee Id is : " + EmpId); } } public class Class { private string EmpName; private int EmpId; public Class(string a, int t) { this.EmpName = a; this.EmpId = t; } public void Display() { Console.WriteLine("Employees name is : " + EmpName); Console.WriteLine("Employee Id is : " + EmpId); } }
설명: 위의 예에서는 부분 클래스가 구현되었습니다. 장시간 수업을 할 때 사용할 수 있습니다. 따라서 코드를 쉽게 하기 위해 여러 파일을 정의할 수 있습니다. Partial은 이러한 유형의 클래스에 사용되는 키워드입니다. 따라서 부분 키워드를 사용하는 방법으로 구성된 여러 파일로 분할될 수 있습니다. 이 부분 class1.cs와 부분 class2.cs는 컴파일러에 의해 단일 파일로 결합됩니다.
출력:
참고: 액세스 지정자는 클래스 자체뿐만 아니라 멤버에도 액세스하는 데 도움이 됩니다.클래스 멤버에 액세스하려면 점 연산자를 사용해야 합니다. 점 연산자는 개체 이름을 회원 이름에 연결하는 데 도움이 됩니다. 클래스 내부에 메소드, 생성자, 소멸자를 정의할 수 있습니다.
위 내용은 C# 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!