Nesneye Yönelik Programlama (OOP), merkezi kavram olarak nesnelere dayalı bir programlama paradigmasıdır. OOP'de kod, işlevselliğe dayalı olarak biçimlendirilir, kod bakımı, soyutlama, yeniden kullanılabilirlik, verimlilik ve nesne üzerinde çok sayıda işlevsellik sağlar.

Nesnenin özelliklerini, özelliklerini ve nesnenin eylemlerini (prosedürlerini) ve davranışlarını tanımlayan yöntemlerini (işlevlerini) tanımlayan öznitelikleri (değişkenleri) vardır.

Go'da nesne yönelimli programlama diğer dillerden farklıdır. Nesneye Dayalı kavramlar Go'da yapılar, arabirimler ve özel türler kullanılarak uygulanır.

Go'da Türleri Özelleştirme

Özel türler, yeniden kullanım için benzer kodları gruplamayı ve tanımlamayı kolaylaştırır.

Özel türleri bildirme kodu:

tip türAd veriTürü 

Özel bir tür oluştururken ve bir değişken atarken, türünü kullanarak kontrol edebilirsiniz. yansıtmak. Bir çeşit() hangi bir değişken alır ve değişkenin türünü döndürür.

içe aktarmak("fmt"
"yansıtmak")
tip iki int// "iki" tipini oluşturur
var iki numaralı // "iki" türündeki değişken
fmt. Println (yansıtmak. TypeOf (sayı))
instagram viewer

​​​

bu sayı değişken bir türüdür iki hangi bir tam sayıdır. Özel türden daha fazlasını oluşturmak için daha ileri gidebilirsiniz.

Go'da Yapılar Oluşturma

Yapılar (yapılar), Go'da nesne yönelimli programlamanın planlarıdır. Yapılar, kullanıcı tanımlı alan koleksiyonlarıdır.

Bir yapı, bileşik türler ve yöntemler dahil olmak üzere çeşitli veri türlerini içerebilir.

Bu sözdizimini kullanarak bir yapı oluşturabilirsiniz:

tip YapıAdı yapı {
// bir kod
}

Geleneksel olarak, yapı adları genellikle büyük harfle yazılır ve okunabilirlik için büyük harfle yazılır.

Yapı türü, alan adlarını ve veri türlerini alır. Yapılar, özel türler de dahil olmak üzere herhangi bir Go veri türünü alabilir.

tip kullanıcı yapı {
alan1 sicim
alan2 int
alan Haritası harita[sicim]int
}

Yapıyı bir değişken olarak atayarak bir yapı türünü somutlaştırabilirsiniz.

örnek := Kullanıcı{
// bir kod
}

struct örneği, başlatma sırasında tanımlandığı veya null olarak ayarlandığı gibi, örneklemedeki alanlarla doldurulabilir.

örnek := Kullanıcı{
alan1: "bir sicim tarla",
alan2: 10,
alan Haritası: harita[sicim]int{},
}

Yapı Elemanlarına Erişim

Alana nokta gösterimi kullanarak bir yapı örneğinin alanlarına erişebilirsiniz.

fmt. Println("Bir değer alanına erişim", instance.field2)

Bu çıktıyı verir alan2 somutlaştırılan yapı örneğinin.

Yapılara Yöntem Atama

Fonksiyonlar (yöntemler), aşağıdaki sözdiziminde gösterildiği gibi bir alıcı adı ve işlev adından önce yapı adı belirtilerek yapı türlerine atanır.

işlev(alıcı YapıAdı)fonksiyon adı() {
// bir kod
}

yöntem fonksiyon adı sadece belirtilen yapı tipinde kullanılabilir.

Go'da Kalıtımı Uygulamak

Kalıtım nesnelerin ve türlerin diğer nesnelerin yöntemlerine ve özelliklerine erişme ve bunları kullanma yeteneği. Go'nun bir özelliği olarak Kalıtım yoktur, ancak kompozisyonları kullanabilirsiniz. Go'da kompozisyon, alt yapıya üst yapının adını sağlayarak bir alt yapıdaki bir üst yapıya (miras alınacak yapı) atıfta bulunmayı gerektirir.

Yukarıdaki yapı örneğini kullanarak:

tip kullanıcı yapı {
alan1 sicim
alan2 int
alan Haritası harita[sicim]int
}
tip kullanıcı2 yapı {
kullanıcı
}

geçerek kullanıcı içine yapı adı kullanıcı2 yapı, kullanıcı2 struct, tüm yöntemlere ve özniteliklere erişebilir. kullanıcı soyutlama teknikleri dışında somutlaştırma üzerine yapı kullanılır.

oğul := Kullanıcı2{
kullanıcı{
alan1: "bebek",
alan2: 0,
alan Haritası: sıfır,
},
}
fmt. Println (son.field2)

bu oğul yukarıdaki değişken, kullanıcı2 yapı. Örnekte görüldüğü gibi, oğul değişken, Kullanıcı türünün değerlerine erişebilir ve bunları somutlaştırabilir ve kullanabilir.

Go'da Kapsüllenen Tip Alanları

"Bilgi gizleme" olarak da bilinen kapsülleme, Bir nesnenin yöntemlerini ve niteliklerini birimlere ayırma tekniği belirtilenler dışında kullanımı ve erişimi kısıtlamak için (okuma/yazma ayrıcalıklarını etkinleştirme).

Kapsülleme, paketlerdeki dışa aktarılan ve dışa aktarılmayan tanımlayıcılar kullanılarak Go'da uygulanır.

Dışa Aktarılan Tanımlayıcılar (Okuma ve Yazma)

Dışa aktarılan tanımlayıcılar, tanımlanmış paketlerinden dışa aktarılır ve diğer programlara erişim sağlanır. Bir alan tanımlayıcısının büyük harf kullanılması, fo alanını dışa aktarır.

tip kullanıcı yapı {
Alan1 sicim
Alan2 int
Alan Haritası harita[sicim]int
}
tip kullanıcı2 yapı {
kullanıcı
}

Dışa Aktarılmamış Tanımlayıcılar (Salt Okunur)

Dışa aktarılmayan tanımlayıcılar, tanımlanan paketten dışa aktarılmaz ve geleneksel olarak küçük harflerle yazılır.

tip kullanıcı yapı {
alan1 sicim
alan2 int
alan Haritası harita[sicim]int
}
tip kullanıcı2 yapı {
kullanıcı
}

Dışa aktarılan ve dışa aktarılmayan tanımlayıcılar kavramı, bir nesnenin yöntemleri için de geçerlidir.

Go'da polimorfizm

Polimorfizm, esneklik için bir nesneye farklı biçimler vermek için kullanılan bir tekniktir.

Go, arabirimleri kullanarak polimorfizmi uygular. Arabirimler, yöntem imzalarını tanımlamak için kullanılan özel türlerdir.

Arayüzlerin Bildirilmesi

Arayüzlerin bildirilmesi, yapıların bildirilmesine benzer. Ancak, arayüzler kullanılarak bildirilir. arayüz anahtar kelime.

tip ArayüzAdı arayüz{
//bazı yöntemler
}

Arabirim bildirimleri, yapı türleri tarafından uygulanacak yöntemleri içerir.

Yapılarda Arayüzleri Uygulamak

Arabirimi uygulayan türler, ardından türün yöntemleri arabirimi uygularken bildirilmelidir.

// Arayüz
tip Renk arayüz{
Boya() sicim
}
// Yapıların bildirilmesi
tip Yeşil yapı {
// bazı yapıya özel kodlar
}
tip Mavi yapı {
// belirli bir kod
}

Yukarıdaki kod parçasında bir Renk ile bildirilen arayüz Boya tarafından uygulanacak yöntem Yeşil ve Mavi yapı türleri.

Arayüzler, yapı türlerine yöntemler atanarak ve ardından uygulanacak arayüz yöntemiyle yöntemi adlandırarak uygulanır.

işlev(g Yeşil)Boya()sicim {
dönüş "yeşile boyanmış"
}
işlev(b Mavi)Boya()sicim {
dönüş "mavi boyalı"
}

Paint yöntemi, artık arama yapabilen ve kullanabilen Yeşil ve Mavi türleri tarafından uygulanmaktadır. Boya yöntem.

fırça := Yeşil{}
fmt. Println (fırça. Boya())

Arayüzün başarıyla uygulandığını doğrulayan konsolda “yeşile boyanmış” yazdırılır.

Go'da Alanları Soyutlamak

soyutlama bir türün önemsiz yöntemlerini ve niteliklerini gizleme süreci, programın bölümlerinin anormal, istenmeyen kullanıma karşı korunmasını kolaylaştırır.

Go, anında uygulanan bir soyutlamaya sahip değildir; ancak, arayüzleri kullanarak soyutlama uygulayarak bizim yolumuzda çalışabilirsiniz.

// insanlar koşabilir
tip İnsan arayüz {
Çalıştırmak() sicim
}
// Oğlan bacakları olan bir insandır
tip Oğlan yapı {
bacaklar sicim
}
// boy üzerinde bir yöntem, İnsan arabiriminin çalıştırma yöntemini uygular
işlev(h Oğlan)Çalıştırmak()sicim {
dönüş h. bacaklar
}

Yukarıdaki kod bir İnsan arayüz ile bir Çalıştırmak bir dize döndüren arabirim. bu Oğlan tip uygular Çalıştırmak yöntemi İnsan interface ve örneklemede bir dize döndürür.

Soyutlamayı uygulamanın yollarından biri, yöntemleri soyutlanacak olan arabirimi devralan bir yapı yapmaktır. Başka birçok yaklaşım var, ancak bu en kolayı.

tip Kişi yapı {
İsim sicim
Yaş int
Durum İnsan
}
işlevana() {
person1 := &Boy{Bacaklar: "iki bacak"}
kişi2 := &Kişi{ // bir kişinin örneği
İsim: "amin",
Yaş: 19,
Durum: kişi1,
}
fmt. Println (kişi. Durum.run())
}

bu Kişi yapı devralır İnsan arabirimi ve değişkeni kullanarak tüm yöntemlerine erişebilir Durum arayüzü devralıyor.

Başvuruya göre örneklemede (bir işaretçi kullanarak), örneğin Kişi yapı Kişi2 örneğine atıfta bulunur Oğlan yapı Kişi1 ve yöntemlere erişim sağlar.

Bu şekilde, türe göre uygulanacak belirli yöntemleri belirleyebilirsiniz.

OOP ve Fonksiyonel Programlama

Nesne yönelimli programlama, programınız üzerinde size daha fazla kontrol sağladığı ve işlevsel programlamanın yapamadığı şekillerde kodun yeniden kullanımını teşvik ettiği için önemli bir paradigmadır.

Bu, işlevsel programlamayı kötü bir seçim yapmaz, çünkü işlevsel programlama bazı kullanım durumları için yararlı ve daha iyi olabilir.

Nesne Yönelimli Programlama Nedir? Layman'ın Terimlerinde Açıklanan Temel Bilgiler

Sonrakini Oku

PaylaşmakCıvıldamakPaylaşmakE-posta

İlgili konular

  • Programlama
  • Nesne yönelimli programlama

Yazar hakkında

Ukeje Chukwuemeriwo İyilik (2 Makale Yayınlandı)

Goodness, bu büyüleyici alanı keşfederken çeşitli teknoloji konularını basitleştiren teknik bir yazar, arka uç geliştiricisi ve veri analistidir.

Ukeje Chukwuemeriwo Goodness'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın