{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Nesne Tabanlı Programlama - Metodlar\n", "Bu videoda bir sınıf içinde metodlarımızı nasıl tanımlayacağımızı öğrenmeye çalışacağız. Bunun için ilk olarak bir **Yazılımcı** sınıfı tanımlayalım." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class Yazılımcı():\n", " \n", " def __init__(self,isim,soyisim,numara,maaş,diller):\n", " self.isim = isim\n", " self.soyisim = soyisim\n", " self.numara = numara # Yazılımcı objelerinin özellikleri \n", " self.maaş = maaş\n", " self.diller = diller\n", " " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# yazılımcı1 objesi\n", "yazılımcı1 = Yazılımcı(\"Mustafa Murat\",\"Coşkun\",12345,3000,[\"Python\",\"C\",\"Java\"])\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "yazılımcı2 = Yazılımcı(\"Serhat\",\"Say\",23456,3500,[\"Matlab\",\"R\",\"SmallTalk\"])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Python', 'C', 'Java']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "yazılımcı1.diller" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Say'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "yazılımcı2.soyisim" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Önceki dersten bunların nasıl yapıldığını biliyoruz. Peki bu class'a metodlarımızı nasıl tanımlayabiliriz ? Aynı **init metodunu** tanımladığımız gibi bir class'a da istediğimiz kadar metod tanımlayabiliriz. Örneğin ,**Yazılımcı** classına **bilgilerigöster** isimli bir metod tanımlayalım.\n" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class Yazılımcı():\n", " \n", " def __init__(self,isim,soyisim,numara,maaş,diller):\n", " self.isim = isim\n", " self.soyisim = soyisim\n", " self.numara = numara # Yazılımcı objelerinin özellikleri \n", " self.maaş = maaş\n", " self.diller = diller\n", " def bilgilerigöster(self):\n", " print(\"\"\"\n", " Çalışan Bilgisi:\n", " \n", " İsim : {}\n", " \n", " Soyisim : {}\n", " \n", " Şirket Numarası: {}\n", " \n", " Maaş : {}\n", " \n", " Diller: {}\n", " \"\"\".format(self.isim,self.soyisim,self.numara,self.maaş,self.diller))\n", " " ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "yazılımcı1 = Yazılımcı(\"Mustafa Murat\",\"Coşkun\",12345,3000,[\"Python\",\"C\",\"Java\"])" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Çalışan Bilgisi:\n", " \n", " İsim : Mustafa Murat\n", " \n", " Soyisim : Coşkun\n", " \n", " Şirket Numarası: 12345\n", " \n", " Maaş : 3000\n", " \n", " Diller: ['Python', 'C', 'Java']\n", " \n" ] } ], "source": [ "yazılımcı1.bilgilerigöster()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Burada **bilgilerigöster** isimli metod tanımlayarak her bir özelliğimizin değeri ekrana derli toplu bir şekilde yazdırmış olduk. *Metodlarımızı yazarken dikkat etmemiz gerek nokta, her metodun birinci parametresinin self referansı olması gerektiğidir. Ayrıca objelerimizin özelliklerine mutlaka self referansıyla erişmemiz gerekiyor.* İsterseniz bu classa 2 tane daha metod yazalım." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "class Yazılımcı():\n", " \n", " def __init__(self,isim,soyisim,numara,maaş,diller):\n", " self.isim = isim\n", " self.soyisim = soyisim\n", " self.numara = numara # Yazılımcı objelerinin özellikleri \n", " self.maaş = maaş\n", " self.diller = diller\n", " def bilgilerigöster(self):\n", " print(\"\"\"\n", " Çalışan Bilgisi:\n", " \n", " İsim : {}\n", " \n", " Soyisim : {}\n", " \n", " Şirket Numarası: {}\n", " \n", " Maaş : {}\n", " \n", " Diller: {}\n", " \"\"\".format(self.isim,self.soyisim,self.numara,self.maaş,self.diller))\n", " def dil_ekle(self,yeni_dil):\n", " print(\"Dil ekleniyor.\")\n", " self.diller.append(yeni_dil)\n", " def maas_yukselt(self,zam_miktarı):\n", " print(\"Maaş yükseliyor...\")\n", " \n", " self.maaş += 250" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": true }, "outputs": [], "source": [ "yazılımcı1 = Yazılımcı(\"Mustafa Murat\",\"Coşkun\",12345,3000,[\"Python\",\"C\",\"Java\"])" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Çalışan Bilgisi:\n", " \n", " İsim : Mustafa Murat\n", " \n", " Soyisim : Coşkun\n", " \n", " Şirket Numarası: 12345\n", " \n", " Maaş : 3000\n", " \n", " Diller: ['Python', 'C', 'Java']\n", " \n" ] } ], "source": [ "yazılımcı1.bilgilerigöster()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Maaş yükseliyor...\n" ] } ], "source": [ "yazılımcı1.maas_yukselt(500)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Çalışan Bilgisi:\n", " \n", " İsim : Mustafa Murat\n", " \n", " Soyisim : Coşkun\n", " \n", " Şirket Numarası: 12345\n", " \n", " Maaş : 3250\n", " \n", " Diller: ['Python', 'C', 'Java']\n", " \n" ] } ], "source": [ "yazılımcı1.bilgilerigöster()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dil ekleniyor.\n" ] } ], "source": [ "yazılımcı1.dil_ekle(\"Javascript\")" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Çalışan Bilgisi:\n", " \n", " İsim : Mustafa Murat\n", " \n", " Soyisim : Coşkun\n", " \n", " Şirket Numarası: 12345\n", " \n", " Maaş : 3250\n", " \n", " Diller: ['Python', 'C', 'Java', 'Javascript']\n", " \n" ] } ], "source": [ "yazılımcı1.bilgilerigöster()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "İşte bu kadar ! Bir sonraki derste de inheritance yani kalıtım mantığını öğrenmeye çalışacağız." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }