000132. ООП в c# Часть 1
СПЕЦИФИКАТОР ДОСТУПА ИМЯ КЛАССА { СПЕЦИФИКАТОР ДОСТУПА КОНСТРУКТОР() { } ПОЛЯ, МЕТОДЫ, СВОЙСТВА, ПРОЦЕДУРЫ. } |
Как уже звучало в предыдущих уроках, есть 4 спецификатора доступа public, protected, private и internal. Этот спецификатор указывает видимость содержимого класса из вне(то есть за пределами класса). Я составил таблицу, и перечислил разницу между этими спецификаторами:
Спецификатор | Описание |
public | Публичный, поле доступно всем желающим объектам, которые работают с этим классом |
protected | Защищённый, поле доступно только классу и его потомку |
private | Приватное, поле или метод доступно только самому классу |
internal | Внутренний, поле доступно только в одной области пространства имён. Не будет виден для другого namespace. |
Пример класса вы видели из предыдущих уроков по c#. По-этому для вас объявить класс не составит проблем. Вот у меня получился примерно такой:
public class Car { public int Speed = 0; public int Accelerate = 0; public int Handling = 0; public Car() { // Пустой конструктор } public void SetSpeed(int NewSpeed) { Speed = NewSpeed; } } |
Зелёным цветом обозначены изначальные данные, которые свойственны этому классу. Их называют полями класса. Синим цветом обозначен конструктор класса. Фиолетовым цветом обозначены функции, которые может выполнять объект класса. В C# такие функции принято называть методами, так что метод - это та же функция. Количество полей, методов и конструкторов в классе может быть сколько угодно. Так же само и классов в пространстве имён может быть сколько влезет. Давайте создадим ещё один класс:
public class Lanborghini { public int DoorCount = 4; public string EngineType = "Automatic"; public Lanborghini() { // Пустой конструктор } } |
Существует такое понятие, как наследование классов. В народе это известно как понятия "Предок-Потомок", "Отец-Сын", "Иерархия классов". Это понятия говорит о том, что класс-наследник(Сын, Потомок) может наследовать свойства, процедуры класса "Предка"("Отца"). Если навести пример из жизни, то Сын Иван может наследовать некие особые приметы Отца Дмитрия, например, цвет глаз, манеру походки и тому подобное. Давайте сделаем тоже самое в программировании. Для этого нужно объявить класса-наследника. Пусть это будет Ламборгини, который наследует класс Машина. Наш код теперь будет иметь следующий вид:
public class Car { public int Speed = 0; public Car() { } public void SetSpeed(int NewSpeed) { Speed = NewSpeed; } } public class Lanborghini : Car{ public int DoorCount = 4; public string EngineType = "Automatic"; public Lanborghini() { } } |
Распознать класс-наследника можно по этой записи:
Это значит, что класс Lanborghini наследует некие методы и свойства класса Car и при этом имеет свои же методы. Давайте напишем код программы, где мы создадим объект класса Lanborghini:
using System; namespace Consol { class Program { static void Main() { Lanborghini Lambo = new Lanborghini(); // Здесь будут другие команды Console.ReadKey(); } } public class Car { public int Speed = 0; public Car() { } public void SetSpeed(int NewSpeed) { Speed = NewSpeed; } } public class Lanborghini : Car{ public int DoorCount = 4; public string EngineType = "Automatic"; public Lanborghini() { } } } |
public class Gallardo : Lanborghini { public int EnginePower = 1500; public int TireSize = 4; public Gallardo() { } } |
Gallardo MyCar = new Gallardo(); |
protected int Speed = 0; |
public int GSpeed; |
А в конструкторе заполним его:
public Gallardo() { GSpeed = Speed; } |
public class Lanborghini : Car{ public int DoorCount = 4; public string EngineType = "Automatic"; public int GSpeed; public Lanborghini() { GSpeed = Speed; } } public class Gallardo : Lanborghini { public int EnginePower = 1500; public int TireSize = 4; public Gallardo() { } } |
С этого урока вы уже понимаете, для чего нужен символ ":" в следующее выражение из уроков о ScriptHoockDotNet:
public class Thread : Script { // ... } |
Класс Thread (наш аналог потока из Sanny Builder) наследует поля, свойства, методы, процедуры, классы и тому подобное из "главного" класса Script, который находится в библиотеке ScriptHookDotNet.dll. Это как минимум основы ООП, и у ваш арсенал сриптинга должны входить эти возможности и умение ими воспользоваться. :) Важно! В отличии от некоторых языков программирования, класс-Потомок может наследовать поля только одного класса-Родителя.
P.S Возможно, некоторые вещи я неправильно назвал или описал. Напишите в комментах, что не так, я исправлю.|964|1|0|80243543png
425504
400474\|49862482
png174
173|26345781png
174156\|42299098
png169
195|37370351png
169173\|46562547
png187
148|07018888png
167195\|90920270
png167
195||oop_v_c|1392798677
Last updated