Similar presentations:
Объявление класса. Уровень доступа
1. Объявление класса
Классы объявляются с помощью ключевогослова class:
[уровень доступа] class <имя класса>
{
// Описание полей
// Описание методов
// Описание прочих членов класса
}
1
2.
Уровней доступа для классов два:1) public
2) internal
Для членов класса уровней доступа пять:
1) public
2) protected
3) internal
4) Private
5) protected internal
2
3.
Общая форма описания Поля<уровень доступа> <тип переменной> <имя
переменной>;
Общая форма описания Метода
<уровень доступа> <возращаемый тип><имя
метода > (<список
параметров>){тело_метода}
3
4.
Пример оъявления классаclass myClass
{
public string поле;//поля определяет состояние
//объекта
public void метод()//методы поведение
//будущего объекта
{
Console.WriteLine(поле);
}
}
4
5.
Создание класса и его экземпляраclass МойКласс
{
public string поле;//поля определяет состояние объекта
public void Метод() //методы поведение будущего объекта
{ Console.WriteLine(поле); }
}
class Program
{
static void Main(string[] args)
{
//Создаём экземпляр класса «МойКласс» с именем «пример»
МойКласс пример = new МойКласс();
пример.поле = "Привет Мир";
пример.Метод();
}
}
5
6.
class МойКласс{public void Метод()
{
Console.WriteLine("Вызван метод класса МойКласс в классе
МойКласс1");
}
}
class МойКласс1
{
public void Метод(МойКласс Мой)
{
Мой.Метод();
}
}
static void Main(string[] args)
{
МойКласс Мой = new МойКласс();
МойКласс1 Мой1 = new МойКласс1();
Мой1.Метод(Мой);
Console.ReadLine();
}
6
}
7. Модификаторы доступа
class МойКласс{
private string поле = null;
public void SetПоле(string значение) //метод мутатор
{
поле = значение;
}
public string GetПоле() //метод аксессор
{return поле;
}
}
7
8.
static void Main(string[] args){
МойКласс пример = new МойКласс();
//метод Мутатор
пример.SetПоле("Привет Мир");
//метод аксессор
string строка = пример.GetПоле();
Console.WriteLine(строка);
}
8
9.
class МойКласс{
private string поле = null;
public void SetПоле(string значение)
{
if (значение != "Война")
поле = значение;
}
public string GetПоле()
{
return поле.ToUpper();
}
}
9
10.
static void Main(string[] args){
МойКласс Мой = new МойКласс();
Мой.SetПоле("добро");
Console.WriteLine(Мой.GetПоле());
Console.ReadLine();
}
10
11. Свойства поля
class МойКласс{
private string поле = null;
public string Поле
{
set// public void SetПоле(string значение)
{ поле = value;}
get// public string GetПоле()
{ return поле; }
}
11
12.
static void Main(string[] args){
МойКласс пример = new МойКласс();
пример.Поле="Привет Мир";
string строка = пример.Поле;
Console.WriteLine(строка);
Console.ReadLine();
}
12
13.
class МойКласс{
private string место_рождения = null;
private string место_прожевания = null;
//свойство только для записи
public string Место_прожевания
{
set {Место_прожевания = value; }
}
//свойство только для чтения
public string Место_рождения
{
get { return Место_рождения; }
}
}
13
14. Автоматически реализуемые свойства
class МойКласс{
public int Зарплата {set;get;}
}
static void Main(string[] args)
{
МойКласс Мой = new МойКласс
{
Зарплата=3000
};
Console.WriteLine("Ваша зарплата составляет " + Мой.Зарплата +
"Р");
Console.ReadLine();
}
}
14
15.
class МойКласс{int зарплата;
public int Зарплата
{
set
{
if (value <= 3000) зарплата = 3001;
else зарплата = value;
}
get { return зарплата; }
}
}
static void Main(string[] args)
{
МойКласс Мой = new МойКласс
{ Зарплата = 3000
};
Console.WriteLine("Ваша зарплата составляет " + Мой.Зарплата +
"Р");
Console.ReadLine();
}
15
}
16. Конструктор
• В ООП конструктор класса это специальный блокинструкций, вызываемый при создании объекта.
• Конструкторы позволяют программисту задавать
значения по умолчанию, ограничивать число
установок и писать код, который является гибким и
удобным для чтения
• Если не предоставить конструктор для объекта, C#
создаст конструктор по умолчанию, который
создаст экземпляр объекта и задаст переменнымчленам значения по умолчанию, перечисленные
в таблице значений по умолчанию.
16
17.
Конструкторы бывают:• По умолчанию
class МойКласс() {}
• Пользовательские
class МойКласс(int a) {}
Имя конструктора всегда совпадает с именем
класса
Конструктор не имеет возвращаемых
значений.
17
18.
class МойКласс{
private string место_рождения, место_прожевания;
public string Место_прожевания { set; get;}
public string Место_рождения { set; get; }
public МойКласс()
{
Console.WriteLine("Конструктор по умолчанию");
}
public МойКласс(string место_прожевания, string
место_рождения)
{
Console.WriteLine("Пользовательский конструктор");
this.место_прожевания = место_прожевания;
this.место_рождения = место_рождения;
}
}
18
19.
static void Main(string[] args){
МойКласс пример = new МойКласс();
Сonsole.WriteLine(пример.Место_прожевания);
Console.WriteLine(пример.Место_рождения);
МойКласс пример1 = new МойКласс("Тверь","Торжок");
Console.WriteLine(пример1.Место_прожевания);
Console.WriteLine(пример1.Место_рождения);
}
19
20.
class my_class{ int x, y;
string name;
public int X
{get { return x; }}
public int Y
{get { return y; }}
public my_class(int x, int y)
{
this.x = x;
this.y = y;
Console.WriteLine("x=" + x + " y=" + y);
Console.WriteLine(new string('-',40));
}
public my_class(string name)
: this(300, 400)
{
this.name = name;
Console.WriteLine(name);
}
}
20
21.
static void Main(string[] args){
my_class my_class1 = new my_class("Имя");
Console.ReadLine();
}
}
21