Разделы презентаций


Лекция 5. Введение в классы, объекты и методы Язык программирования C# C#

Содержание

ООП (Объектно-ориентированное программирование) – парадигма программирования, в которой основными концепциями являются понятия объектов и классов. Класс – прототип, с которого создается объект. Класс является основой для приложения; он содержит методы и

Слайды и текст этой презентации

Слайд 1Лекция 5. Введение в классы,
объекты и методы

Язык программирования C#


C# Programming Language

Лекция 5. Введение в классы, объекты и методыЯзык программирования C# C# Programming Language

Слайд 3ООП (Объектно-ориентированное программирование) – парадигма программирования, в которой основными концепциями

являются понятия объектов и классов.
Класс – прототип, с которого

создается объект. Класс является основой для приложения; он содержит методы и переменные, которые являются его составляющими. Поля определяют состояние, а методы – поведение будущего объекта.
ООП (Объектно-ориентированное программирование) – парадигма программирования, в которой основными концепциями являются понятия объектов и классов. Класс –

Слайд 4Класс – модель объекта в реальной жизни (Кошка, Машина, Дом,

и т.д.). Два экземпляра данного класса могут содержать разные данные,

но они всегда имеют одни и те же методы. Существует только один класс автомобилей, но приложение может создать много разных объектов автомобилей (Спорт, Грузовик, Маршрутка).
Объявление класса включает в себя название, поля, конструкторы и методы.

Класс – модель объекта в реальной жизни (Кошка, Машина, Дом, и т.д.). Два экземпляра данного класса могут

Слайд 10Class
Класс–это конструкция языка, состоящая из ключевого

слова class, идентификатора (имени) и тела.
Класс может содержать в своем

теле: поля, методы, свойства и события.
Поля определяют состояние, а методы поведение будущего объекта.
classMyClass
{
public int field; // Поле
public void Method()// Метод
{
Console.WriteLine(field);
}
}
ClassКласс–это     конструкция языка, состоящая из ключевого слова class, идентификатора (имени) и тела.Класс может

Слайд 11 Класс представляет собой шаблон, по которому определяется форма объекта. В

нем указываются данные и код, который будет оперировать этими данными.

В C# используется спецификация класса для построения объектов , которые являются экземплярами класса.
Класс, по существу, представляет собой ряд схематических описаний способа построения объекта. При этом очень важно подчеркнуть, что класс является логической абстракцией.
Класс представляет собой шаблон, по которому определяется форма объекта. В нем указываются данные и код, который будет

Слайд 12 Физическое представление класса появится в оперативной памяти лишь после того,

как будет создан объект этого класса.

Общая форма определения класса

При определении

класса объявляются данные, которые он содержит, а также код, оперирующий этими данными. Если самые простые классы могут содержать только код или только данные, то большинство настоящих классов содержит и то и другое.
Физическое представление класса появится в оперативной памяти лишь после того, как будет создан объект этого класса.Общая форма

Слайд 13class имя_класса {
// Объявление переменных экземпляра.
доступ

тип переменная1;
доступ тип переменная2;
//...
доступ

тип переменнаяN ;

// Объявление методов.
доступ возращаемый_тип метод1 (параметры) {
// тело метода
}
доступ возращаемый_тип метод2 (параметры) {
// тело метода
}
//. . .
доступ возращаемый_тип методы (параметры) {
// тело метода
}
}
class имя_класса {  // Объявление переменных экземпляра.  доступ тип переменная1;  доступ тип переменная2;

Слайд 14 Перед каждым объявлением переменной и метода указывается доступ.
Члены класса

могут быть как закрытыми (private) в пределах класса, так открытыми

(public), т.е. более доступными.
Спецификатор доступа определяет тип разрешенного доступа.
Указывать спецификатор доступа не обязательно, но если он отсутствует, то объявляемый член считается закрытым в пределах класса.
Члены с закрытым доступом могут использоваться только другими членами их класса.
Перед каждым объявлением переменной и метода указывается доступ. 	Члены класса могут быть как закрытыми (private) в пределах

Слайд 15class Building {
public int Floors; // количество этажей

public
public int Area; // общая площадь

здания
public int Occupants; // количество жильцов
}
доступ тип имя_переменной ;
Определение class обозначает создание нового типа данных. В данном случае новый тип данных называется Building. Объявление class лишь описывает тип, но не создает конкретный объект.
class Building {  public int Floors; // количество этажей public  public int Area;  //

Слайд 16Для того чтобы создать конкретный объект типа Building, придется воспользоваться

следующим оператором.
 
Building house = new Building(); // создать объект типа

Building
 
После выполнения этого оператора объект house станет экземпляром класса Building, т.е. обретет "физическую" реальность. Не обращайте пока что внимание на отдельные составляющие данного оператора.
Для того чтобы создать конкретный объект типа Building, придется воспользоваться следующим оператором. Building house = new Building(); //

Слайд 17Для доступа к этим переменным служит оператор доступа к члену

класса, который принято называть оператором-точкой. Оператор-точка связывает имя объекта с

именем члена класса. Ниже приведена общая форма оператора-точки.
 объект.член
 В этой форме объект указывается слева, а член — справа. Например, присваивание значения 2 переменной Floors объекта house осуществляется с помощью следующего оператора.
 
house.Floors = 2;
оператор-точка служит для доступа к переменным экземпляра и методам.
Для доступа к этим переменным служит оператор доступа к члену класса, который принято называть оператором-точкой. Оператор-точка связывает

Слайд 18// Программа, в которой используется класс Building.
using System;
 
class

Building {
  public int Floors;    //    количество этажей
  public int Area;    //

   общая площадь здания
  public int Occupants;    //    количество жильцов
}
// Программа, в которой используется класс Building. using System;  class Building {   public int Floors;    //    количество этажей

Слайд 19// В этом классе объявляется объект типа Building,
class BuildingDemo

{
  static void Main() {
    Building house

= new Building(); // создать объект типа Building
    int areaPP; // площадь на одного человека
    // Присвоить значения полям в объекте house,
 
    house.Occupants = 4;
    house.Area = 2500;
    house.Floors = 2;
// В этом классе объявляется объект типа Building, class BuildingDemo {   static void Main() {  

Слайд 20    // Вычислить площадь на одного человека.
    areaPP =

house.Area / house.Occupants;
 
    Console.WriteLine("Дом имеет:\n " +
              house.Floors + " этажа\n

" +
              house.Occupants + " жильца\n " +
              house.Area +
              " кв. футов общей площади, из них\n " +
              areaPP + " приходится на одного человека");
  }
}
    // Вычислить площадь на одного человека.     areaPP = house.Area / house.Occupants;      Console.WriteLine(

Слайд 21Дом имеет:
2 этажа
4 жильца
2500 кв. футов общей

площади, из них
625 приходится на одного человека

Дом имеет: 2 этажа 4 жильца 2500 кв. футов общей площади, из них 625 приходится на одного

Слайд 22 Основополагающий принцип: у каждого объекта имеются свои копии переменных экземпляра,

определенных в его классе.
Между обоими объектами не существует никакой

связи, за исключением того факта, что они являются объектами одного и того же типа.
Так, если имеются два объекта типа Building, то у каждого из них своя копия переменных Floors, Area и Occupants, а их содержимое в обоих объектах может отличаться.
Основополагающий принцип: у каждого объекта имеются свои копии переменных экземпляра, определенных в его классе. 	Между обоими объектами

Слайд 23// В этой программе создаются два объекта типа Building.
using

System;
class Building {
  public int Floors; // количество

этажей
  public int Area;    // общая площадь здания
  public int Occupants; // количество жильцов
}
// В этом классе объявляются два объекта типа Building,
class BuildingDemo {
  static void Main() {
    Building house = new Building();
    Building office = new Building();
    int areaPP; // площадь на одного человека
// В этой программе создаются два объекта типа Building. using System; class Building {   public int

Слайд 24    // Присвоить значения полям в объекте house,
    house.Occupants

= 4;
    house.Area = 2500;
    house.Floors = 2;


 
    // Присвоить значения полям в объекте office,
    office.Occupants = 25;
    office.Area = 4200;
    office.Floors = 3;
    // Присвоить значения полям в объекте house,     house.Occupants = 4;     house.Area = 2500;    

Слайд 25    // Присвоить значения полям в объекте house,
    house.Occupants

= 4;
    house.Area = 2500;
    house.Floors = 2;


 
    // Присвоить значения полям в объекте office,
    office.Occupants = 25;
    office.Area = 4200;
    office.Floors = 3;
    // Присвоить значения полям в объекте house,     house.Occupants = 4;     house.Area = 2500;    

Слайд 26    // Вычислить площадь на одного человека в жилом доме.


    areaPP = house.Area / house.Occupants;
 
    Console.WriteLine("Дом имеет:\n " +


          house.Floors + " этажа\n " +
          house.Occupants + " жильца\n " +
          house.Area +
          " кв. футов общей площади, из них\n " +
          areaPP + " приходится на одного человека");
    // Вычислить площадь на одного человека в жилом доме.     areaPP = house.Area / house.Occupants;     

Слайд 27    // Вычислить площадь на одного человека в учреждении.
   

areaPP = office.Area / office.Occupants;
 
    Console.WriteLine("Учреждение имеет:\n "    +
          office.Floors

+ " этажа\n " +
         office.Occupants + " работников\n " +
         office.Area +
         " кв. футов общей площади, из них\n " +
         areaPP + " приходится на одного человека");
  }
}
    // Вычислить площадь на одного человека в учреждении.     areaPP = office.Area / office.Occupants;      Console.WriteLine(

Слайд 28Дом имеет:
2 этажа
4 жильца
2500 кв. футов общей

площади, из них
625 приходится на одного человека
Учреждение имеет:


3 этажа
25 работников
4200 кв. футов общей площади, из них
168 приходится на одного человека
Дом имеет: 2 этажа 4 жильца 2500 кв. футов общей площади, из них 625 приходится на одного

Слайд 29данные из объекта house полностью отделены от данных, содержащихся в

объекте office.

данные из объекта house полностью отделены от данных, содержащихся в объекте office.

Слайд 30Создание объектов
 Building house = new Building();
Эта строка объявления выполняет

три функции.
Во-первых, объявляется переменная house, относящаяся к типу класса

Building. Сама эта переменная не является объектом, а лишь переменной, которая может ссылаться на объект.
Во-вторых, создается конкретная, физическая, копия объекта. Это делается с помощью оператора new.
И наконец, переменной house присваивается ссылка на данный объект. Таким образом, после выполнения анализируемой строки объявленная переменная house ссылается на объект типа Building.
Создание объектов Building house = new Building(); Эта строка объявления выполняет три функции. Во-первых, объявляется переменная house, относящаяся

Слайд 31Оператор new динамически (т.е. во время выполнения) распределяет память для

объекта и возвращает ссылку на него, которая затем сохраняется в

переменной.

Следовательно, в C# для объектов всех классов должна быть динамически распределена память.
Оператор new динамически (т.е. во время выполнения) распределяет память для объекта и возвращает ссылку на него, которая

Слайд 32Объявление переменной house можно отделить от создания объекта, на который

она ссылается, следующим образом.
Building house; // объявить ссылку на объект


house = new Building(); // распределить память для объекта типа Building
 
В первой строке объявляется переменная house в виде ссылки на объект типа Building. Следовательно, house — это переменная, которая может ссылаться на объект, хотя сама она не является объектом.
А во второй строке создается новый объект типа Building, и ссылка на него присваивается переменной house. В итоге переменная house оказывается связанной с данным объектом.
Объявление переменной house можно отделить от создания объекта, на который она ссылается, следующим образом.Building house; // объявить

Слайд 33Объекты классов доступны по ссылке, поэтому классы называются ссылочными типами.

Главное отличие типов значений от ссылочных типов заключается в том,

что именно содержит переменная каждого из этих типов. Так, переменная типа значения содержит конкретное значение. Например, во фрагменте кода
 int х;
х = 10;
 переменная х содержит значение 10, поскольку она относится к типу int, который является типом значения. Но в строке
 Building house = new Building();
 переменная house содержит не сам объект, а лишь ссылку на него.
Объекты классов доступны по ссылке, поэтому классы называются ссылочными типами. Главное отличие типов значений от ссылочных типов

Слайд 34Переменные ссылочного типа и присваивание
 
В операции присваивания переменные ссылочного типа

действуют иначе, чем переменные типа значения, например типа int.
Когда

одна переменная типа значения присваивается другой, ситуация оказывается довольно простой. Переменная, находящаяся в левой части оператора присваивания, получает копию значения переменной, находящейся в правой части этого оператора.
Переменные ссылочного типа и присваивание В операции присваивания переменные ссылочного типа действуют иначе, чем переменные типа значения, например

Слайд 35Сам же объект не копируется.  
Building house1 = new Building();


Building house2 = house1;
Переменные house1 и house2, ссылаются на

один и тот же объект. Когда переменная house1 присваивается переменой house2, то в конечном итоге переменная house2 просто ссылается на тот же самый объект, что и переменная house1.
Следовательно, этим объектом можно оперировать с помощью переменной house1 или house2. Например, после очередного присваивания 
Сам же объект не копируется.  Building house1 = new Building(); Building house2 = house1; Переменные house1 и

Слайд 36
house1.Area = 2600;
 
оба метода WriteLine()
 
Console.WriteLine(house1.Area);
Console.WriteLine(house2.Area);
 
выводят одно и

то же значение: 2600.

house1.Area = 2600;  оба метода WriteLine() Console.WriteLine(house1.Area); Console.WriteLine(house2.Area);  выводят одно и то же значение: 2600.

Слайд 37Несмотря на то что обе переменные, house1 и house2, ссылаются

на один и тот же объект, они никак иначе не

связаны друг с другом. Например, в результате следующей последовательности операций присваивания просто изменяется объект, на который ссылается переменная house2.
Building house1 = new Building();
Building house2 = house1;

Building house3 = new Building();
house2 = house3; // теперь обе переменные, house2 и house3,
// ссылаются на один и тот же объект.
 
Несмотря на то что обе переменные, house1 и house2, ссылаются на один и тот же объект, они

Слайд 38Методы представляют собой подпрограммы, которые манипулируют данными, определенными в классе,

а во многих случаях они предоставляют доступ к этим данным.

Как правило, другие части программы взаимодействуют с классом посредством его методов.
Метод состоит из одного или нескольких операторов. В грамотно написанном коде C# каждый метод выполняет только одну функцию. У каждого метода имеется свое имя, по которому он вызывается. Следует, однако, иметь в виду, что идентификатор Main() зарезервирован для метода, с которого начинается выполнение программы.
Методы представляют собой подпрограммы, которые манипулируют данными, определенными в классе, а во многих случаях они предоставляют доступ

Слайд 39· Метод — это именованная часть программы, которая может вызываться

из других частей программы столько раз, сколько необходимо.

· Метод

— это функция или процедура, выполняющая одну задачу.
· Метод — это именованная часть программы, которая может вызываться из других частей программы столько раз, сколько

Слайд 40· О функциях и процедурах. В некоторых языках программирования (например,

в Паскале) функции и процедуры (подпрограммы, не возвращающие значения) чётко

разграничены синтаксисом языка.

В языке С#, — процедуры являются частным случаем (подмножеством) функций, возвращающими значение типа void — пустое значение.
· О функциях и процедурах. В некоторых языках программирования (например, в Паскале) функции и процедуры (подпрограммы, не

Слайд 42Создание и вызов
Для создания метода необходимо:

1)Указать тип

возвращаемого значения, если метод ничего не возвращает указать void.

2)Выбрать

имя метода в соответствии с действием, которое он выполняет.
Создание и вызов Для создания метода необходимо:  1)Указать тип возвращаемого значения, если метод ничего не возвращает

Слайд 433)Если метод принимает аргументы – обязательно указать их тип и

имя, если нет – оставить аргументные скобки () пустыми.

4)Если

метод имеет возвращаемое значение, обязательно в теле метода должно присутствовать ключевое слово return. Тип возвращаемого значения метода должен соответствовать типу значения, указанному после ключевого слова return.
3)Если метод принимает аргументы – обязательно указать их тип и имя, если нет – оставить аргументные скобки

Слайд 44Для вызова метода необходимо:

1)Написать имя метода.

2)Обязательно указать после

имени аргументные скобки(), если метод принимает какие-то аргументы, передать соответствующее

количество аргументов соответствующего типа.
Для вызова метода необходимо: 1)Написать имя метода. 2)Обязательно указать после имени аргументные скобки(), если метод принимает какие-то

Слайд 46class Program
{
static void Procedure()
{

Console.WriteLine("Hello!");

}
static void Main()
{
Procedure();
Console.ReadKey();
}
}
class Program  {static void Procedure()    {       Console.WriteLine(

Слайд 47// Добавить метод в класс Building.
using System;
 class Building

{
  public    int    Floors;    //количество этажей
  public    int

   Area;    //общая площадь здания
  public    int    Occupants;    //количество жильцов
 
  // Вывести площадь на одного человека,
  public void AreaPerPerson() {
    Console.WriteLine(" " + Area / Occupants +
             " приходится на одного человека");
  }
}
// Добавить метод в класс Building. using System;  class Building {   public    int    Floors;    //количество этажей

Слайд 48// Использовать метод AreaPerPerson().
class BuildingDemo {
  static void

Main() {
    Building house = new Building();
    Building

office = new Building();
// Использовать метод AreaPerPerson(). class BuildingDemo {   static void Main() {     Building house = new

Слайд 49// Присвоить значения полям в объекте house,
    house.Occupants =

4;
    house.Area = 2500;
    house.Floors = 2;
 
   

// Присвоить значения полям в объекте office,
    office.Occupants = 25;
    office.Area = 4200;
    office.Floors = 3;
// Присвоить значения полям в объекте house,     house.Occupants = 4;     house.Area = 2500;     house.Floors

Слайд 50Console.WriteLine("Дом имеет:\n " +
           house.Floors + " этажа\n " +
           house.Occupants +

" жильца\n "
                   + house.Area +
           "кв. футов общей площади,

из них");
    house.AreaPerPerson() ; // В этой строке //вызывается метод AreaPerPerson() для объекта house.

    Console.WriteLine();
Console.WriteLine(

Слайд 51    Console.WriteLine("Учреждение имеет:\n " +
            office.Floors + " этажа\n " +
            office.Occupants

+ " работников\n " +
            office.Area +
            " кв. футов

общей площади, из них");
    office.AreaPerPerson() ;
  }
}
    Console.WriteLine(

Слайд 52Дом имеет:
 2 этажа
 4 жильца
 2500 кв. футов общей площади,

из них
 625 приходится на одного человека
 
Учреждение имеет:
 3 этажа


 25 работников
 4200 кв. футов общей площади, из них
 168 приходится на одного человека
Дом имеет:  2 этажа  4 жильца  2500 кв. футов общей площади, из них  625 приходится на одного человека

Слайд 53// Возвратить значение из метода AreaPerPerson().
using System;
class Building

{
  public int Floors; // количество этажей
  public int Area; // общая площадь здания
  public int Occupants; // количество

жильцов
 
  // Возвратить величину площади на одного человека,
  public int AreaPerPerson() {
    return Area / Occupants;
  }
}
// Возвратить значение из метода AreaPerPerson(). using System; class Building {   public int Floors; // количество этажей   public int Area; // общая площадь

Слайд 54// Использовать значение, возвращаемое методом AreaPerPerson().
class BuildingDemo {
 

static void Main() {
    Building house = new Building();


    Building office = new Building();
    int areaPP; // площадь на одного человека

// Использовать значение, возвращаемое методом AreaPerPerson(). class BuildingDemo {   static void Main() {     Building house

Слайд 55// Присвоить значения полям в объекте house,
    house.Occupants =

4;
    house.Area = 2500;
    house.Floors = 2;
 
   

// Присвоить значения полям в объекте office,
    office.Occupants = 25;
    office.Area = 4200;
    office.Floors = 3;
// Присвоить значения полям в объекте house,     house.Occupants = 4;     house.Area = 2500;     house.Floors

Слайд 56    // Получить площадь на одного человека в жилом доме.


    areaPP = house.AreaPerPerson();
 
    Console.WriteLine("Дом имеет:\n " +
           house.Floors +

" этажа\n " +
           house.Occupants + " жильца\n " +
           house.Area +
           " кв. футов общей площади, из них\n " +
           areaPP + " приходится на одного человека");
 
    Console.WriteLine();
    // Получить площадь на одного человека в жилом доме.     areaPP = house.AreaPerPerson();      Console.WriteLine(

Слайд 57    // Получить площадь на одного человека в учреждении.
   

areaPP = office.AreaPerPerson();
    Console.WriteLine ("Учреждение имеет :\n " +
            office.Floors

+ " этажа\n " +
            office.Occupants + " работников\n " +
            office.Area +
            " кв. футов общей площади, из них\n " +
            areaPP + " приходится на одного человека");
  }
}
    // Получить площадь на одного человека в учреждении.     areaPP = office.AreaPerPerson();     Console.WriteLine (

Слайд 58 class Program
{
static int Add(int summand1, int summand2)

{
return

summand1 + summand2;
}
static void Main()
{
int summand1 = 2, summand2 = 3;
int sum = Add(summand1, summand2);

Console.WriteLine("{0} + {1} = {2}", summand1, summand2, sum);
// Delay.
Console.ReadKey();
}
}
class Program  {static int Add(int summand1, int summand2)    {

Слайд 59namespace WindowsFormsApp30
{
public partial class Form1 : Form

{

static int Add(int summand1, int

summand2)
{
return summand1 + summand2;
}

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
int summand1 = 2, summand2 = 3;
int sum = Add(summand1, summand2);
MessageBox.Show("sum="+sum.ToString());
}
}
namespace WindowsFormsApp30{  public partial class Form1 : Form  {    static int Add(int

Слайд 60Повторение:
Для преобразования текста, находящегося, например, в поле редактирования, в целое

число нужно использовать функцию Convert.ToInt32(), в дробное число — Convert.ToDouble()

a

= Convert.ToInt32(textBox1.Text);
Повторение:Для преобразования текста, находящегося, например, в поле редактирования, в целое число нужно использовать функцию Convert.ToInt32(), в дробное

Слайд 61Повторение:

Преобразовать численное значение в строку позволяет метод ToString().

label1.Text =

"summand1 + summand2 = " + sum.ToString();

MessageBox.Show("sum="+sum.ToString());

Повторение:Преобразовать численное значение в строку позволяет метод ToString(). label1.Text =

Слайд 62class Program
{
// Методы, которые

возвращают логическое значение, называют методами-предикатами.

static bool

And(bool a, bool b)
{
return a && b;
}

static void Main()
{
bool operand1 = true, operand2 = true;

bool result = And(operand1, operand2);

Console.WriteLine("{0} && {1} = {2}", operand1, operand2, result);

// Delay.
Console.ReadKey();
}
}
class Program  {    // Методы, которые возвращают логическое значение, называют методами-предикатами.

Слайд 63 class Program
{
static string

Compare(int value1, int value2)
{

if (value1 < value2)
{
return "Comparison Less Then";
}
else if (value1 > value2)
{
return "Comparison Greater Then";
}
return "Comparison Equal";
}

Слайд 64static void Main()
{

int operand1 = 1, operand2 = 2;

string result = Compare(operand1, operand2);

Console.WriteLine(result);

// Delay.
Console.ReadKey();
}
}
static void Main()    {      int operand1 = 1, operand2

Слайд 65class Program
{
static string Function(string

name)
{

// Выполняем проверку. При обнаружении ошибок завершаем работу.

if (name == "fool") // Сторожевой оператор.
{
return "Вы использовали недопустимое слово.";
}
// Код номинального варианта.
string sentence = "Hello " + name + "!";
return sentence;
}
class Program  {    static string Function(string name)    {

Слайд 66 static void Main()
{

string sentence = Function("fool");

Console.WriteLine(sentence);

// Delay.
Console.ReadKey();
}
}
static void Main()    {      string sentence = Function(

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика