C# ile OOP İşlemleri - 1 w/ sınıf, metod, ref, out, foreach, liste

C# ile OOP İşlemleri - 1 w/ sınıf, metod, ref, out, foreach, liste

Selamlar, bugün sizinle farklı bir şey deneyeceğiz. Engin Demiroğ'un kodlama.io'da vermiş olduğu eğitimlerin ödevlerini kendim yapıp sizin de kolayca ulaşabilmeniz için bloguma atmaya karar verdim. Yaklaşık 4 hafta süren eğitimin ardından ilk ders hariç diğerleri class kavramıyla alakalıydı. Bunların ödevlerini kendimde olabildiğince basit bir şekilde yapmaya çalıştım. Sizlerinde bunlardan faydalanabilmeniz adına bu yazıma ekleyeceğim ve olabildiğince yorumlarım ile anlatmaya çalışacağım ( Daha sonra verilecek ödevleri de biraz biriktirdikten sonra yine paylaşabilirim :) ).

Şimdi ilk ödevden başlayarak sırayla gidelim.

Ref ve out'u açıklayan kodu yazalım

using System;

class MainClass {

public static void Main (string[] args) {
int a = 1;
int b = 1;
int c = 3;
//ilk başta değerleri girelim

Console.WriteLine(refCode(ref a,b,c));
Console.WriteLine(outCode(out c,a,b));
//fonksiyonları çağıralım
}

//ref komutunu kullanacağız burada
public static int refCode(ref int x, int y, int t){
x = 3;
int z = x + y + t;
return z;
}
/*
ref >> Bu komut ile metotta belirttiğimiz bir parametrenin
değerini almak yerine direkt kendisini alabiliyoruz. Metod
içerisinde istediğimizde bu değeri değiştirebiliyoruz. ref
olmadan sadece o parametrenin değerini alırız o kadar,
değişiklik yaptıramayız.
*/

//out komutunu kullanacağız burada
public static int outCode(out int t, int x, int y){
t = 14;
int q = x + y + t;
return q;
}
/*
out >> Out >> ref gibi yine parametrenin değeri yerine
kendisini alıyor. Ama bunun reften farkı nedir? Aldığı
parametrenin değeri olmayabilir, oladabilir ama bu değeri
metod içinde kullanamayız. Bizim tekrardan bir değer
vermemiz gerekmekte.
*/
}

ÇIKTI

Bir ürün sınıfı oluşturma, diziye ekleme ve foreach ile ekranda yazdırma

using System;

//Product class'ı oluşturduk
class Product{
//isim, fiyat ve miktarı bize lazım olacak
public string ProductName {get; set;}
public int ProductPrice {get; set;}
public int ProductAmount {get; set;}
}

class MainClass {

public static void Main (string[] args) {
//product girisi yapıyoruz burada
Product urun1 = new Product();
urun1.ProductName = "Araba1";
urun1.ProductPrice = 120000;
urun1.ProductAmount = 500 ;
//product 2
Product urun2 = new Product();
urun2.ProductName = "Araba2";
urun2.ProductPrice = 100000;
urun2.ProductAmount = 450;
//product 3
Product urun3 = new Product();
urun3.ProductName = "Araba3";
urun3.ProductPrice = 500000;
urun3.ProductAmount = 120;

//ürünler dizisine eklemelerimiz yapıyoruz.
Product[] urunler = new Product[] {urun1,urun2,urun3};

//for each ile ürünleri sırayla gösteriyoruz.
foreach(Product urun in urunler){
Console.WriteLine("Urun Ad: " + urun.ProductName +
                ". Urun Fiyat: " + urun.ProductPrice +
                ". Urun Miktarı: " + urun.ProductAmount);
}
}
}

ÇIKTI

Müşteri sınıfı, müşteri düzenleme sınıfı ve liste kavramı (ekle, sil ve listele)

using System;
using System.Collections.Generic;
using System.Linq;

//müşteri sınıfını oluşturuyoruz.
class Musteri {
public string musteri_isim {get; set;}
public string musteri_soyisim {get; set;}
public string musteri_id {get; set;}
public string musteri_telefon{get; set;}
public string musteri_mail{get; set;}
}

//müşteri bilgilerini düzenleme sınıfı
class MusteriManager {

//liste oluşturuyoruz
List<Musteri> musteri_list = new List<Musteri>();
public void ekle(Musteri musteri){
//Add ile listeye ekleme yaparız
musteri_list.Add(musteri);
Console.WriteLine("Musteri eklendi, adi: "
                        + musteri.musteri_isim);
}

public void sil(Musteri musteri){
//Remove ile listeden silme yaparız.
musteri_list.Remove(musteri);
Console.WriteLine("Musteri silindi, adi: "
                        + musteri.musteri_isim);
}

public void listele(){
//müşterileri foreach ile sırayla göstereceğiz
foreach (Musteri musteri in musteri_list){
Console.WriteLine("{0}{1}{2}{3}{4}",
                    musteri.musteri_id.ToString().PadRight(10),
                    musteri.musteri_isim.PadRight(10),  
                    musteri.musteri_soyisim.PadRight(10),
                    musteri.musteri_telefon.PadRight(17),
                    musteri.musteri_mail);
//sıralamasını böyle gösterip ekrana yazdırabiliyoruz
//PadRight(10) ile araya boşluk atıyoruz.
}
}
}

class MainClass {
//main
public static void Main (string[] args) {

//müşterileri ekleyelim
Musteri musteri1 = new Musteri();
musteri1.musteri_isim = "Mehmet";
musteri1.musteri_soyisim = "Gul";
musteri1.musteri_id = "0133";
musteri1.musteri_telefon = "05531019191";
musteri1.musteri_mail = "m.farugul@gmail.com";

Musteri musteri2 = new Musteri();
musteri2.musteri_isim = "Ahmet";
musteri2.musteri_soyisim = "Kerim";
musteri2.musteri_id = "0244";
musteri2.musteri_telefon = "05534422945";
musteri2.musteri_mail = "uludag@gmail.com";

//müşteri ayarlama sınıfını çağıralım
MusteriManager musteri_manager = new MusteriManager();
//ekleme yapalım
musteri_manager.ekle(musteri1);
musteri_manager.ekle(musteri2);
//listeleme yapalım
musteri_manager.listele();
//silme yapalım
musteri_manager.sil(musteri1);
musteri_manager.listele();
}
}

ÇIKTI


Yorumlar

Bu blogdaki popüler yayınlar

Python ile Turtle Kütüphanesiyle Çizim Denemesi 2

Girdimize en yakın palindrom değeri bulan program (Python3 ile)

Python ile Yazıyı Piramit Gibi Çizdirme