Kodlamada Metot ve Fonksiyonlar Arasındaki Farklar Nelerdir?
Yayınlanan: 2018-09-21kodlamada terminoloji
Programlamada, aynı şeyi tam olarak tanımlamak için kullanılan birçok farklı terim vardır ve aynı şeyi ifade ediyor gibi görünen ancak gerçekte olmayan bazı terimler de vardır. Daha da kafa karıştırıcı hale getirmek için. Bazı terimler, ne tür bir dilden bahsettiğinize bağlı olarak veya bir dilden aynı türden başka bir dile geçerken bile farklı şekilde kullanılır. Bu nedenle, "yöntem", "işlev", "arayüz" veya "soyut sınıf" gibi bazı terimler, bir bağlamda bir şeyi, başka bir bağlamda tamamen farklı bir şeyi ifade edebildiklerinden, bazı insanlar için çok kafa karıştırıcı olabilir.
OOP yöntemlerine genel bakış
Bir yöntem, esasen, belirlenmiş bir nesne üzerinde yürürlüğe giren adım adım bir prosedürdür. Yöntemler yalnızca C++ gibi nesne yönelimli programlama dillerinde kullanılır. Esasen, bir yöntem, ya yöntemden geçirilen nesnenin özelliklerini değiştirebilir ya da yöntem, içinden geçirilen nesnenin önceden var olan özelliklerine dayanarak belirli bir prosedür yapabilir. Bazen bir yöntem, içinden geçen nesneyi etkilemeyen veya nesnenin zaten var olan özellikleri tarafından değiştirilmeyen kod aracılığıyla bile çalışabilir. Ancak bu çok daha az yaygındır ve yöntemleri ele almanın teşvik edilen bir yolu değildir.
Okuyun – Hangi JavaScript Çerçevesini Seçmelisiniz
Prosedürel kodlamadaki işlevler
Öte yandan bir işlev, bir dizi girdi alan ve bir dizi değer döndüren bir prosedüre atıfta bulunan çok daha genel bir terimdir. Şaşırtıcı bir şekilde, bir işlev ve bir yöntem, programlama sırasında aynı şeyi yapacak veya aynı tür bir prosedüre atıfta bulunacak gibi görünüyor, ancak yapmıyorlar. İşlevler nesnelerle ilişkili değildir ve temelde nesne yönelimli olmayan her üst düzey dilde kullanılır. Öte yandan yöntemler yalnızca nesnelerle ilişkilendirilir ve terim yalnızca nesnelerle uğraşırken veya bir prosedür bir sınıf içindeyken kullanılır. Bu nedenle, işlevler verilen girdilere dayalı olarak değerler döndürürken, yöntemler ya bir nesnenin özelliklerini değiştirir ya da nesnenin önceden var olan özelliklerine dayalı olarak değerler döndürür.
Kodlama arayüzleri ve soyut sınıflar
Bir işlev ve bir yöntem arasındaki karışıklığa benzer. Arayüzler ve soyut sınıflar arasında çok fazla karışıklık var. Bununla birlikte, işlevler ve yöntemlerden farklı olarak, arabirimler ve soyut sınıflar birçok ortak noktaya sahiptir ve özelliklerinin karıştırılması kolaydır. İkisini ayırt etmenin en kolay yolu, arayüzlerin yalnızca nesne yönelimli programlama dillerinde bulunduğunu anlamaktır. Oysa soyut sınıflar neredeyse tüm üst düzey dillerde bulunur.
Derinlemesine arayüzler
Bir arayüz, esasen, sınıflar arasındaki tüm benzerlikleri hesaba katan, oluşturduğunuz bir temeldir. Diyelim ki farklı nesneler yaratmak istiyorsunuz ama hepsi hayvan. Yani insanlar, maymunlar ve şempanzeler. Açıkçası, bu üç hayvanın pek çok ortak noktası var ve tüm bu benzerlikleri tanımlamak akıllıca olur, böylece hepsinin her sınıfta uygulandığından emin olabilirsiniz. Örneğin, her birinin bir başı, dört uzuvları, bir ağzı, burnu, dili vb.
Yani arayüzde bu özellikleri siz tanımlıyorsunuz ve çünkü onları arayüzde tanımlıyorsunuz. Her sınıf arabirimi uyguladığında, bu özellikleri arabirimde tanımlanan yöntemlerle tanımlamalı ve başlatmalıdır. Aksi takdirde kod çalışmayacaktır. Soyut bir sınıf yerine bir arayüz kullanmanızın ana nedeni, her hayvanın aynı özelliklere sahip olmasıdır. Ancak her hayvan onları farklı şekilde uygular. Örneğin, tüm şempanzeler. İnsanların ve maymunların burunları vardır, ancak bunların genişliği, uzunluğu ve kullanımı biraz farklı olabilir. Bu nedenle, bu farklılıklar bireysel sınıflarda tanımlanır. Ancak burunlarının olduğu gerçeği arayüzde tanımlanmıştır.
Okuyun – Laravel'in 2018'de En İyi PHP Çerçevesi Olmasının Nedenleri
Soyut sınıflar nasıl kullanılır
Soyut bir sınıf tam olarak bir arayüz gibidir. Ancak, bir arabirimden farklı olarak, yöntemler ve işlevler gerçekten tanımlanabilir ve başlatılabilir, ancak olmaları gerekmez. Bunun da ötesinde, soyut sınıfları uygulayan sınıflar yerine, soyut sınıfı üst sınıf yaparlar. Bu aslında soyut sınıflar için arayüzlerle karşılaştırıldığında büyük bir dezavantajdır, çünkü bir sınıf istedikleri kadar arayüz uygulayabilir, ancak yalnızca bir üst sınıfa sahip olabilirler, yani bir sınıf yalnızca bir soyut sınıf ancak birden çok arayüz kullanabilir.
Soyut dersler harika. Ancak, aynı şekilde uygulanma biçimlerine sahip bazı özdeş özellikler varsa. Ancak, nesneler arasında farklı uygulamaları olan bazıları da varsa. Örneğin, kadın ve erkek olmak üzere iki sınıfınız varsa ve ikisi arasındaki benzerlikleri tanımlamak istiyorsanız, soyut bir sınıf kullanmak en iyisi olabilir. Niye ya? Çünkü cinsiyetler arasındaki bazı özellikler özdeştir ve birebir aynı şekilde uygulanmaktadır. Örneğin ağızlar aşağı yukarı aynı büyüklüktedir ve aynı amaca hizmet eder; gözler yaklaşık olarak aynı boyuttadır ve cinsiyetler arasında aynı işlevi görür, vb.
Bu nedenle, bu özellikler için, onları tanımlayan işlevler veya yöntemler, soyut sınıfta başlatılabilir. Bununla birlikte, kalçalar veya kaşlar gibi belirli özellikler her iki cinsiyette de mevcuttur. Ancak bu özellikler ikisi arasında çok farklıdır. Bu nedenle, soyut sınıf, bu özellikleri tanımlayan yöntemleri veya işlevleri başlatmaz. Ve bunu alt sınıflara bırakacaktır.
Özet
Umarım bu açıklamalar çok kafa karıştırıcı veya endişe verici olmamıştır. Programlamada yeniyseniz, hala kafanız karıştıysa endişelenmeyin. Programlamanın temellerini ve bazı terimler arasındaki ince farkları anlamak için kullanabileceğiniz çok sayıda erişilebilir kaynak vardır.
Profesyonel bir programcı olmayı seviyorsanız bunu belirtmek çok önemlidir. Hem prosedürel hem de Nesne Yönelimli Programlama (OOP) kavramlarına eğilmek bir zorunluluktur. Aslında. Birçok yazılım mühendisi, OOP kodlaması yapmadan önce proje veya uygulama gereksinimlerini nesneler ve diyagramlarla eşleştirmek için Birleşik Model Dili kullanır. Yazılım mühendisliği öğrenmek için birçok çevrimiçi kaynak var. Lise Teknoloji Hizmetleri, gençler ve lise öğrencileri için çeşitli uygulamalı eğitimler sunar. Yetişkinler ve profesyoneller için, Coding Bootcamps enstitüsü, hem prosedürel hem de OOP kodlamaya odaklanan birçok temel programlama dersi sunar.
yazar hakkında
Matt Zand bir programcı, iş adamı, BT Danışmanı ve yazardır. WEG2G Group'un kurucusu ve sahibidir. Aynı zamanda DC Web Makers'ın da kurucusudur. Hobileri yürüyüş, bisiklet, açık hava etkinlikleri, seyahat ve dağcılıktır.