# Class

![Class Mantığı - 1](https://3576076708-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKnOP5P2zgWDqC9hBsR%2F-MLN0jsXMdIcHJJXZmVl%2F-MLN28cF7kZQ416uQeSg%2Fscala_classes_objects.jpg?alt=media\&token=4e0e3e89-1284-4d96-844a-a625d845fbf9)

![Class Mantığı - 2](https://3576076708-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MKnOP5P2zgWDqC9hBsR%2F-MLN0jsXMdIcHJJXZmVl%2F-MLN2ab1HrFQApSd24o8%2F052016_0704_ObjectsandC5.jpg?alt=media\&token=ec7eb96c-b8e9-4b74-b763-bf9945f14d82)

**Class**, nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara verilen isimdir.

**Class** tan türetilen her bir veri yapısına **object** denir.&#x20;

Bir **class** içerinde değişken olarak tanımlanan bilgilere **property** denir.

Bir **object** in davranışlarını belirleyen yapılara **method** denir.

```aspnet
class Ogrenci{
    public int OgrNo { get; set; }
    public string Ad { get; set; }
    public string Sube { get; set; }
}
    
    // void Main fonksiyonu içerisinde
    
Ogrenci ogr1 = new Ogrenci();
    ogr1.Ad = "Ahmet";
    ogr1.OgrNo = 123;
    ogr1.Sube = "10D";
    
Console.WriteLine($"Adı: {ogr1.Ad} No: {ogr1.OgrNo} Şube: {ogr1.Sube}");
```

```aspnet
/* 
Birden fazla bilgi yazdırmak için liste içine alıp döngüde çalıştırılabilir.
*/

Ogrenci[] ogrenciler = new Ogrenci[5];
ogrenciler[0] = ogr1;
ogrenciler[1] = ogr2;
ogrenciler[2] = ogr3;
ogrenciler[3] = ogr4;
ogrenciler[4] = ogr5;

for(int i = 0; i<ogrenciler.Length;i++){
    Console.WriteLine($"{i} - {ogrenciler[i].Ad} {ogrenciler[i].OgrNo} {ogrenciler[i].Sube} ");
}


```

{% hint style="success" %}
**`prop`** yazarak otomatik olarak bir property oluşturulabilir.
{% endhint %}

## Yukarıdaki bilgilerle bir uygulama yapalım.

```aspnet
/*
1-) Product class => name, price, description
2-) Sınırsız sayıda ürün bilgisini alıp bir dizinin içinde saklayınız.
3-) Ürün adetini kullanıcı belirtsin
4-) Eklenen ürünler listelensin
*/

using System;

namespace Classlar
{
class Product{
    public string Name { get; set; }
    public double Price { get; set; }
    public string Description { get; set; }
}



    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Adet: ");
            int adet = int.Parse(Console.ReadLine());

            Product[] products = new Product[adet];

            int i=0;
            Product prd;

            do{
                prd = new Product();
                Console.Write("Ürün Adı: ");
                prd.Name = Console.ReadLine();

                Console.Write("Ürün Fiyatı: ");
                prd.Price = double.Parse(Console.ReadLine());

                Console.Write("Ürün Açıklaması: ");
                prd.Description = Console.ReadLine();

                products[i] = prd;
                i++;
            }
            while(adet>i);

            Console.WriteLine("*****************");
            
            for (int j = 0; j < products.Length; j++)
            {
                Console.WriteLine($"Ürün Adı: {products[j].Name} - Ürün Fiyatı: {products[j].Price} - Ürün Açıklaması: {products[j].Description}");
            }

        }
    }
}

```
