C# ile Soyut(Abstract) metod Kullanımı
Bu dersimizde Nesne Yönelimli Programlamanın en önemli konularından Soyut Metodları inceleyeceğiz. İlk önce Araclar isminde bir proje oluşturuyoruz. Ardında Solution Explorer'da (View- Solution Explorer menüsünden) projemizin üzerine sağ tıklayıp Add - Class menüsünden yeni bir Sınıf ekliyoruz ve ismini Arac veriyoruz.
![](/image/userfiles/images/soyut_metodlar_solution_explorer.JPG)
Arac sınıfı abstract yani soyut bir sınıf. Soyut sınıflardan nesneler türetilemez. Soyut bir sınıf, sadece başka sınıflar için bir şablon oluştururlar. Soyut sınıf içinde soyut metod olur ve gövdesi yazılmaz, sadece soyut metodun geri döndüreceği değer ve parametreleri belirtilir.
Arac sınıfında motorHacmi, modelYili, renk özellikleri ve calis() ve dur() isimli metodlar var. Dikkat edereseniz calis() ve dur() metodlarının yanında abstract yazılmış ve gövdeleri yok.
Arac sınıfı abstract yani soyut bir sınıf. Soyut sınıflardan nesneler türetilemez. Soyut bir sınıf, sadece başka sınıflar için bir şablon oluştururlar. Soyut sınıf içinde soyut metod olur ve gövdesi yazılmaz, sadece soyut metodun geri döndüreceği değer ve parametreleri belirtilir.
Arac sınıfında motorHacmi, modelYili, renk özellikleri ve calis() ve dur() isimli metodlar var. Dikkat edereseniz calis() ve dur() metodlarının yanında abstract yazılmış ve gövdeleri yok.
namespace Araclar
{
public abstract class Arac
{
public int motorHacmi{get;set;}
public int modelYili{get; set;}
public string renk{get; set;}
public abstract void calis();
public abstract void dur();
}
Şimdi yukarıda oluşturduğumuz Arac soyut sınıfından Otomobil isimli bir sınıf türetelim. Arac sınıfından miras alan Otomobil sınıfı hatırlayacağınız üzere Arac sınıfının tüm özellik ve metodlarını kullanabiliyordu. Burada miras alınan Soyut sınıf olduğundan, soyut sınıftaki metodların gövdeleri yazılmak zorundadır. Örneğin calis() ve dur() isimli iki metodun da gövdesini Otomobil sınıfında yazıyoruz.
public class Otomobil: Arac
{
public int yolcuKapasitesi{get;set;}
public string marka{get;set;}
public override void calis()
{
MessageBox.Show("Motor çalışıyor...");
}
public override void dur(){
MessageBox.Show("Motor durduruluyor...");
}
public void otomobilOzellikleri(){
MessageBox.Show("Marka :" + this.marka + "\n" +
"Motor hacmi:" + this.motorHacmi+"\n"+
"Yolcu Kapasitesi:" + this.yolcuKapasitesi + "\n" +
"Model Yılı:" + this.modelYili+"\n"+
"Renk:" + this.renk + "\n"
);
}
}
}
Yukarıdaki kodlarda Otomobil sınıfına yolcuKapasitesi ve marka özellikleri ekledik. Daha önce tanımlanan calis() ve dur() metodlarının içeriğini de oluşturduk. Ardından otomobilOzellikleri metodu tanımladık ve tüm özellikleri MessageBox.Show ile ekrana yazdık. MessageBox.Show'u kullanmak için System.Windows.Forms namespace'ini en üste ekledik.
Şimdi de formumuza dönelim ve 4 metin TextBox ve bir ComboBox nesnesi ekleyelim.
Yukarıdaki bilgiler doğrultusunda aşağıdaki formu hazırlayınız.
![](/image/userfiles/images/csharp_nesne_yonelimli_programlama_soyut_siniflar_tasarim.JPG)
Form kodlarının tümü aşağıdaki gibidir. İlgili butonlara teker teker tıklayarak aşağıdaki kod içeriklerini yazınız. Otomobil sınıfından o1 nesnesini formun en başında türettik ki, tüm metodlarda geçerli olsun. Form sınıfının hemen altında Otomobil o1; koduna dikkat ediniz.
Daha sonra Nesne Oluştur butonuna tıklayıp aşağıdaki kodları yazdık. Burada metin kutularından alınan bilgiler o1 nesnesinin elemanlarına aktarılıyor, yani Otomobil sınıfında tanımlanan ya da miras alınan değişkenlere aktarılıyor.
Şimdi de formumuza dönelim ve 4 metin TextBox ve bir ComboBox nesnesi ekleyelim.
Nesne | Adı(Name) | Değeri |
TextBox | txtMarka | |
TextBox | txtMotorHacmi | |
TextBox | txtModelYili | |
TextBox | txtYolcuKapasitesi | |
ComboBox | cbRenk | |
Button | btnNesneOlustur | Nesne Oluştur |
Button | btnCalistir | Motor Çalıştır |
Button | btnDurdur | Motor Durdur |
Button | btnMotorOzellikleri | Motor Özellikleri |
Yukarıdaki bilgiler doğrultusunda aşağıdaki formu hazırlayınız.
Form kodlarının tümü aşağıdaki gibidir. İlgili butonlara teker teker tıklayarak aşağıdaki kod içeriklerini yazınız. Otomobil sınıfından o1 nesnesini formun en başında türettik ki, tüm metodlarda geçerli olsun. Form sınıfının hemen altında Otomobil o1; koduna dikkat ediniz.
Daha sonra Nesne Oluştur butonuna tıklayıp aşağıdaki kodları yazdık. Burada metin kutularından alınan bilgiler o1 nesnesinin elemanlarına aktarılıyor, yani Otomobil sınıfında tanımlanan ya da miras alınan değişkenlere aktarılıyor.
o1 = new Otomobil();
o1.marka = txtMarka.Text;
o1.modelYili = int.Parse(txtModelYili.Text);
o1.yolcuKapasitesi = int.Parse(txtYolcuKapasitesi.Text);
o1.motorHacmi = int.Parse(txtMotorHacmi.Text);
o1.renk = (string)cbRenk.Items[cbRenk.SelectedIndex];
Kodun tamamı aşağıdaki gibidir.
Kodun tamamı aşağıdaki gibidir.
Using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Araclar
{
public partial class Form1 : Form
{
Otomobil o1;
public Form1()
{
InitializeComponent();
}
private void btnDurdur_Click(object sender, EventArgs e)
{
if (o1 != null)
o1.dur();
}
private void btnCalistir_Click(object sender, EventArgs e)
{
if (o1 != null)
o1.calis();
}
private void btnMotorOzellikleri_Click(object sender, EventArgs e)
{
if(o1!=null)
o1.otomobilOzellikleri();
}
private void btnNesneOlustur_Click(object sender, EventArgs e)
{
o1 = new Otomobil();
o1.marka = txtMarka.Text;
o1.modelYili = int.Parse(txtModelYili.Text);
o1.yolcuKapasitesi = int.Parse(txtYolcuKapasitesi.Text);
o1.motorHacmi = int.Parse(txtMotorHacmi.Text);
o1.renk = (string)cbRenk.Items[cbRenk.SelectedIndex];
}
}
}
![](/image/userfiles/images/nesne_yonelimli_programlama_soyut_siniflar_ve_soyut_metodlar.JPG)
Mutlu kodlamalar,
Oğuzhan TAŞ
07.03.2022
Mutlu kodlamalar,
Oğuzhan TAŞ
07.03.2022
![Bookmark and Share](http://s7.addthis.com/static/btn/lg-share-en.gif)
Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: PHP ile Basit Dosya Yükleme
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?
- :: PHP ile MySQL veritabanına MySQLi t...