Τελευταία μηνύματα

#31
Javascript / JavaScript Array (Dizi) Metotl...
Τελευταίο μήνυμα από Unraz - Αυγ 12, 2024, 01:52 ΜΜ
JavaScript Nedir?
JavaScript, web tarayıcılarında çalışan ve dinamik içerik oluşturmak için en çok kullanılan programlama dillerinden biridir. Hem istemci tarafında hem de sunucu tarafında (Node.js gibi) kullanılabilir. JavaScript, kullanıcı etkileşimlerini yönetme, içerik güncelleme ve uygulama geliştirme konularında büyük bir esneklik sunar. Yani, modern webin yüzü hâline gelmiştir!

Dizi Nedir?
JavaScript'te dizi, birden fazla veri parçasını saklamak için kullanılan bir veri yapısıdır. Diziler, sıralı öğeler listesidir ve her bir öğe, bir indeksle (sıfırdan başlayan sayılar) belirlenir. Basit bir örnek vermek gerekirse, bir meyve sepetini düşünün: Elma, muz ve portakal, her biri farklı konumlarla bir arada tutulur.

Dizi Türleri
JavaScript'te iki ana dizi türü vardır:
  • Tek Boyutlu Diziler: Sadece tek bir sıra boyunca sıralanmış elemanlardan oluşur.
  • Çok Boyutlu Diziler: İçinde başka diziler barındırabilen dizilerdir. Örneğin, bir matris gibi.

JavaScript Dizileri ile Çalışmaya Giriş
JavaScript'te dizilerle çalışmak oldukça kolaydır. Önce bir dizi oluşturmak ve daha sonra bu dizi üzerinde işlem yapmak için birkaç temel bilgiye ihtiyaç var.

Dizi Oluşturma
Dizi oluşturmak için, köşeli parantezler
[] kullanabiliriz. Basit bir dizi nasıl tanımlanır bakalım:
1let meyveler = ['elma', 'muz', 'portakal'];
2

Burada
meyveler adında bir dizi tanımladık.

Farklı Yöntemlerle Dizi Oluşturma
Dizileri oluşturmanın birkaç farklı yolu vardır. Örneğin:
1let sayilar = new Array(1, 2, 3, 4); // Array constructor kullanarak
2

Bu şekilde de diziler tanımlanabilir, ancak en yaygın yöntem köşeli parantez kullanmaktır.

Yaygın Dizi Metotları
JavaScript dizilerinin sunduğu birçok yararlı metod vardır. Şimdi bu metodları inceleyelim.

push() Metodu
push() metodu, dizinin sonuna yeni bir eleman eklemeye yarar. Örneğin:
1meyveler.push('kivi');
2console.log(meyveler); // Çıktı: ['elma', 'muz', 'portakal', 'kivi']
3

Bu metot diziyi değiştirdiği için, oranı artırır.

pop() Metodu
pop() metodu, dizinin sonundaki elemanı çıkarır. Bu işlem dizinin sonundaki öğeyi silerken, silinen öğeyi de döndürür:
1let sonMeyve = meyveler.pop();
2console.log(sonMeyve); // Çıktı: 'kivi'
3console.log(meyveler); // Çıktı: ['elma', 'muz', 'portakal']
4

shift() Metodu
shift() metodu, dizinin en başındaki elemanı çıkarır. Oldukça kullanışlıdır, örneğin:
1let ilkMeyve = meyveler.shift();
2console.log(ilkMeyve); // Çıktı: 'elma'
3console.log(meyveler); // Çıktı: ['muz', 'portakal']
4

unshift() Metodu
unshift() metodu, dizinin başına yeni bir eleman ekler:
1meyveler.unshift('şeftali');
2console.log(meyveler); // Çıktı: ['şeftali', 'muz', 'portakal']
3

splice() Metodu
splice() metodu, belirli bir konumda elemanları silmenizi veya eklemenizi sağlar. Oldukça esnektir:
1meyveler.splice(1, 1, 'vişne'); // 1. indeksden başlayarak bir öğe siler ve yerine 'vişne' ekler
2console.log(meyveler); // Çıktı: ['şeftali', 'vişne', 'portakal']
3

slice() Metodu
slice() metodu, bir dizinin belirli bir bölümünü kopyalar ve yeni bir dizi döndürür:
1let yeniMeyveler = meyveler.slice(1, 3); // 1. ve 3. indeks arası
2console.log(yeniMeyveler); // Çıktı: ['vişne', 'portakal']
3

forEach() Metodu
forEach() metodu, dizinin her bir elemanı üzerinde işlem yapmanızı sağlar:
1meyveler.forEach(function(meyve) {
2    console.log(meyve);
3});
4// Çıktı:
5// şeftali
6// vişne
7// portakal
8

map() Metodu
map() metodu, her elemanı bir işleme tabi tutup, yeni bir dizi döndürür:
1let uzunMeyveIsimleri = meyveler.map(function(meyve) {
2    return meyve + ' meyvesi';
3});
4console.log(uzunMeyveIsimleri);
5// Çıktı:
6// ['şeftali meyvesi', 'vişne meyvesi', 'portakal meyvesi']
7

filter() Metodu
filter() metodu, belirli bir koşula uyan elemanları filtreleyerek yeni bir dizi döndürür:
1let filtreliMeyveler = meyveler.filter(function(meyve) {
2    return meyve.includes('ş');
3});
4console.log(filtreliMeyveler); // Çıktı: ['şeftali']
5

reduce() Metodu
reduce() metodu, dizi elemanlarını tek bir değere indirgemek için kullanılır:
1let toplam = [1, 2, 3, 4].reduce(function(acc, num) {
2    return acc + num;
3}, 0);
4console.log(toplam); // Çıktı: 10
5

Dizi Metotları ile Örnekler
Dizi metotlarını gerçek hayatta nasıl kullanabileceğinizi göstermek için birkaç küçük örneğe bakalım.

  • Kullanıcı Listesi: Kullanıcıları bir dizide saklayıp, filter() metodu ile belirli bir kriterle filtreleme yapabilirsiniz.
  • Alışveriş Listesi: Alışveriş listesine eleman ekleyip, pop() metodu ile son ürünü çıkarabilirsiniz.
  • Dizi Manipülasyonu: Belirli değerleri değiştirmek için splice() ve slice() kullanabilirsiniz.

Sonuç
JavaScript dizileri, programlamanın birçok alanında son derece kullanışlıdır. Farklı metotlarla bu dizileri kolayca manipüle edebilir, sorunları daha hızlı çözebilirsiniz. Öğrenmeye devam ederek, daha karmaşık dizilerle de nasıl başa çıkacağınızı keşfedebilirsiniz. JavaScript dünyasında dizilerle oynamak oldukça eğlenceli!

Sıkça Sorulan Sorular (SSS)
  • JavaScript dizileri nasıl tanımlanır? let dizi = [eleman1, eleman2, ...]; şeklinde tanımlanabilir.
  • Dizinin sonuna nasıl eleman eklenir? push() metodu ile dizinin sonuna eleman ekleyebilirsiniz.
  • Diziyi nasıl filtrelerim? filter() metodu ile belirli bir koşula uyan elemanları yeni bir diziye atabilirsiniz.
  • Dizi elemanlarını döngü ile nasıl gezebilirim? forEach() metodu ile dizinin her elemanına erişebilirsiniz.
  • reduce() metodu ne işe yarar? Bir dizi içindeki değerleri tek bir değere indirgemek için kullanılır.

#32
Python / Python: Sınıf ve Nesne Tanımla...
Τελευταίο μήνυμα από Unraz - Αυγ 12, 2024, 01:48 ΜΜ
Python Nedir?
Python, günümüzde en popüler programlama dillerinden biridir. Basit ve sezgisel bir sözdizimine sahip olması, hem yeni başlayanlar hem de deneyimli yazılımcılar için cazip hale getirir. Python, birçok alanda—web geliştirmeden veri bilimine kadar—kullanılmaktadır. Bu esnek dil, hem güçlü kütüphaneleri hem de geniş bir topluluğa sahip olması sayesinde, projelerinizi hızlı bir şekilde geliştirmenizi sağlar.

Nesne Yönelimli Programlama (OOP) Nedir?
Nesne yönelimli programlama, yazılım geliştirme yöntemlerinden biridir ve nesneler aracılığıyla problem çözmeyi amaçlar. OOP'nin temel prensipleri arasında kapsülleme, soyutlama, kalıtım ve polimorfizm yer alır. Bu yöntem, kodun daha yönetilebilir ve esnek olmasına olanak tanır.

Sınıf Nedir?
Sınıf, bir nesnenin özelliklerini ve davranışlarını tanımlayan bir yapıdır. OOP'nin temel yapı taşı olan sınıflar, nesnelerin nasıl davranacağını belirler. Sınıf, daha sonra örneklerini (nesnelerini) oluşturabileceğiniz bir şablondur.

Sınıfların Temel Özellikleri
Sınıflar şu temel özelliklere sahiptir:

  • Kapsülleme: Sınıflar, verileri ve bu verilere erişen metodları bir arada tutar.
  • Soyutlama: Kullanıcı, sınıfın iç işleyişiyle ilgilenmeden bu sınıfın sunduğu işlevleri kullanabilir.
  • Kalıtım: Bir sınıf, başka bir sınıftan özellikleri ve metodları devralabilir.

Sınıf Tanımlama
Python'da sınıf tanımlamak oldukça basittir. Sınıflar
class anahtar kelimesi ile tanımlanır:
1class Araba:
2    pass
3

Bu örnekte,
Araba adında boş bir sınıf tanımladık. Şimdi bu sınıfa özellikler ve metodlar eklemeye başlayabiliriz.

Nesne Nedir?
Nesne, sınıfın bir örneğidir ve onu temsil eden varlık veya yapı olarak düşünülmelidir. Bir sınıf tanımladığınızda, bu sınıfın nesnelerini oluşturabilirsiniz. Nesneler, sınıfın tanımladığı özellikleri taşır ve davranışları sergiler.

Sınıf ve Nesne Arasındaki Farklar
  • Sınıf: Bir şablondur, özellikler ve metodlar tanımlar.
  • Nesne: Sınıfın bir örneğidir; sınıfın tanımladığı özellikleri ve metodları taşır.

Python'da Sınıf ve Nesne Tanımlama
Bu bölümde, Python'da sınıf ve nesne tanımlamasının nasıl yapıldığını uygulamalı örneklerle inceleyeceğiz.

Basit Bir Sınıf Tanımlama Örneği
Aşağıda basit bir
Araba sınıfının tanımını görebilirsiniz:
1class Araba:
2    def __init__(self, marka, model, yil):
3        self.marka = marka
4        self.model = model
5        self.yil = yil
6
7    def bilgi_goster(self):
8        print(f"{self.yil} model {self.marka} {self.model}")
9

Bu sınıf, bir arabanın marka, model ve yıl bilgilerini tutar.
__init__ metodu, nesne oluşturulurken çağrılır ve özelliklerin atanmasını sağlar.

Özellikler ve Metodlar
Sınıflar, özellikleri ve metodlarıyla çalışır. Özellikler, nesnenin durumunu temsil ederken; metodlar, nesnenin davranışlarını tanımlar.
1araba1 = Araba("Toyota", "Corolla", 2020)
2araba1.bilgi_goster()  # Çıktı: 2020 model Toyota Corolla
3

Getter ve Setter Kullanımı
Getter ve setter, özelliklerin kontrolünü sağlamanın yollarındandır. Özellikle veri gizliliği açısından önemlidir.
1class Araba:
2    def __init__(self, marka):
3        self.__marka = marka  # Private değişken
4
5    @property
6    def marka(self):
7        return self.__marka
8
9    @marka.setter
10    def marka(self, yeni_marka):
11        self.__marka = yeni_marka
12

Burada
marka özelliği private olarak tanımlandı ve getter/setter kullanarak erişildi.

Miras Alma (Inheritance)
Kalıtım, bir sınıfın başka bir sınıftan özellik ve metodları devralabilmesini sağlar. Bu, kodun yeniden kullanılabilirliğini artırır.

Miras Alma Örneği
Aşağıda bir
TicariAraba sınıfının
Araba sınıfından nasıl miras aldığını görebilirsiniz:
1class TicariAraba(Araba):
2    def __init__(self, marka, model, yil, kapasite):
3        super().__init__(marka, model, yil)
4        self.kapasite = kapasite
5
6    def bilgi_goster(self):
7        super().bilgi_goster()
8        print(f"Kapasite: {self.kapasite} kişi")
9

Bu örnekte,
TicariAraba sınıfı,
Araba sınıfındaki özellikleri ve metodları devraldı.

Polimorfizm
Polimorfizm, bir nesnenin birden fazla biçimi olabileceği anlamına gelir. Aynı metodun, farklı nesnelerde farklı sonuçlar vermesidir.

Polimorfizm Örnekleri
Aşağıda bir örnekle polimorfizmi görebilirsiniz:
1class Ağaç:
2    def ses(self):
3        print("Ağaç rüzgarda hışırdar.")
4
5class Kuş:
6    def ses(self):
7        print("Kuş cıvıldar.")
8
9def ses_cikar(nesne):
10    nesne.ses()
11
12a = Ağaç()
13k = Kuş()
14ses_cikar(a)  # Çıktı: Ağaç rüzgarda hışırdar.
15ses_cikar(k)  # Çıktı: Kuş cıvıldar.
16

Burada
ses metodu,
Ağaç ve
Kuş sınıflarında farklı çıktı verir.

Sınıf ve Nesne Kullanımının Avantajları
Sınıf ve nesne kullanmanın çok sayıda avantajı vardır:
  • Yeniden Kullanılabilirlik: Sınıflar bir kez tanımlanır ve tekrar tekrar kullanılabilir.
  • Organizasyon: Kod, mantıksal bir yapı içinde organize edilir.
  • Bakım Kolaylığı: Kodda değişiklik yaparken, sınıfların etkisi minimumda tutulur.

Sonuç
Python'da sınıf ve nesne tanımlama, nesne yönelimli programlamanın temel taşlarını anlamanın anahtarıdır. Bu yapılar, yazılım geliştirme sürecini daha yönetilebilir ve esnek hale getirir. OOP prensiplerini öğrenerek, daha etkili ve sürdürülebilir projeler geliştirebilirsiniz. Python'un sunduğu bu güçlü araçları kullanarak, yazılım dünyasında fark yaratmaya başlayabilirsiniz!

Sıkça Sorulan Sorular (SSS)
  • Sınıf ve nesne arasındaki fark nedir? Sınıf bir şablondur, nesne ise bu şablondan türetilmiş somut bir varlıktır.
  • Python'da sınıf nasıl tanımlanır? class anahtar kelimesi ile tanımlanır ve __init__ metodu ile başlatılır.
  • Kalıtım nedir? Bir sınıfın başka bir sınıftan özelliklerini ve metodlarını devralmasıdır.
  • Polimorfizm ne anlama gelir? Aynı metodun farklı nesnelerde farklı işler yapabilmesidir.
  • Neden sınıf ve nesne kullanmalıyım? Sınıf ve nesne kullanımı, kodun organizasyonunu artırır ve bakımını kolaylaştırır.

#33
C# / C# Kapsülleme (Detaylı Rehber)
Τελευταίο μήνυμα από Unraz - Αυγ 12, 2024, 01:44 ΜΜ
C# Nedir?
C#, Microsoft tarafından geliştirilen modern ve güçlü bir programlama dilidir. Nesne yönelimli bir yapı sunar ve özellikle Windows uygulamaları geliştirmek için yaygın olarak kullanılır. Taşınabilirlik, hızlı geliştirme süreci ve kullanıcı dostu olması, C#'ı popüler bir seçim haline getirir. Ayrıca, C# ile yapılan uygulamalar, performans açısından oldukça verimlidir. Geliştiricilerin daha az hata ile daha fazla iş yapmasını sağlar.

Kapsülleme Nedir?
Kapsülleme, nesne yönelimli programlamada temel bir kavramdır. Bir nesnenin verilerini (özelliklerini) ve bu verilere erişen metodları (davranışlarını) bir arada tutarak, nesnenin işlevselliğini sınırlamak anlamına gelir. Yani, bir nesne içerisinde şeffaf olmayan dalgalara yol açmadan, dış dünyadan gizlenen bir veri koruma mekanizmasıdır.

Kapsüllemenin Amaçları
Kapsüllemenin çeşitli amaçları vardır. Bunlardan bazıları şunlardır:

Veri Gizliliği
Bir nesnenin verileri dışarıdan erişime kapatılır. Bu, verilerin korunmasını ve istendiğinde sadece belirli metodlar aracılığıyla erişimini sağlar. Böylece, yanlış veri girişi ve istenmeyen değişiklikler engellenmiş olur.

Kod Bakımını Kolaylaştırma
Kodun daha düzenli ve yönetilebilir olmasını sağlayarak bakım süreçlerini kolaylaştırır. Farklı bileşenlerin birbirinden bağımsız çalışmasını sağlar, böylece bir yerin değiştirilmesi diğer bölümleri etkilemez.

C#'ta Kapsülleme Nasıl Uygulanır?
C# dilinde kapsülleme uygulamak için özellikler (properties), getter ve setter metodları kullanılır.

Özellikler (Properties)
Özellikler, sınıflardaki veriler üzerinde okunabilirlik ve yazılabilirlik sağlar. Özellikler, veri erişimini kontrol etmenin etkili bir yoludur.
1public class Kisi {
2    private string ad;
3
4    public string Ad {
5        get { return ad; }
6        set { ad = value; }
7    }
8}
9

Getter ve Setter Kullanımı
Getter ve setter, özelliklerin değerini almak ve ayarlamak için kullanılır. Getter, özelliğin değerini döndürürken; setter, yeni bir değer atar. Bu, geliştiricilere yazılımın daha güvenli bir şekilde yönetilmesini sağlar.

Kapsülleme ile İlgili Örnekler
Kapsüllemeyi anlamanın en iyi yollarından biri, pratik örnekler üzerinden geçmektir.

Basit Bir Kapsülleme Örneği
Aşağıda basit bir kişi sınıfının kapsülleme yöntemi gösterilmektedir:
1public class Kisi {
2    private string isim;
3    private int yas;
4
5    public string Isim {
6        get { return isim; }
7        set { isim = value; }
8    }
9
10    public int Yas {
11        get { return yas; }
12        set {
13            if (value > 0) {
14                yas = value;
15            }
16        }
17    }
18}
19

Burada
Yas özelliği, pozitif bir değer olmasını garanti etmektedir.

Kalıtım ile Kapsülleme İlişkisi
Kapsülleme ve kalıtım, nesne yönelimli programlamanın temel taşlarıdır. Kapsülleme sayesinde, (alt sınıflarda da dahil olmak üzere) nesnelerin verileri belirli metodlarla kontrol altında tutulur.
1public class Calisan : Kisi {
2    private decimal maas;
3
4    public decimal Maas {
5        get { return maas; }
6        set {
7            if (value > 0) {
8                maas = value;
9            }
10        }
11    }
12}
13

Kapsülleme ile Hataları Azaltma
Kapsülleme, kodun içinde hataların azaltılmasına yardımcı olur. Verilerin kontrollü bir şekilde yönetilmesi, hatalı veri girilimini en aza indirir. Özellikle büyük projelerde, veri gizliliği ve erişim kontrolü sayesinde, hatalar daha kolay tespit edilir.

Kapsülleme Prensipleri
Sorumlulukların Ayrılması
Kapsülleme, farklı sorumlulukların birbirinden ayrılmasına olanak tanır. Bu, yazılımın daha modüler hale gelmesini sağlar ve bakım işlemlerini kolaylaştırır.

Bilgi Gizleme
Bilgi gizleme prensibi, dış dünyanın nesne içindeki verilere doğrudan erişmesini engeller. Bu, yazılımın güvenliği açısından kritik bir özelliktir.

Kapsülleme ile İlgili Yaygın Yanlışlar
Kapsülleme, yanlış anlaşılan bazı yanlarıyla birlikte gelir. İşte bu yanlışlar:

  • Kapsülleme ile yalnızca veri gizlenir, fakat işlevler (metodlar) açıkta kalır.
  • Kapsülleme sadece nesne yönelimli programlamaya özgüdür; aslında, tüm programlama paradigmalarında süregiden bir konsepttir.

Sonuç
C# dilinde kapsülleme, veri yönetimini kolaylaştırır ve güvenliği artırır. Kapsülleme sayesinde nesnelerinizin verilerini daha etkili bir şekilde koruyabilir, sisteminizin bakımını daha kolay yapabilirsiniz. Dikkatli bir uygulama ile, bu prensipleri kullanarak yazılımlarınızı daha sağlam hale getirebilirsiniz. Kapsülleme kelimesinin ardındaki kavramlar, yazılım geliştirmenin ne kadar önemli bir parçasıdır.

Sıkça Sorulan Sorular (SSS)
  • Kapsülleme ne işe yarar? Veri gizliliği sağlar ve kod bakımını kolaylaştırır.
  • C#'ta kapsülleme nasıl yapılır? Değişkenler private olarak tanımlanır ve getter/setter özellikleri ile erişilir.
  • Neden getter ve setter kullanmalıyım? Verinin güvenliği ve yönetilebilirliği açısından önemlidir.
  • Kapsülleme kalıtım ile nasıl ilişkilidir? Kapsülleme, sınıflar arası veri kontrolünü sağlar ve kalıtımla birlikte daha etkili çalışır.
  • Kapsülleme yalnızca nesne yönelimli programlamaya mı özgüdür? Hayır, bu kavram diğer programlama paradigmalarda da geçerlidir.

#34
SQL / SQL Tarih Sorguları & Between ...
Τελευταίο μήνυμα από Unraz - Φεβ 20, 2024, 02:02 ΜΜ
#35
Kotlin / Kotlin: With, Run, Also Metodl...
Τελευταίο μήνυμα από Unraz - Φεβ 20, 2024, 02:00 ΜΜ
#36
Flutter / Flutter IF-ELSE Koşullu ifadel...
Τελευταίο μήνυμα από Unraz - Φεβ 20, 2024, 02:00 ΜΜ
#37
Javascript / Javascript: String Metotları (...
Τελευταίο μήνυμα από Unraz - Φεβ 20, 2024, 01:59 ΜΜ
#38
Python / Ynt: Python Time Modülünü Öğre...
Τελευταίο μήνυμα από Unraz - Μαρ 16, 2024, 10:08 ΜΜ
Παράθεση από: Sevginur στις Μαρ 15, 2024, 12:08 ΜΜÇok zor olduğunu düşünüyordum fakat anlatımla ilgili olduğunu farkettim çok saolun

Zorlandığınız yerleri yazarak yardım istemekten çekinmeyin. Yardımcı olmaktan mutluluk duyarız. :)

Παράθεση από: Ozan στις Μαρ 15, 2024, 03:08 ΜΜmükemmel oldu öğrendim diye düşünüyorum diğer dilleri de öğrenmeye devam edicem


Kendinizi sürekli geliştirmeniz için tüm kaynakları ücretsiz olarak sizlerle paylaşmaya özen gösteriyoruz. Başarılar dileriz.  :)

Παράθεση από: hiranur26 στις Μαρ 15, 2024, 05:17 ΜΜPython'u sizle öğrenmeye başladım, sizle de ddvam edicem. 

Bizler de sizin takıldığınız noktalarda yardım etmek için burada olacağız.

İyi çalışmalar dileriz.

#39
Python / Ynt: Python Time Modülünü Öğre...
Τελευταίο μήνυμα από hiranur26 - Μαρ 15, 2024, 05:17 ΜΜ
Python'u sizle öğrenmeye başladım, sizle de ddvam edicem.   
#40
Python / Ynt: Python Time Modülünü Öğre...
Τελευταίο μήνυμα από Ozan - Μαρ 15, 2024, 03:08 ΜΜ
mükemmel oldu öğrendim diye düşünüyorum diğer dilleri de öğrenmeye devam edicem