oop polymorphism etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
oop polymorphism etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Nesne Yönelimli Programlama OOP Temelleri

Merhaba Arakadaşlar,


Bu bölümde oop temellerine değiniyor olacağız.Bu aşamada aşağıda yaptığımız örnek uygulama içindeki classları paylaşıyor olacağım

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
     abstract public class Canlilar
    {
        #region Access Modifers
  /* public : public olarak işaretlenen öge kod blogu ve proje heryerden erişebilen access modifers dır
          private : private olarak tanımlanan öge sadece tanımladığı class içersinden yada o kod blogu erişebilinir
        * protected :protected olarak tanımlanan öge sadece tanımladığı class ve o class dan türemiş diğer class lardan erişebilinir
         * internal:Bulunduğu assembly (DDL veya exe )içinden erişebilinir
         * protected internal:bulunduğu classın içinden veya o classdan türemeiş diğer classlarda ve aynı (DDL veya exe)içinden (assembly)erişebilinir
         
         */
 #endregion 
 
        #region Fields
    
        private string _solunum;
        private string _beslenme;
        private string _ureme;
        private string _boşaltim; 
        #endregion
 
        #region properties
        public string Beslenme
        {
            get { return _beslenme; }
            set { _beslenme = value; }
        }
        public string Boşaltim
        {
            get { return _boşaltim; }
            set { _boşaltim = value; }
        }
        public string Ureme
        {
            get { return _ureme; }
            set { _ureme = value; }
        }
        public string Solunum
        {
            get { return _solunum; }
            set { _solunum = value; }
        } 
        #endregion
 
        public abstract void Beslen();
        public abstract void Suic(); 
 
         /*
          1) Kendinden türeyecek classlara base olmak için yazılırlar
          * 2)Abstract metodların sadece gövdeleri yazılır kendinden türeyen classlarda zorunlu override işlemine tabi tutulur
          * 3)Abstract metodlar zorunlu public tir
          * Miras larak kullanılırlar
          
          */
 
    }
} 
 
======================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
    public class Bitkiler:Canlilar
    {
        private string _fotosentez;
 
        public string Fotosentez
        {
            get { return _fotosentez; }
            set { _fotosentez = value; }
        }
 
 
        public override void Beslen()
        {
            throw new NotImplementedException();
        }
 
        public override void Suic()
        {
            throw new NotImplementedException();
        }
 
    }
} 
 
====================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
    public  class Hayvan :Canlilar 
    {
        private string _yuru;
 
        public string Yuru
        {
            get { return _yuru; }
            set { _yuru = value; }
        }
        
        
        public override void Beslen()
        {
 
        }
 
        public override void Suic()
        {
          
        }
 
        public virtual string YeniDogan()
        {
            return "Civciv";
        }
 
        // virtual ezilebilir anlamı taşır 
    }
} 
 
=============================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace OopTemelleri
{
     sealed class Insan:Hayvan// mühürnlenmiş anlamına gelir
    {
        private string _dusun;
 
        public string Dusun
        {
            get { return _dusun; }
            set { _dusun = value; }
        }
 
        public override string YeniDogan()
        {
            return "bebek";
        }
 
        #region polymorfizim
        //birbirinden türeyen classlar içerindeki metodların isimlerinin aynı olması durumunda basedeki metod virtual anahtar kelimesi ile imzalanır ve diger classda override edilerek farklı davranması sağlanabilinir.Buna çok biçimlilik denir 
        #endregion
    }
}
===================================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace OopTemelleri
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Hayvan hvn = new Hayvan();
          MessageBox.Show(hvn.YeniDogan());
           
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
                Insan ins = new Insan();
                MessageBox.Show(ins.YeniDogan());
               
        }
    }
} 
Video  Anlatımı

OOP Temelleri paylaşan: sinan-d-arslan-1