Кляса (праграмаваньне): розьніца паміж вэрсіямі
Змесціва выдалена Змесціва дададзена
д →Object Pascal/[[Delphi]]: прыбраў `;' перад `end' |
д ; + крыху артаграфіі і тэрміналёгіі |
||
Радок 1:
У [[аб'ектна-арыентаванае праграмаваньне|аб'ектна арыентаваным праграмаваньні]] '''кляс''' — канструкцыя [[мова праграмаваньня|мовы праграмаваньня]], якая выкарыстоўваецца для групаваньня зьвязаных [[поле (праграмаваньне)|палёў]] і [[мэтад (праграмаваньне)|мэтадаў]] і пад якой разумеецца пэўная сутнасьць, якая вызначае пэўныя агульныя паводзіны для [[аб'ект (праграмаваньне)|аб'ектаў]]. Мэтад, які ў пэўных мовах праграмаваньня называецца функцыяй, — набор інструкцый, якія маюць дачыненьне да клясу. У залежнасьці ад мовы праграмаваньня, клясы могуць падтрымліваць множнае [[
Фактычна [[аб'ектна-арыентаванае праграмаваньне]] часьцей за ўсё зводзіцца да стварэньня пэўнага набору клясаў, апісаньня сувязяў паміж гэтымі клясамі і іх уласьцівасьцяў і далейшага выкарыстаньня атрыманых клясаў. [[аб'ектна-арыентаванае праграмаваньне|Аб'ектна-арыентаваны падыход]] падчас свайго разьвіцьця накапіў мноства рэкамэндацыяў ([[шаблёны праектаваньня|шаблёнаў праектаваньня]]) па стварэньні клясаў і гіерархій клясаў.
Радок 7:
У шматлікіх [[аб'ектна-арыентаваная мова праграмаваньня|аб'ектна-арыентаваных мовах праграмаваньня]] стварэньне клясу адбываецца шляхам напісаньня пэўнай структуры, якая ўтрымлівае набор палёў, мэтадаў і канструктараў.
Функцыі [[канструктар (праграмаваньне)|канструктара]] і [[дэструктар (праграмаваньне)|дэструктара]] ў рэалізацыі
[[поле (праграмаваньне)|Палі]] прызначаныя для захоўваньня ўнутраных дадзеных
У клясе таксама могуць быць рэалізаваныя дапаможныя функцыі, якія часам называюцца функцыямі
=== Спэцыфікатары доступу ===
Мэтады і палі
'''Private''' ([[Ангельская мова|анг.]] асабісты) абмяжоўвае доступ для ўсіх, апроч самога
'''Protected''' ([[Ангельская мова|анг.]] абаронены) дазваляе самому клясу і ўсім ягоным падклясам зьвяртацца да палёў і мэтадаў клясу.
Радок 23:
'''Public''' ([[Ангельская мова|анг.]] агульны) азначае, што ўсе могуць атрымаць доступ да поля ці мэтада клясу па ягоным імі.
У дадатак, некаторыя мовы праграмаваньня, напрыклад [[C++]], падтрымліваюць мэханізм, калі функцыя ці кляс, апісаныя як сябар
== Адносіны між клясамі ==
*
* Асацыяцыя — аб'екты клясаў узаемадзейнічаюць адзін з адным.
* Агрэгацыя — аб'екты аднаго клясу ўваходзяць у склад іншага клясу.
Радок 81:
public class Example1
{
// Гэта кляс на мове Java, ён аўтаматычна пашыраецца ад
public static void main (String args[]) {
System.out.println("Hello world!");
Радок 95:
public class Example2 extends Example1
{
// Гэта кляс, які пашыраецца ад
protected int data;
public Example2()
{
// Гэта канструктар
data = 1;
}
Радок 203:
</source>
Гэта згаданы вышэй прыклад на мове C++, перапісаны на мове C#. Кляс, які называецца Hello, ствараецца канструктарам, які прымае радковы парамэтар. Калі выклікаецца мэтад Say(), экзэмпляр
=== [[Object Pascal]]/[[Delphi]] ===
<source lang="delphi">
type
Радок 213:
public
procedure Hello(s:string);
procedure Say;
end;
procedure THello.Hello(s:string);
begin
FWhat := s;
end;
procedure THello.Say;
begin
WriteLn('Hello ' + FWhat + '!');
end;
Радок 232:
Hello('world');
Say;
Free;
end;
end;
</source>
|