BilgisayarlarProgramlama

FKÖ - bu nedir? nesne yönelimli programlama temel ilkeleri

Neden nesne yönelimli programlama çoğu projelerde tercih edilir? FKÖ onların karmaşıklığı ile başa çıkmak için etkili bir yol sunar. Bunun yerine, çalıştırılabilir bir dizi talimat gibi bir program göz önünde, belirli özellikleri olan nesne grubu olarak temsil eder ve belirli eylemleri ile üretir. Bu daha net, daha güvenilir ve legkosoprovozhdaemyh uygulamalar ile sonuçlanır.

temel ilkeleri nesne yönelimli programlama (OOP) kısıtlamalar önceden mevcut yaklaşımlar bulunmuştur çünkü kurdu. Aralarında - değişikliğine ilişkin kısıtlamalar empoze veri ve bağlantıların çok sayıda sınırsız erişim. Önemli Onların bilinci ve nedenleri neler cepten programlamayı anlamak ve avantajlarının neler olduğunu.

prosedürel diller

C, Pascal, FORTRAN ve benzeri diller prosedürel bulunmaktadır. , Verileri almak için altı bölünmüş numaraları, görüntülenen sonucu kadar ekleyin: O operatörün her şey yapmak için bilgisayar söyler vardır. Ek prosedürel dil eğitimi listesidir. o küçük ise, (genellikle bir paradigma olarak anılacaktır) başka hiçbir örgütleyici ilke gerekli değildir. Programcı talimatları listesini oluşturur ve bilgisayar bunları yürütür.

fonksiyonlarının ayrılması

uygulamaları dönüşlerde daha hantal liste olunca. onlar gruplandırılmış kadar birkaç yüz talimatları fazla anlayabileceği çok az. Bu nedenle, fonksiyon kendi yaratıcıları uygulama daha anlaşılır hale getirmek için bir yol oldu. Bazı dillerde, aynı konsept altprogramciklar veya prosedürler çağrılabilir.

Uygulama açık bir şekilde tanımlanmış bir amacı ve bir arayüze sahip, her biri fonksiyonları ayrılmıştır.

prosedürlerin ayrılması fikri bir modül olarak adlandırılan bir nesnenin daha büyük bir grup olan genişletilebilir, ancak prensip benzerdir: belge listeleri taşıyan bileşenlerin gruplama.

fonksiyonlar ve modüller ayrılması - FKÖ kadar onlarca yıl boyunca bu paradigma pozlar yapısal programlama köşe taşları, biri.

yapısal programlama sorunları

uygulamaları daha büyük hale geldikçe, yapısal programlama zorluklar yaşamaya başlayan. Projeler çok karmaşık hale gelir. grafik değiştirdi. Bu programcılar çok sayıda içerir. karmaşıklık büyüdü. yukarı çekim Maliyetler, zamanlama daha da kaydırıldı ve çöküş geldi.

başarısızlıklarının nedenlerinin analizi prosedürel paradigma eksiklikleri ortaya çıkardı. Ne olursa olsun iyi uygulanan programlama yaklaşımı yapılandırılmış nasıl, büyük uygulama aşırı karmaşık hale gelir.

prosedürel dillerle ilişkili bu sorunların nedenleri nelerdir? İlk olarak, fonksiyonlar küresel verilere sınırsız erişim hakkına sahiptir. İkincisi, ilgisiz usul ve kötü değerler gerçek dünya simülasyonu.

Biz envanter muhasebe yazılımı bağlamında bu konuları ele alırsak, küresel verilerin en önemli unsurlarından biri SKU'dan kümesidir. Farklı fonksiyonlar, değişiklikleri gösterilir ve böylece edilir yeni bir değer girmek için onlara başvurabilir. D.

sınırsız erişim

program, örneğin, C, iki veri tipi vardır, yazılı. Yerel işlev içinde gizli ve diğer prosedürler kullanılmaz.

İki veya daha fazla işlev aynı verilere erişim olduğunda, ikincisi küresel olmalıdır. Bu, örneğin, konularda hesap bilgileri alınır. Küresel veriler kullanılabilir herhangi prosedür olabilir.

Büyük bir programda pek çok özellik ve birçok küresel unsur vardır. prosedürel paradigmanın sorun aralarındaki potansiyel bağlantıların daha fazla sayıda yol açmasıdır.

Böyle bağlantıların çok sayıda çeşitli problemlere yol açmaktadır. Birincisi, programın yapısının anlaşılmasını zorlaştırmaktadır. İkincisi, zor değiştirmek için. global veri öğesi değişikliği bu bilgilere erişimi olan tüm fonksiyonların ayarlanması gerekebilir.

Örneğin, birisi muhasebe programı karar verir de hesaba nesne kodu değil 5 rakamdan oluşur gerektiğini, ve 12 den bu değişikliğine ihtiyaç vardır veri türü kısa mesafede uzun. fonksiyon kodu, yeni formatı ile çalışmak için değiştirilmesi gerekir ile Şimdi ilişkili.

elementler daha büyük uygulamasında değiştirilir, prosedürler bunlara erişebilir ne olduğunu söylemek zordur. Ama bu rakamın bile, onları diğer küresel verilerle düzgün çalışmamasına yol açabilir değişen. Her şey her şeyi ile bağlı, yani bir yerde bir değişiklik diğerinde geri teper edilir.

gerçek dünya Modelleme

prosedürel paradigmanın ikinci ve daha önemli sorun konumu belirli veri ve işlevleri kötü gerçek dünyada işler taklit olmasıdır. Burada, insan veya arabalar gibi nesnelerle ilgileniyor. Bunlar hiçbir veri veya fonksiyonuna gibidir. Karmaşık gerçek dünya nesneleri niteliklerini ve davranışa sahip.

nitelikleri

Güç ve kapıların sayısı - insanlar için niteliklerin (bazen özellikleri) örnekleri göz rengi ve yazının adı, bir araba içindir. Anlaşıldığı üzere, programda verilere eşdeğer gerçek dünyanın nitelikleri. Bunlar mavi (gözlerin rengi) ya da dört (kapıların sayısı) gibi belirli değerleri var.

davranış

Davranış - gerçek dünya nesneleri etkisi bir tür karşılık olarak üretilmiş olmasıdır. Eğer maaş artışı için bir patron sorarsanız, cevabı "evet" veya "hayır". Eğer frene basarsanız, araba durur. Ve durdurma söyleyiş davranışları örneklerdir. prosedüre benzer Davranış: Bir şeyler yapmak denir ve bunu yapar edilir. Böylece, kendileri tarafından veri ve işlevleri gerçek dünya verimli nesneleri modellemek yoktur.

Adresleme

OOP içinde obje verilerinin ve işlevleri bir dizi olarak temsil edilir. Sadece C ++ üye işlevlerini adlandırılır prosedürler, değeri elde edilmesine olanak sağlamaktadır. Bunlar gizli ve değişikliklerden korunmaktadır. Anlam ve fonksiyonları içine kapsüllenir. Kapsülleme ve upryatyvanie - nesne yönelimli dillerin açıklamasında temel terimler.

Verileri değiştirmek istiyorsanız, bu işlevler onlarla etkileşim tam olarak ne bilir. Başka hiçbir prosedürler onlara erişemez. Bu yazma, hata ayıklama ve programı sürdürmek kolaylaştırır.

Bir uygulama, tipik olarak üye işlevlerini neden birbirleri ile etkileşim çok nesnenin oluşur.

Günümüzde en çok kullanılan dil OOP (nesne yönelimli programlama) - C ++ (artı artı). Java'da bu tür işaretçiler, şablonlar ve C ++ 'tan daha az güçlü ve çok yönlü hale getirir çoklu kalıtım, bazı özelliklere sahip değildir. C # Henüz C ++ popülerlik ulaşmadı.

Böyle Smalltalk gibi diğer bazı nesne yönelimli dilde C ++ denilen yöntemlerde üye işlevlerini sözde unutulmamalıdır. veri öğeleri olarak adlandırılan özelliklerdir. nesnenin bir yöntemi çağırmak ona mesaj gönderiyor.

analoji

Sen şirket bölümlerin nesneleri tahmin edebilirsiniz. kuruluşların çoğu, çalışanlar kadrosu, aşağıdaki aşırı şarja maaş ve perakende ticaret yapan sonra bir hafta ile bir gün çalışmaz. Her bölüm açıkça verilen görevler ile kendi personel bulunmaktadır. bölümlerinde İnsanlar bilgilerle çalışmak vb ücretler, satış, muhasebe personeli, göstergeleri ...: kendi veri vardır Şirketin bölünmesi, bu nedenle, operasyonların kontrol edilmesini kolaylaştırır ve veri bütünlüğünü korur. Muhasebe sorumludur bordro. Temmuz ayında güney kolu ödenen ücretlerin toplam tutarı öğrenmek istiyorsanız, arşiv defterleri gerekmez. Sorumlu kişiye bir not göndermek o kişinin verilere erişimi olan ve istenen bilgilere cevap gönderene kadar beklemek için yeterlidir. Bu düzenlemelere uyum ve dış parazit olmadığını ifade eder. Aynı şekilde PLO'da bir amacı, kuruluş uygulaması sağlar.

Nesnelerin oryantasyon çalışma programının ayrıntıları için geçerli değildir unutulmamalıdır. operatörler ++ C En talimatları Aslında C gibi usul dilleri için karşılık gelen, C. fonksiyonları çok benzer C ++ üye işlevlerini sadece daha geniş bir bağlamda kullanım usul ya da nesne yönelimli olup olmadığını tespit sağlayacaktır.

OOP nesne: Tanımı

yerine ayrı fonksiyonlara bölünmüş halde ilgili sorular nesne yönelimli dilde programlama problemi değerlendirirken ayırma tesislerinde bir sorundur. OOP düşünme uygulamaları geliştirmek için çok daha kolaydır. Bu yazılım ve gerçek nesnelerin benzerlik nedeniyle.

OOP'deki nesneler Ne tür şeyler nelerdir? Tipik birkaç kategorilerdir.

OOP'deki Fiziksel nesne - şudur:

  • taşıma akış modelleri;
  • devre tasarım programları elektrik bileşenleri;
  • Ülke ekonomisi modeli;
  • Hava trafik kontrol sisteminde uçağı.

çevre kullanıcının bilgisayarına Unsurları:

  • menü;
  • pencereler;
  • Grafik (çizgi, dikdörtgen, daire);
  • klavye, fare, yazıcı, disk sürücüleri.

insanlar:

  • işçiler;
  • öğrencilerin;
  • müşteriler;
  • satıcılar.

bilgi:

  • defter tutma;
  • Özel bir mesele;
  • Sözlük;
  • enlemlerde ve yerleşim boylam tablosu.

gerçek dünyanın Haberleşme nesneleri ve FKÖ fonksiyonları ve veri onlar programlama devrim yarattı kombinasyonundan sonucuydu. Orada usul dilde Böyle bir yakın maç.

sınıf

Bir sınıf üyesi - FKÖ içinde nesneler. Ne anlama geliyor? Programlama dilleri yerleşik veri türleri. Tip int, t., E. C, önceden belirlenmiş olan bir tam sayı ++. Sen int değişkenler herhangi bir sayıda ilan edebilir.

Benzer bir şekilde, bir nesne birden çok bir sınıf ile tanımlanır. Bir int değişkenleri yaratmaz olarak fonksiyonları ve tesislerinde içerdiği veriler, hem de onları yaratan değil tanımlar.

PLO'da Sınıf - benzer nesneler bir dizi tanımı. Prens, Sting ve Madonna şarkıcılar. Orada bu isimde kimse, ancak, uygun özelliklere sahip olmadığını insanlar, bu nedenle çağrılabilir. OOP Nesne - Bu örneği.

miras

hayatta, sınıflar alt sınıflara ayrılır. Örneğin, hayvan amfibiler, memelilerde, kuşlarda, böceklerde içine ve böylece ayrılır. D.

bölünme, bu tür ilkesi, alt sınıfı ile ilgili ortak özelliklere sahip olmasıdır. Bütün arabalar jantlar ve bir motoru var. Bu araçların belirleyici özellikleri olduğunu. Her alt sınıfın genel özelliklerine ek olarak kendine has özellikleri vardır. Orada birçok otobüs koltuk ve kamyonlar ağır yükleri taşımak için boşluk var.

Benzer bir şekilde, bir taban sınıfı, ek kendi özelliklere sahiptir, böylece tarif edilebilen bir alt ana bazı türevler olabilir. prosedürel programı basitleştirilmesi fonksiyonları gibi Kalıtım. birçok kod parçaları hemen hemen aynı yapıyorsanız, sık öğeleri ayıklamak ve bir prosedür onları koyabilirsiniz. Üç uygulama alanı ortak eylemleri gerçekleştirmek için işlevini çağırabilirsiniz, ancak bunların üretilmesi ve kendi operasyonları olabilir. Benzer şekilde, taban sınıfı türevleri grubundan ortak bilgileri de içerir. Benzer bir işlev, nesne yönelimli programın miras azaltır ve elemanların arasındaki ilişkiyi belirler.

geri dönüşüm

sınıf oluşturulur ve debug sonra, kendi uygulamalarında yeniden başka programcılar transfer edilebilir. Farklı uygulamalar dahil edilebilir fonksiyonların bir kütüphane gibi.

OOP, kalıtım çoklu kullanım düşüncesinin bir uzantısıdır. Varolan sınıfından itibaren, bunu değiştirmeden, başka fonksiyonların eklenmesiyle yenisini oluşturabilir. Mevcut yazılımın yeniden kullanım kolaylığı - FKÖ'nün önemli bir avantaj. O ilk yatırım artan karlılığı verdiğine inanılır.

Yeni veri türleri oluşturma

Yeni veri tiplerinin oluşturulması için uygun imkanlar. Bir program iki boyutlu değerleri kullanır varsayalım (örn koordinatlar veya enlem ve boylam) ve onlara aritmetik işlem ifade etmek arzusu vardır:

konumu1 = konumu + kökeni,

burada konumu1, konum ve kökeni - bağımsız sayısal değerlerin bir çift. onun nesnelerin bu iki değeri içerir sınıfını ve değişken bildirimleri oluşturma yeni bir veri türü oluşturur.

Polimorfizm, aşırı yükleme

Aritmetik kullanılan Operatörler (eşit) = ve + (artı) konumsal yukarıdaki gibi hareket yok yerleşik bir int gibi türleri. Pozisyon nesneler, ve diğerleri., Önceden belirlenmiş ve yazılım tarafından belirlenen değil misin. Bunlar nasıl operatörler bunları nasıl ele biliyoruz? Cevap yeni davranışlar onlar için ayarlanabilir olması yatıyor. Bu işlemler üye fonksiyonları Sınıf pozisyonu olacaktır.

polimorfizmi denen çalıştıkları bağlı operatörleri veya prosedürleri kullanma. Yeni veri türü ile çalışma fırsatı alır böyle + veya = olarak bir operatör, olduğunda, bunun aşırı olduğunu söyledi. FKÖ içinde Aşırı yük - polimorfizm bir tür. Onun önemli bir özelliktir.

FKÖ "Aptallar için Nesne Tabanlı Programlama" üzerine bir kitap herkesin daha ayrıntılı olarak bu konu hakkında bilgi almak için izin verecektir.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 unansea.com. Theme powered by WordPress.