ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ наслСдованиС классов

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Ρ€Π΅ΡˆΠ°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, входящиС Π² Π½Π΅Π΅ классы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ…. НаиболСС простоС — ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ нСзависимости классов, Ρ‚. Π΅. нСзависимости ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹Ρ… ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘ΠΎΠ»Π΅Π΅ слоТноС — ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ названия «ΠΈΠΌΠ΅Π΅Ρ‚» (has-a) ΠΈ «Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚», ΠΈΠ½Π°Ρ‡Π΅ «ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ‡Π°ΡΡ‚ΡŒΡŽ» (is-part-of). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ наслСдованиС классов (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² классов

Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Ρ€Π΅ΡˆΠ°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, входящиС Π² Π½Π΅Π΅ классы ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ…. НаиболСС простоС — ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ нСзависимости классов, Ρ‚. Π΅. нСзависимости ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹Ρ… ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π‘ΠΎΠ»Π΅Π΅ слоТноС — ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ названия «ΠΈΠΌΠ΅Π΅Ρ‚» (has-a) ΠΈ «Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚», ΠΈΠ½Π°Ρ‡Π΅ «ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ‡Π°ΡΡ‚ΡŒΡŽ» (is-part-of).

Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ — ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π½Ρ‹Ρ… классов входят ΠΊΠ°ΠΊ поля Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ) класса. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π±Π΅Π· Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов, Ρ‚. Π΅. ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Π² Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ смыслС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Ρ…ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠ΅ Π² Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ.

Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C# ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 1301.cs) класс «Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ»:

class Point.

{

double Ρ…, Ρƒ;

public double X {get {return x;} set {x = value;}} public double Y {get {return y;} set {y = value;}}.

}

Π’ ΠΊΠ»Π°ΡΡΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля double Ρ…, Ρƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ. Бвойства X ΠΈ Y ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ доступ ΠΊ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ, прСдставлСнной ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса Point. Π’ ΠΊΠ»Π°ΡΡΠ΅ Point Π½Π΅Ρ‚ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ конструктора, ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ добавляСт конструктор умолчания — ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ конструктор Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ создаваСмой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса Point ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π±ΠΎΠ»Π΅Π΅ слоТныС классы. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ класса класс Circle, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдставляСт «ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ». ΠžΠ±ΡŠΠ΅ΠΊΡ‚ класса Point (Ρ‚ΠΎΡ‡ΠΊΡƒ) Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π° окруТности.

НачнСм с ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ классов ΠΈ, ΠΎΡ‚Π»ΠΎΠΆΠΈΠ² объяснСния, Π΄Π°Π΄ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса:

class Circle.

{ // Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля:

double rad; 11 радиус окруТности Point centre = new Point (); // Ρ†Π΅Π½Ρ‚Ρ€ окруТности H Π‘войство для радиуса окруТности: public double Rad {.

get { return rad; } set { rad = value; }.

}

// Бвойство для значСния Π΄Π»ΠΈΠ½Ρ‹ окруТности:

public double Len { get { return 2 * rad * Math. PI; } }.

// Бвойство для Ρ†Π΅Π½Ρ‚Ρ€Π° окруТности: public Point Centre {.

get { return centre; } set { centre = value; }.

}

public void display ().

{

Console.WriteLine («Centre: X={0}, Y={1};» .

+ «Radius={2}, Length ={ 3, 6: f2}», centre. X, centre. Y, this. rad, Len);

} }

Π’ ΠΊΠ»Π°ΡΡΠ΅ Circle Π΄Π²Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… поля: double rad — радиус окруТности ΠΈ Point centre — ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Point. Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этой ссылки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ new, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся явноС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρƒ класса Point. Π’Π΅ΠΌ самым ΠΏΡ€ΠΈ создании ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° «ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ» всСгда создаСтся Π² Π²ΠΈΠ΄Π΅ Π΅Π³ΠΎ поля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «Ρ‚ΠΎΡ‡ΠΊΠ°», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π½Ρ‚Ρ€ окруТности.

Π’Ρ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… свойства ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ доступ ΠΊ Ρ…арактСристикам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-окруТности: Rad — радиус окруТности, Len — Π΄Π»ΠΈΠ½Π° окруТности, Centre — Ρ†Π΅Π½Ρ‚Ρ€ окруТности.

Π’ ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ displayO, выводящий ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… характСристик ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ»Π°ΡΡΠ΅ Circle Π½Π΅Ρ‚ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… конструкторов, Ρ‚ΠΎ Π½Π΅ΡΠ²Π½ΠΎ создаСтся конструктор Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈ ΠΏΠΎΠ»Ρ опрСдСляСмого с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ создан ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Circle. Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств классов Circle ΠΈ Point ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ значСния Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ. ΠœΠ΅Ρ‚ΠΎΠ΄ displayO Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ свСдСния ΠΎ Ρ…арактСристиках ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

static void Main ().

{

Circle rim = new CircleQ; rim.Centre.X = 10; rim.Centre.Y = 20; rim. Rad = 3.0; rim. display ();

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Centre: X=10, Y=20; Radius=3, Length= 18,85.

ОсновноС, Π½Π° Ρ‡Ρ‚ΠΎ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, — Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Point. ИмСнно это являСтся основным ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ классов. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ класса Point явно создаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Circle.

На Ρ€ΠΈΡ. 13.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов, находящихся Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ умолчания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ классов автоматичСски, Π½Π° ΡΡ…Π΅ΠΌΠ°Ρ… классов Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹. Π’ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Point являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ поля centre ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Circle, Π½ΠΈΠΊΠ°ΠΊ явно Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ классов.

Рис. 73.7. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ классов.

НС ΠΈΠ·ΠΌΠ΅Π½ΡΡ класс Point, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ класс «ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ классов (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 132.cs):

class Circle { // Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ поля:

double rad; // радиус окруТности Point centre; 11 ссылка Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ public Circle (Point Ρ€, double rd) 11 конструктор {

centre = p; rad = rd;

}

public double Rad (…) public double Len {…} public Point Centre {…} public void display () {…}.

}

Π’ Ρ‚СкстС Π½ΠΎΠ²ΠΎΠ³ΠΎ класса Circle ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ объявлСния ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ — ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Point. Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ displayO ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ класса Circle для создания Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΆΠ΅ сущСствовал ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Point, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ класса Circle Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля centre.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов, находящихся Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ (рис. 13.2), практичСски Ρ‚Π° ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Волько Π² ΠΊΠ»Π°ΡΡΠ΅ Circle явно присутствуСт конструктор ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°.

Puc. 13.2. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ классов.

Puc. 13.2. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ классов.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Main) создан ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Point. Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств X ΠΈ Y ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ значСния Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ. На ΠΎΡΠ½ΠΎΠ²Π΅ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° конструктор класса Circle Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ». ΠœΠ΅Ρ‚ΠΎΠ΄ displayO Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ свСдСния ΠΎ Ρ…арактСристиках построСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

static void Main ().

{

Point pt = new PointQ; pt. X = 10; pt. Y = 20;

Circle rim = new Circle (pt, 10); rim. displayO;

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Centre: X=10, Y=20; Radius=10, Length=62,83.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ Circle Π½Π΅Ρ‚ явной ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поля centre. Для обСспСчСния Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Point Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Circle Π² ΠΊΠ»Π°ΡΡΠ΅ Circle явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ конструктор, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слуТит ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Point. Π’ Ρ‚Π΅Π»Π΅ конструктора Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ссылки присваиваСтся полю centre класса Circle.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ