안녕하세요 여러분, 저는 우한 중국 사범 대학교의 SUNWEN입니다. 하하, 드디어 오후에 놀러 갈 시간이 생겼습니다. 티켓은 10 위안인데 비싸지 않습니다. 많은 사진을 얻을 수 있습니다. 여러분, 한 번 살펴보세요.
더 이상 고민하지 말고, 이번에 말씀드리고 싶은 것은 C#의 속성입니다. 예를 들어, 내가 남자라면 남자는 나다. 나는 신입생이고, 나의 신입생도 나의 속성이다. 매우 간단합니다. 하하! 아래에서 두 가지 예를 들어보겠습니다. 첫 번째 예에서는 수정 가능한 속성을 선언하는 방법과 추상 속성(Abstract)을 생성하고 이를 하위 클래스에서 삭제하는 방법을 설명합니다. 시작해 보겠습니다.
예 1:
000: // PRopertiesperson.cs
001: using System;
002: class Person
003: {
004: private string myName ="N/A";
005: private int myAge = 0;
006:
007: // 문자 속성 선언 Name
008: public string 이름
009: {
010: get
011: {
012: return myName;
013: }
014: set
015: {
016: myName = value;
017: }
018: }
019:
020: // int 유형의 Age 속성 선언
021: public int Age
022: {
023: get
024: {
025: return myAge
026: }
027: set
028: {
029: myAge = value; : }
031: }
032:
033: 공개 재정의 문자열 ToString()
034: {
035: return "Name = " + Name + ", Age = " + Age ;
036: }
037:
038: public static void Main()
039: {
040: Console.WriteLine("단순 속성");
041:
042: // Person 인스턴스 생성
043: Person person = new Person();
044:
045: //해당 속성을 인쇄합니다
046: Console.WriteLine("Person 세부정보 - {0}", 사람);
047:
048: // 속성에 대한 일부 설정
049: person.Name = "Joe";
050: person.Age = 99;
051: Console.WriteLine(" 개인 정보 - {0}", person);
052:
053: // 연령 추가
054: person.Age += 1;
055: Console.WriteLine("개인 정보 - {0}", person);
056: }
057: }
이 예제의 출력은 다음과 같습니다.
사람 세부 정보 - 이름 = 해당 없음, 나이 = 0
사람 세부 정보 - 이름 = Joe, 나이 = 99
사람 세부 정보 - 이름 = Joe, 나이 = 100
shapes.cs: Shape의 하위 클래스
shapetest.cs:
이러한 프로그램을 컴파일하려면 다음을 실행하세요. csc abstractshape .cs Shapetest.cs 실행 후 실행 프로그램 Shapetest.exe가 생성됩니다.
000: // Propertiesabstractshape.cs
001: using System;
002:
003: 공개 추상 클래스 Shape
004: {
005: 비공개 문자열 myId;
006:
007: public Shape(string s)
008: {
009: Id = s; // 이 문장은 Id 속성의 집합 빌더를 호출합니다
010: }
011 :
012: 공개 문자열 ID
013: {
014: get
015: {
016: return myId;
017: }
018:
019 : set
020: {
021: myId = value;
022: }
023: }
024:
025: public abstract double Area
026: {
027: get;
028: }
029:
030: 공개 재정의 문자열 ToString()
031: {
032: return Id + " Area = " + double.Format (Area, "F");
033: }
034: }
이 프로그램을 보면 사실 매우 간단합니다. 이 클래스 쌍의 객체가 생성되면 초기화 부분은 007-입니다. 010, Id 속성에 객체를 생성하기 위한 매개변수를 제공합니다. 그런 다음 이전 예제의 작업을 수행합니다. 실제로 JAVA의 인터페이스와 추상 속성을 비교할 수 있습니다. 추상 속성 Area와 마찬가지로 get이 있지만 get 메서드의 내용(메서드라고 부를 수 없을 수도 있음), 즉 get으로 수행할 작업을 지정하지 않습니다. 이 문제는 하위 클래스가 수행하는 작업에 의해 결정됩니다.
두 번째 파일: 이 파일에서 클래스는 Area 속성을 재정의합니다.
000: // Propertiesshapes.cs
001: public 클래스 Square : Shape
002: {
003: private int mySide;
004:
005: public Square(int side, string id) : base(id)
006 : {
007: mySide = side;
008: }
009:
010: 공개 재정의 이중 영역
011: {
012: get
013: {
014: return mySide * mySide;
015: }
016: }
017: }
018:
019: 공개 클래스 Circle: Shape
020: {
021: 비공개 int myRadius;
022:
023: public Circle(int radius, string id) : base(id)
024: {
025: myRadius = radius;
026 : }
027:
028: 공개 재정의 이중 영역
029: {
030: get
031: {
032: return myRadius * myRadius * System.Math.PI
033; : }
034: }
035: }
036:
037: 공개 클래스 Rectangle : Shape
038: {
039: 비공개 int myWidth;
040: 비공개 int myHeight;
041:
042: public Rectangle(int width, int height, string id) : base(id)
043: {
044: myWidth = width;
045: myHeight = height;
046: }
047:
048: public override double Area
049: {
050: get
051: {
052: return myWidth * myHeight;
053: }
054: }
055: }
이 예는 우리를 약간 혼란스럽게 만듭니다. 그것은 무엇을 하는가? 이는 JAVA의 Extends와 동일합니다. 그런 것 같아요.
아래 세 번째 파일은 매우 간단합니다.
001을 살펴보세요. : public class TestClass
002: {
003: public static void Main()
004: {
005: Shape[] Shape =
006: {
007: new Square (5, "사각형 #1"),
008: new Circle(3, "원형 #1"),
009: new Rectangle( 4, 5, "Rectangle #1")
010: };
011:
012: System.Console.WriteLine("Shapes Collection");
013: foreach(Shape s in Shape)
014: {
015: System.Console .WriteLine(s);
016: }
017:
018: }
019: }
이 예에서 이 기호는 실제로 확장, 즉 상속을 의미합니다. 직설적으로 말하면, 아래 문장에서 sunwenson은 sunwen을 확장하고, 이름은 sunwenson 클래스가 sunwen 클래스를 상속한다는 의미이며, 다음을 추가할 수 있습니다. sunwen에서 일부 항목을 동시에 삭제하는 것은 간단하지만 이는 소프트웨어의 재사용성을 크게 향상시킬 수 있기 때문에 현대 소프트웨어 개발에 중요한 기술입니다. , 저는 자격이 없습니다. 하하.
사각형 #1 면적 = 25.00
원 #1 면적 = 28.27
직사각형 #1 영역 = 20.00
이 섹션이 다시 끝났습니다. 특히 JAVA 또는 C++ 프로그래밍 경험이 없는 사람들에게는 이 섹션을 이해하기가 다소 어렵습니다. 계속 배울 용기가 있다면 분명 뭔가를 얻을 것입니다. 저도 좀 쉬어야겠습니다. ㅎㅎ 아직 아침도 안 먹었네요!