BasicKnowledgeCSharp/LessonsAndTasks/Lesson 64 - Статические методы, свойства, работа static/Program.cs

81 lines
1.8 KiB
C#
Raw Normal View History

2024-10-05 09:59:53 +03:00
using System;
/*
* Ключесвое слово static
*
* Статические методы класса
*
* Статические свойства класса
*/
class Numb
{
public Numb() => Counter++;
private static int counter;
public static int Counter
{
get { return counter; }
private set { counter = value; }
}
public int ObjectsCount => counter;
public static int GetCounter() => counter;
public int GetObjectsCount() => counter;
}
class MyClass_1
{
private static int a;
private int b;
public static void Foo()
{
Console.WriteLine("Вызван метод Foo()");
a = 5;
Console.WriteLine(a);
}
public void Bar()
{
Console.WriteLine("Вызван метод Bar()");
Console.WriteLine(a);
Foo();
}
private static int c;
public static int C
{
get { return c; }
set { c = value; }
}
public static int D { get; set; }
}
class Program
{
static void Main()
{
//Полиморфизм требует создание объекта класса и вызова метода на уровне экземпляра
MyClass_1 myClass = new MyClass_1();
myClass.Bar();
MyClass_1.Foo();// - статические методы недоступны на уровне экземпляра класса
MyClass_1.C = 3;
MyClass_1.D = 2;
Numb numb = new Numb();
Numb numb1 = new Numb();
Numb numb2 = new Numb();
Console.WriteLine(numb2.GetObjectsCount());
Console.WriteLine(numb2.ObjectsCount);
Console.WriteLine(Numb.Counter);
Console.WriteLine(Numb.GetCounter());
Console.ReadKey();
}
}