java teknolojisi | Kampüs Kod https://www.kampuskod.com Kampüs Bilim Sanat Teknoloji ve Yazılım Eğitimleri Platformu Sat, 18 Dec 2021 17:06:48 +0000 tr hourly 1 https://wordpress.org/?v=6.2.2 Hibernate Nedir? Hibernate Framework Avantajları – Java Dersleri https://www.kampuskod.com/yazilim/java/hibernate-nedir-hibernate-framework-avantajlari-java-dersleri/ https://www.kampuskod.com/yazilim/java/hibernate-nedir-hibernate-framework-avantajlari-java-dersleri/#respond Sun, 31 May 2020 20:52:30 +0000 https://www.kampuskod.com/?p=7579 Hibernate, veritabanı ile etkileşim kurmak için Java uygulama geliştirmelerini kolaylaştıran bir Java Frameworku’dur. Hibernate açık kaynak kodlu, hafif, ORM (Nesne İlişkisel Haritalama/Eşleme (Object Relational Mapping) ) aracıdır. Hibernate, veri sürekliliği için JPA’nın tanımlamalarını uygular. ORM Tool Nedir? ORM tool (aracı), veri oluşturma, veri değiştirme ve veri erişimini basitleştirir. Veritabanı üzerinde saklanan verilere nesne eşleyen bir […]

The post Hibernate Nedir? Hibernate Framework Avantajları – Java Dersleri first appeared on Kampüs Kod.]]>
Hibernate, veritabanı ile etkileşim kurmak için Java uygulama geliştirmelerini kolaylaştıran bir Java Frameworku’dur. Hibernate açık kaynak kodlu, hafif, ORM (Nesne İlişkisel Haritalama/Eşleme (Object Relational Mapping) ) aracıdır. Hibernate, veri sürekliliği için JPA’nın tanımlamalarını uygular.

ORM Tool Nedir?

ORM tool (aracı), veri oluşturma, veri değiştirme ve veri erişimini basitleştirir. Veritabanı üzerinde saklanan verilere nesne eşleyen bir programlama tekniğidir.

Hibernate ORM Tool Şeması
Hibernate ORM Tool Şeması

ORM tool, veritabanıyla etkileşim kurmak için JDBC API kullanır.

JPA Nedir?

Java Persistence API (JPA), ORM araçlarına (tools) belirli fonksiyonellik ve standart sağlayan bir Java spesifikasyonudur. javax.persistence paketi, JPA sınıfları ve arayüzlerini içerir.

Hibernate Framework Avantajları

  • Açık Kaynak Kodlu ve Hafif (Open Source and Lightweight)

Hibernate framework’u LGPL lisansı altında açık kaynak kodludur ve hafiftir.

  • Hızlı Performans (Fast Performance)

Hibernate Framework’nun performansı hızlıdır çünkü cache (önbellek) kullanılır. Hibernate Framework’te iki tür cache vardır: İlk Seviye Cache ve İkinci Seviye Cache. İlk Seviye Cache varsayılan olarak gelmektedir.

  • Veritabanı Bağımsız Sorgu (Database Independent Query)

HQL (Hibernate Query Language (Hibernate Sorgu Dili)) SQL’in nesne yönelimli bir versiyonudur. Veritabanından bağımsız sorgular üretir. Böylece, veritabanına özgü sorgular yazmanıza gerek yoktur. Hibernate’den önce, proje için veritabanı değiştirilirse, bakım problemlerine yol açan SQL sorgusunu da değiştirmemiz gerekir.

  • Otomatik Tablo Oluşturma (Automatic Table Creation)

Hibernate Framework, veritabanı tablolarını otomatik olarak oluşturmak için kolaylık sağlar. Bu yüzden, veritabanındaki tabloları manuel olarak eklenmesine gerek yoktur.

  • Karmaşık Birleşmeyi Basitleştirir (Simplifies Complex Join)

Hibernate Framework’te birçok tablodan veri çekmek, kolaydır.

  • Sorgu İstatistikleri ve Veritabanı Durumunu Sağlar (Provides Query Statistics and Database Status)

Hibernate, sorgu önbelleğini (cache) destekler ve sorgu ve veritabanı durumu hakkında istatistikler sağlar.



Kaynaklar

https://hibernate.org/orm/

https://www.javatpoint.com/hibernate-tutorial

The post Hibernate Nedir? Hibernate Framework Avantajları – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/hibernate-nedir-hibernate-framework-avantajlari-java-dersleri/feed/ 0
Java Erişim Belirleyiciler (Access Modifier) – Java Dersleri https://www.kampuskod.com/yazilim/java/java-erisim-belirleyiciler-access-modifier-java-dersleri/ https://www.kampuskod.com/yazilim/java/java-erisim-belirleyiciler-access-modifier-java-dersleri/#respond Tue, 26 May 2020 19:07:29 +0000 https://www.kampuskod.com/?p=7085 Sınıf Üyelerine Erişimi Kontrol Etme Erişim düzey belirleyiciler, diğer sınıfların belirli bir alanı kullanıp kullanmayacağını veya belirli bir yöntemi çağırıp çağıramayacağını belirler. Erişim kontrolünün iki seviyesi vardır: En üst seviyede – public veya package-private (belirgin/açık değiştirici/belirleyici yok (no explicit modifier)) Üye seviyesinde – public, private, protected veya package-private (belirgin/açık değiştirici/belirleyici yok (no explicit modifier)) //no […]

The post Java Erişim Belirleyiciler (Access Modifier) – Java Dersleri first appeared on Kampüs Kod.]]>
Sınıf Üyelerine Erişimi Kontrol Etme

Erişim düzey belirleyiciler, diğer sınıfların belirli bir alanı kullanıp kullanmayacağını veya belirli bir yöntemi çağırıp çağıramayacağını belirler. Erişim kontrolünün iki seviyesi vardır:

  • En üst seviyede – public veya package-private (belirgin/açık değiştirici/belirleyici yok (no explicit modifier))
  • Üye seviyesinde – public, private, protected veya package-private (belirgin/açık değiştirici/belirleyici yok (no explicit modifier))

//no explicit modifier: Anlamı paket erişimidir. Basitçe açıklarsak, oluşturduğunuz herhangi bir sınıfla aynı paketi paylaşan bir sınıf metotlarınızı görebilir veya kullanabilir. Üst sınıfla aynı pakette olmadıkça alt sınıflar metotlarınızı göremez veya kullanamaz.

Bir sınıf, public belirleyicisiyle bildirilebilir, bu durumda bu sınıf, her yerdeki tüm sınıflarda görülebilir. Bir sınıfın belirleyicisi yoksa (varsayılan (default), package-private olarakta bilinir), o sadece kendi paketinin içinde görünürdür. (paketler ilişkili sınıfların grupları olarak isimlendirilir – sonraki bir derste bunları öğreneceksiniz.)

Üye seviyesinde, ayrıca public belirleyici kullanabilirsiniz veya üst seviye sınıflarda olduğu gibi ve aynı anlama gelen belirleyicisiz (package-private) kullabilirsiniz. Açıklamak gerekirse; belirleyicisiz dediğimiz herhangi bir erişim belirleyici kullanmamaktır. Eğer ki bir erişim belirleyici kullanmazsanız, sadece kendi paket içinde görünür. Üyeler için, ek iki erişim belirleyici vardır: private ve protected. Private belirleyici, üyeye sadece kendi sınıfı içinde erişilebileceğini belirtir. Protected belirleyici, üyeye sadece kendi paketi içinde (package-private ‘da olduğu gibi) ve ek olarak başka paketteki onun sınıfının bir alt sınıfı tarafından erişilebileceğini belirtir.

Aşağıdaki tablo her belirleyici tarafından izin verdiği üyelere erişim gösterilmektedir.

Modifier
(Belirleyici)
Class
(Sınıf)
Package
(Paket)
Subclass
(Alt sınıf)
World
(Tüm Proje)
publicEvetEvetEvetEvet
protectedEvetEvetEvetHayır
no modifierEvetEvetHayırHayır
privateEvetHayırHayırHayır
Erişim Seviyeleri / Java Erişim Belirleyici Seviyeleri

İlk veri sütunu, sınıfın kendisinin erişim seviyesi tarafından tanımlanan üyeye erişimi olup olmadığını gösterir. Gördüğünüz gibi, bir sınıfın her zaman kendi üyelerine erişimi vardır. İkinci sütun, sınıfla benzer paketteki sınıfların (ebeveynliklerini dikkate almadan) üyeye erişimi olup olmadığını gösterir. Üçüncü sütun, bu paketin dışında bildirilen sınıfın alt sınıflarının üyeye erişimi olup olmadığını gösterir. Dördüncü sütun, tüm sınıfların üyeye erişimi olup olmadığını gösterir.

Erişim seviyeleri iyi şekilde sizi etkiler. Birincisi, başka bir kaynaktan gelen sınıfları kullandığınızda, örneğin Java platformundaki sınıflar, erişim seviyeleri kendi sınıflarınızın hangi üyelerini kullanabileceğini belirler. İkincisi, bir sınıf yazdığınızda, sınıfınızdaki her üye değişkenin ve her metotun hangi erişim seviyesine sahip olması gerektiğine karar vermeniz gerekir.

Bir sınıf koleksiyonuna bakalım ve erişim seviyelerinin görünürlüğü nasıl etkilediğini görelim. Aşağıdaki şekil bu örnekteki 4 sınıfı ve ilişkilerinin nasıl olduğunu gösterir.

Erişim Seviyelerini Örneklerle Açıklamak İçin Kullanılan Örnek Sınıflar ve Paketler

Aşağıdaki tablo, Alpha sınıfının üyelerinin, kendilerine uygulanabilen erişim belirleyicilerin her birisi için nerede göründüklerini gösterir.

Modifier
(Belirleyici)
AlphaBetaAlphasubGamma
publicEvetEvetEvetEvet
protectedEvetEvetEvetHayır
no modifierEvetEvetHayırHayır
privateEvetHayırHayırHayır
Görünürlük / Java Erişim Belirleyici Seviyeleri

Bir Erişim Seviyesi Seçme İpuçları

Başka programcılar sizin sınıfınızı kullanırsa, yanlış kullanımdan meydana gelen hataların oluşmamasını sağlamak istersiniz. Erişim seviyeleri bunu yapmak için size yardım edebilir.

  • Belirli bir üye için anlamlı olan en kısıtlayıcı erişim düzeyini kullanın. İyi bir nedeniniz yoksa, private kullanın.
  • Sabitler (constants) hariç public alanlardan kaçının. (Bu eğitimde pek çok örnekte public alanlar kullanılır. Bu bazı noktaları kısaca açıklamaya yardımcı olabilir, ancak ürün kodu için tavsiye edilmez.) Public alanlar belirli bir uygulamaya bağlama ve kodunuzu değiştirmedeki esnekliğinizi sınırlama eğilimindedir.

Bu yazı Oracle Java Dökümanı kullanılarak İngilizceden Türkçeye çevrilmiştir. Sadece kaynak göstererek kullanabilirsiniz.

Çeviri Yapılan Bölüm Linki

The post Java Erişim Belirleyiciler (Access Modifier) – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/java-erisim-belirleyiciler-access-modifier-java-dersleri/feed/ 0
Java Servlet Nedir? – Java Dersleri https://www.kampuskod.com/yazilim/java/java-servlet-nedir-java-dersleri/ https://www.kampuskod.com/yazilim/java/java-servlet-nedir-java-dersleri/#respond Sun, 10 May 2020 05:50:00 +0000 https://www.kampuskod.com/?p=6821 Java Web teknolojisinin temelini anlamak için Java Servlet kavramını inceleyeceğiz. Java Servlet kavramı Java EE tarafında sıkça kullanılıyor. Çünkü projelerin neredeyse tamamı web platformları üzerinde. Peki, nedir bu Java Servlet? Servlet Nedir? Servletler, bir Web veya uygulama sunucusu üzerinde çalışan ve bir Web tarayıcısından veya başka bir HTTP istemcisinden gelen istekler ile HTTP sunucusu üzerindeki […]

The post Java Servlet Nedir? – Java Dersleri first appeared on Kampüs Kod.]]>
Java Web teknolojisinin temelini anlamak için Java Servlet kavramını inceleyeceğiz. Java Servlet kavramı Java EE tarafında sıkça kullanılıyor. Çünkü projelerin neredeyse tamamı web platformları üzerinde. Peki, nedir bu Java Servlet?

Servlet Nedir?

Servletler, bir Web veya uygulama sunucusu üzerinde çalışan ve bir Web tarayıcısından veya başka bir HTTP istemcisinden gelen istekler ile HTTP sunucusu üzerindeki veritabanları veya uygulamalar arasında orta bir katman gibi davranan programlardır. (Çok karmaşık gelmiş olabilir bu tanım, şekil ile açıklayalım 🙂 )

Servlet, dinamik bir web uygulaması oluşturmak için sunucu (server) üzerinde uygulamayı çalıştıran bir web bileşenidir. Servlet bir Java sınıfıdır.

Servlet Kullanmanın Avantajları Nelerdir?

  • Daha iyi bir performans sağlar.
  • Servletler, her istemci (client) isteğini karşılamak için ayrı bir işlem (process) oluşturmaya ihtiyaç duymaz.
  • Javada yazıldığı için Servetler platform bağımsızdır.
  • Sunucu üzerindeki Java güvenlik yöneticisi, bir sunucu makinesindeki kaynakları korumak için bir dizi kısıtlama uygular. Bu yüzden servletler güvenilirdir.
  • Java sınıfı kütüphaneleri tam fonksiyonelliği bir servlet tarafından kullanılabilir. Yani database, grafiksel arayüz (applet) vb. sınıflar ile iletişim kurabilir.

Servletlerin Yapabilecekleri

  • İstemciler (clients) / Tarayıcılar tarafından gönderilen açık (explicit) verileri okuyun. Bir web sayfası üzerindeki form verileri veya bir arayüz (applet) üzerinden gelen veriler.
  • İstemciler (clients) / Tarayıcılar tarafından gönderilen kapalı (implicit) HTTP istek verilerini okuyun. Bu istekler tarayıcının anladığı çerezleri, medya türlerini ve sıkıştırma şemalarını içerir.
  • Verileri işleyin ve sonuçları oluşturun. Bu aşamada veritabanı ile bağlantı kurmanız gerekebilir.
  • İstemcilere (clients) / Tarayıcılara açık veriler gönderin. HTML, XML, .gif ve EXCEL gibi
  • İstemcilere (clients) / Tarayıcılara kapalı HTTP yanıtları gönderin. (Çerezler (cookies) ve cache paratmeleri gibi)

Servetler, büyük ölçekli geliştirme projelerini destekleyen Java sınıf kütüphanelerinin genişletilmiş bir versiyonu olan Java Enterprise Edition’un (Kurumsal Sürüm) standart bir parçası olan javax.servlet ve javax.servlet.http paketleri kullanılarak oluşturulabilir.



Servlet Yaşam Döngüsü

  • Servlet, init() metotu çağrılarak başlatılır (initialize).
  • Servlet, bir istemcinin isteğini işlemek için service() metotunu çağırır.
  • Servlet, destroy() metotu çağrılarak sonlanır (terminate).
  • Sonunda, servlet Java Sanal Makinesinin (JVM) çöp toplayıcısı (garbage collector) tarafından toplanan çöptür.

init() Metotu

init() moetotu sadece bir kez çağrılır. Sadece servlet oluşturulduğunda init() metotu çağrılır ve daha sonra herhangi bir kullanıcı istekleri için çağrılmaz.

Servlet normalde bir kullanıcı servlet’e karşılık gelen bir URL’i ilk kez çağırdığında oluşturulur ancak, sunucu ilk başlatıldığında servlet yüklenmesini dahi belirtebilirsiniz.

init() metot imzası:

public void init() throws ServletException {
   // Initialization code...
}

service() Metotu

Service metotu, asıl görevleri gerçekleştirmek için ana metottur. Servlet konteyneri, istemciden(tarayıcılardan) genlen istekleri karşılamak ve istemciye yanıt dönmek için service() metotunu çağırır.

Service metotu, HTTP istek tipini (GET, POST, PUT, DELETE vb.) kontrol eder ve doGet, doPost, doPut, doDelete gibi metotları uygun şekilde çağırır.

service metot imzası:

public void service(ServletRequest request, ServletResponse response) 
   throws ServletException, IOException {
}

doGet() Metotu

Bir GET isteği, normal bir URL isteğinden veya tanımlanmış metotu olmayan bir HTML formundan kaynaklanır ve doGet() metotu tarafından karşılanmalıdır.

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   // Servlet code
}

doPost() Metotu

Bir POST isteği, metot olarak POST alan bir HTML formundan kaynaklanır ve doPost() metotu tarafından karşılanmalıdır.

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   // Servlet code
}

destroy() Metotu

Destroy metotu, servletin yaşam döngüsünün en sonunda sadece bir kez çağrılır. Bu metot, veritabanı bağlantılarını kapatmak, arka plandaki threadleri durdurmak vb. işleri yapmak için servlet’e bir şans verir.

Destroy metotu çağrıldıktan sonra, servlet nesnesi çöp toplama (garbage collection) için işaretlenir.

destroy metotu tanımlaması:

public void destroy() {
   // Finalization code...
}


Yararlandığım Kaynaklar

https://www.tutorialspoint.com/servlets/index.htm

https://docs.oracle.com/javaee/7/api/javax/servlet/Servlet.html

The post Java Servlet Nedir? – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/java-servlet-nedir-java-dersleri/feed/ 0
Java Paket Nedir? Java Package Yapısı – Java Dersleri https://www.kampuskod.com/yazilim/java/java-paket-nedir-java-package-yapisi-java-dersleri/ https://www.kampuskod.com/yazilim/java/java-paket-nedir-java-package-yapisi-java-dersleri/#respond Sat, 09 May 2020 03:06:21 +0000 https://www.kampuskod.com/?p=6808 Bir paket, ilişkili sınıfları (class) ve arayüzleri (interface) bir grup/takım düzenleyen bir ad alanıdır. Kavramsal olarak, bilgisayarınızdaki farklı klasörlere benzer olarak paketleri düşünebilirsiniz. Bir klasör içerisinde HTML sayfalarınızı, başka bir klasör içinde resimlerinizi ve başka bir klasör içinde de scriptleri veya uygulamaları tutabilirsiniz. Çünkü, Java programlama dilinde yazılmış yazılım yüzlerce veya binlerce birbirinden ayrı sınıftan […]

The post Java Paket Nedir? Java Package Yapısı – Java Dersleri first appeared on Kampüs Kod.]]>
Bir paket, ilişkili sınıfları (class) ve arayüzleri (interface) bir grup/takım düzenleyen bir ad alanıdır. Kavramsal olarak, bilgisayarınızdaki farklı klasörlere benzer olarak paketleri düşünebilirsiniz. Bir klasör içerisinde HTML sayfalarınızı, başka bir klasör içinde resimlerinizi ve başka bir klasör içinde de scriptleri veya uygulamaları tutabilirsiniz. Çünkü, Java programlama dilinde yazılmış yazılım yüzlerce veya binlerce birbirinden ayrı sınıftan oluşabileceğinden, paketler içine ilgili sınıfları (classes) ve arayüzleri (interfaces) yerleştirerek işleri düzenli tutmak mantıklıdır.

Java Platformu, kendi uygulamalarınızda kullanmak için uygun çok büyük bir sınıf kütüphanesi (bir dizi paket) sağlar. Bu kütüphane “Application Programming Interface” veya kısaca “API” olarak bilinir. Onun paketleri, genel amaçlı programlama (general-purpose programming) ile en yaygın ilişkilendirilmiş (associated) görevleri temsil eder. Örneğin, bir String objesi (nesne) karakter stringler için durum ve davranış içerir, bir File (dosya) objesi, dosya sistemi üzerinde bir dosyayı kolayca oluşturmak, silmek, incelemek, karşılaştırmak veya değiştirmek için programcıya izin verir, bir Socket objesi, ağ soketlerinin oluşturulması ve kullanılması için izin verir, çeşitli GUI objeleri, butonları ve onay kutularını (checkboxes) ve grafiksel kullanıcı arayüzleri ilgili başka herhangi bir şeyi kontrol eder. Kelimenin tam anlamıyla seçim yapabileceğiniz binlerce sınıf vardır. Bu, programcının çalışmasını sağlamak için gereken altyapıdan ziyade belli uygulamanızın tasarımı üzerine odaklanmanıza imkan verir.

Java Platformu API Şartnamesi/Beyannamesi/Tanımlaması Java SE platformu tarafından sağlanan bütün paketler (packages), arayüzler (interfaces), sınıflar (classes), alanlar (fields) ve metotlar (methods) için bütün listeyi içerir. Tarayıcınıza sayfayı yükleyin ve onu yer imleyin. Bir programcı olarak, Java Platformu API Şartnamesi en önemli tek referans dokümanınız olacaktır.

Bu yazı Oracle Java Dökümanı kullanılarak İngilizceden Türkçeye çevrilmiştir. Sadece kaynak göstererek kullanabilirsiniz.

Çeviri Yapılan Bölüm Linki

The post Java Paket Nedir? Java Package Yapısı – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/java-paket-nedir-java-package-yapisi-java-dersleri/feed/ 0
Java Interface (Arayüz) Nedir? – Java Dersleri https://www.kampuskod.com/yazilim/java/java-interface-arayuz-nedir-java-dersleri/ https://www.kampuskod.com/yazilim/java/java-interface-arayuz-nedir-java-dersleri/#respond Thu, 07 May 2020 16:29:55 +0000 https://www.kampuskod.com/?p=6747 Interfaceler, sınıf ve dış dünya arasında bir anlaşma oluşturur ve bu anlaşma derleyici tarafından inşa zamanında zorla uygulanır. Sınıfınız bir interface'i uygulamayı talep ederse,sınıf başarıyla derlenmeden önce bu interface tarafından tanımlanmış bütün metotlar sınıfın kaynak kodunda görünmeli.

The post Java Interface (Arayüz) Nedir? – Java Dersleri first appeared on Kampüs Kod.]]>
Daha önce öğrendiğimiz gibi, nesneler ortaya çıkardıkları metotlar sayesinde dış dünya ile etkileşimlerini tanımlar. Metotlar dış dünya ile nesnenin arayüzünü (interface) oluşturur; örneğin, televizyon setinizin önündeki butonlar siz ve onun plastik kaplamasının diğer tarafındaki elektrik kabloları arasında arayüzdür. Televizyonu açmak ve kapatmak için “güç” tuşuna basabilirsiniz.

Interface’in en yaygın hali, bir interface, boş gövdelerle birlikte ilgili metotların bir grubudur. Bir bisikletin davranışı, bir interface (arayüz) gibi belirtildiyse, aşağıdaki gibi görünür;

interface Bicycle {

    //  wheel revolutions per minute
    void changeCadence(int newValue);

    void changeGear(int newValue);

    void speedUp(int increment);

    void applyBrakes(int decrement);
}

Bu interface’i uygulamak için, sınıfınızın adı değişecekti (örneğin, ACMEBicycle gibi belirli bir bisiklet markasına) ve class (sınıf) tanımlamasında “implements” anahtar kelimesini kullanırsınız.

class ACMEBicycle implements Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

   // The compiler will now require that methods
   // changeCadence, changeGear, speedUp, and applyBrakes
   // all be implemented. Compilation will fail if those
   // methods are missing from this class.
//Derleyici şimdi changeCadence, changeGear, speedUp, and applyBrakes metotlarının
//uygulanmasını zorunlu tutacaktır. Eğer şu metotlar, bu sınıftan eksikse, derleyici başarız olur. 
    void changeCadence(int newValue) {
         cadence = newValue;
    }

    void changeGear(int newValue) {
         gear = newValue;
    }

    void speedUp(int increment) {
         speed = speed + increment;   
    }

    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }

    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

Bir interface’ın uygulanması, bir sınıfın sağlamayı söz verdiği davranış hakkında daha düzgün / kurallara göre olmasını sağlar. Interfaceler, sınıf ve dış dünya arasında bir anlaşma oluşturur ve bu anlaşma derleyici tarafından inşa zamanında zorla uygulanır. Sınıfınız bir interface’i uygulamayı talep ederse,sınıf başarıyla derlenmeden önce bu interface tarafından tanımlanmış bütün metotlar sınıfın kaynak kodunda görünmeli.

Not: Aslında ACMEBicycle sınıfını derlemek için, uygulanmış interface metotlarının başına “public” anahtar kelimesin eklenmeye ihtiyacı vardır. Gelecek derslerde bu kısımlara detaylıca değinmeye çalışacağız.

Bu yazı Oracle Java Dökümanı kullanılarak İngilizceden Türkçeye çevrilmiştir. Sadece kaynak göstererek kullanabilirsiniz.

Çeviri Yapılan Bölüm Linki

The post Java Interface (Arayüz) Nedir? – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/java-interface-arayuz-nedir-java-dersleri/feed/ 0
Java’da Kalıtım Nedir? Java Inheritance Kavramı – Java Dersleri https://www.kampuskod.com/yazilim/java/javada-kalitim-nedir-java-inheritance-kavrami-java-dersleri/ https://www.kampuskod.com/yazilim/java/javada-kalitim-nedir-java-inheritance-kavrami-java-dersleri/#respond Wed, 06 May 2020 14:34:10 +0000 https://www.kampuskod.com/?p=6727 Farklı nesne türlerinin genellikle belirli bir miktarda ortak noktası vardır. Örneğin; Dağ bisikletleri (MountainBike), yol bisikletleri (RoadBike), iki kişilik bisikletler (TandemBike) hepsi bisikletlerin özellikleri (mevcut vites, mevcut pedal ritmi, mevcut hız) paylaşır. Ayrıca her biri onları farklı yapan ek özellikler tanımlayabilir: iki kişilik bisikletlerin iki koltuk ve iki gidonu vardır, yol bisikletlerinin damla gidonu (drop […]

The post Java’da Kalıtım Nedir? Java Inheritance Kavramı – Java Dersleri first appeared on Kampüs Kod.]]>
Farklı nesne türlerinin genellikle belirli bir miktarda ortak noktası vardır. Örneğin; Dağ bisikletleri (MountainBike), yol bisikletleri (RoadBike), iki kişilik bisikletler (TandemBike) hepsi bisikletlerin özellikleri (mevcut vites, mevcut pedal ritmi, mevcut hız) paylaşır. Ayrıca her biri onları farklı yapan ek özellikler tanımlayabilir: iki kişilik bisikletlerin iki koltuk ve iki gidonu vardır, yol bisikletlerinin damla gidonu (drop handlebar) vardır, bazı dağ bisikletlerinin onlara daha düşük bir vites oranı sağlayan ek bir zincir halkası vardır.

Nesne yönelimli programlama başka sınıflardan yaygın olarak kullanılmış durum ve davranış miras almak için sınıflara izin verir. Bu örnekte, Bicycle sınıfı, MountainBike, RoadBike ve TandemBike’ın şuan üst sınıfı (superclass) haline gelir. Java programlama dilinde, her sınıfın (class) bir doğrudan superclass sahip olmasına izin verilir ve her superclass (üst sınıf), sınırsız sayıda alt sınıf (subclasses) potansiyeline sahiptir.

Bisiklet sınıflarının bir hiyerarşisi

Bir subclass (alt sınıf) oluşturma için söz dizimi basittir. Class bildiriminiz başlangıcına, extends anahtar kelimesini ve ardından miras almak için sınıfın adını kullanın.

class MountainBike extends Bicycle {

    // new fields and methods defining 
    // a mountain bike would go here

}

Bu, MountainBike’a Bicycle sınıfındaki gibi benzer tüm alanları ve metotları verir, ancak kodunun özellikle onu benzersiz yapan özellikler üzerinde odaklanmasına imkan verir. Bu, alt sınıflarınızın kodunun okunmasını kolaylaştırır. Yine de, bu kod her subclass’ın kaynak dosyasında görünmeyeceğinden, her üst sınıfın tanımladığı durumu ve davranışı uygun bir şekilde belgelemeye dikkat etmelisiniz.

Bu yazı Oracle Java Dökümanı kullanılarak İngilizceden Türkçeye çevrilmiştir. Sadece kaynak göstererek kullanabilirsiniz.

Çeviri Yapılan Bölüm Linki

The post Java’da Kalıtım Nedir? Java Inheritance Kavramı – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/javada-kalitim-nedir-java-inheritance-kavrami-java-dersleri/feed/ 0
Java’da == ve equals() Farkı – Java Dersleri https://www.kampuskod.com/yazilim/java/javada-ve-equals-farki-java-dersleri/ https://www.kampuskod.com/yazilim/java/javada-ve-equals-farki-java-dersleri/#comments Mon, 04 May 2020 16:52:26 +0000 https://www.kampuskod.com/?p=6621 İş mülakatlarında en çok karşılaşabileceğiniz soru tiplerinden biri de Java’daki == ile equals() metot farkı olacaktır. Hadi o zaman, size == ve equals() farkını açıklayalım. 1- Equals() ve == arasında temek fark, birinin metot diğerinin operator olmasıdır. 2- == operatörünü referans karşılaştırması (reference) (address comparison) için ve equals() metotunu içerik karşılaştırması için kullanırız. Basitçe söylemek […]

The post Java’da == ve equals() Farkı – Java Dersleri first appeared on Kampüs Kod.]]>
İş mülakatlarında en çok karşılaşabileceğiniz soru tiplerinden biri de Java’daki == ile equals() metot farkı olacaktır. Hadi o zaman, size == ve equals() farkını açıklayalım.

1- Equals() ve == arasında temek fark, birinin metot diğerinin operator olmasıdır.

2- == operatörünü referans karşılaştırması (reference) (address comparison) için ve equals() metotunu içerik karşılaştırması için kullanırız. Basitçe söylemek gerekirse, == her iki nesnenin aynı bellek konumuna işaret edip etmediğini denetlerken, .equals() nesnelerdeki değerlerin karşılaştırılmasını değerlendirir.

Detaylıca anlamak için örnek bir kod alanı koyuyorum:

public class KampusKod {
	
	public static void main(String[] args) {
		String s1 = "KAMPUSKOD";
		String s2 = "KAMPUSKOD";
		String s3 = new String("KAMPUSKOD");
		String s4 = new String("KAMPUSKOD");
		
		System.out.println(s1 == s2);
		System.out.println(s1.equals(s2));
		System.out.println(s3 == s4);
		System.out.println(s3.equals(s4));
	}

}

Kod Çıktısı:

true
true
false
true

İlk olarak String s1 kullanımı açıklayalım. String s1 = “text”; kullanımı, eğer varsa, string sabit havuzunda (string constant pool) bir örneği yeniden kullanır. Yoksa havuz içerisinde yeniden alan oluşturur. Bu durum Java’ya özgü Java Sanal Makinesi (JVM) tarafından gerçekleştirilen bir durumdur.

Şimdi Kod çıktımızı inceleyebiliriz:

  • s1 ve s2 String constant pool içerisinde aynı referansa (reference) sahiptir. s3 ve s4 ise farklı nesneleri ifade eder.
  • s1 == s2 , s1 ve s2 ‘nin hafızadaki adres değerlerini karşılaştırır ve yukarıdaki açıklamamıza göre String constant pool üzerinde aynı adresi gösterirler. Böylece ekrana TRUE yazdırır.
  • s1.equals(s2) ifadesi ise, nesneler içerisindeki değerleri (KAMPUSKOD) karşılaştırdığı için ekrana TRUE yazdırır.
  • Bildiğimiz gibi == operatörü hafızadaki adresleri karşılaştırır, s3 ve s4 birbirinden farklı nesneler oldukları için farklı adreslerde tutulurlar. Bu yüzden s3 == s4 ifadesi ekrana FALSE yazdırır.
  • s3.equals(s4) ifadesi ise, nesneler içerisindeki değerleri (KAMPUSKOD) karşılaştırdığı için ekrana TRUE yazdırır.

Anlattıklarımın hepsini aşağıdaki şekil üzerinde kısaca özetledim.

Umarım yazım sizin için faydalı ve yeterince açıklayıcı olmuştur. Java mülakatlarınızda başarılar dilerim.

The post Java’da == ve equals() Farkı – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/javada-ve-equals-farki-java-dersleri/feed/ 1
Nesne Nedir? – Java Dersleri https://www.kampuskod.com/yazilim/java/nesne-nedir-java-dersleri/ https://www.kampuskod.com/yazilim/java/nesne-nedir-java-dersleri/#respond Sat, 25 Apr 2020 04:42:03 +0000 http://www.kampuskod.com/?p=6268 Nesneler, nesneye yönelimli teknolojiyi anlamak için anahtardır. Şimdi etrafınıza bakın ve köpeğiniz, televizyon konsolunuz ve bisikletiniz gibi pek çok gerçek dünya nesnelerinin örneklerini bulacaksınız. Gerçek dünya nesneleri iki özelliği paylaşır: Onların hepsi durum (state) ve davranışa (behavior) sahiptir. Köpekler, durum (isim, renk, cins, acıkmış) ve davranışa (havlama, gidip alma, kuyruk sallama) sahiptir. Ayrıca, bisikletlerde durum […]

The post Nesne Nedir? – Java Dersleri first appeared on Kampüs Kod.]]>
Nesneler, nesneye yönelimli teknolojiyi anlamak için anahtardır. Şimdi etrafınıza bakın ve köpeğiniz, televizyon konsolunuz ve bisikletiniz gibi pek çok gerçek dünya nesnelerinin örneklerini bulacaksınız.

Gerçek dünya nesneleri iki özelliği paylaşır: Onların hepsi durum (state) ve davranışa (behavior) sahiptir. Köpekler, durum (isim, renk, cins, acıkmış) ve davranışa (havlama, gidip alma, kuyruk sallama) sahiptir. Ayrıca, bisikletlerde durum (mevcut vites, mevcut pedal ritmi, mevcut huz) ve davranış (vites değiştirme, pedal ritmini değiştirme, fren uygulama) bulunur. Gerçek dünyadaki nesneler için durum (state) ve davranış (behavior) belirlemek, nesneye yönelik programlama açısından düşünmeye başlamak için harika bir yoldur.

Hemen yakın çevrenizdeki gerçek dünyadaki nesneleri gözlemlemek için bir dakikanınızı ayırın. Gördüğünüz her bir obje için, kendinize iki soru sorun: “Bu nesne hangi olası durumlar içinde olabilir?” ve “Bu nesne hangi olası davranışı yapabilir?”. Gözlemlerinizi yazdığınızdan emin olun. Yaptığınız gibi, gerçek dünyada nesnelerin karmaşıklık bakımından farklı olduğunu fark edeceksiniz; Masaüstü lambanız sadece iki muhtemel duruma (açık ve kapalı) ve iki muhtemel davranışa (açmak, kapatmak) olabilir, fakat masaüstü radyonuz ek olarak durumlara (açık, kapalı, mevcut ses, mevcut istasyon) ve davranışlara (açmak, kaaptmak, sesi yükseltmek, ses, düşürmek, aramak, taramak ve istasyonu ayarlamak) olabilir. Ayrıca bazı nesnelerin de başka nesneler içerdiğini de fark edebilirsiniz. Bu gerçek dünya gözlemlerinin hepsi nesne yönelimli programlama dünyasına dönüşmektedir.

Bir yazılım nesnesi

Yazılım nesneleri kavramsal olarak gerçek dünyadaki nesnelere benzerdir. Onlar da, durum ve ilgili davranışlardan oluşur. Bir nesne, alanlarında (fields)(bazı programlama dillerinde değişkenler(variables)) onun durumunu içerir/hafızaya alır ve metotları (bazı programlama dillerinde fonksiyonlar (functions)) sayesinde onun davranışını gösterir. Metotlar, bir nesnenin iç durumunu etkiler ve nesneden nesneye iletişim için birincil mekanizma gibi hizmet verir. İç durumu (hiding internal) gizleme ve tüm etkileşimin bir nesnenin metotları sayesinde gerçekleştirilmesini gerektiren, nesne yönelimli programlamanın temek prensibi, veri kapsülleme (data encapsulation) olarak bilir.

Bir bisiklet düşünün, örneğin:

Bir yazılım nesnesi gibi modellenmiş bir bisiklet

Durumu (mevcut hız, mevcut pedal ritmi ve mevcut vites) ilişkilendirerek ve durumu değiştirmek için metotlar sağlayarak, nesne, dış dünyanın bunu nasıl kullanmasına izin verildiğinin kontrolü altındadır. Örneğin, bisiklet sadece 6 vitese sahipse, vitesleri değiştirme metotu 1 den küçük veya 6 dan büyük herhangi bir değeri kabul etmeyebilir/reddedebilir.

Birbirinden ayrı yazılım nesneleri içerinde kodun paketlenmesi aşağıdaki birçok avantajı sağlar.

  1. Modülerlik (Modularity): Bir nesnenin kaynak kodu, başka nesnelerin kaynak kodundan bağımsız olarak yazılabilir ve korunabilir. Oluşturulur oluşturulmaz nesne, sistemin içinden kolayca geçebilir.
  2. Bilgi Gizleme (Information-hiding): Yalnızca bir nesnenin metotlarıyla etkileşimde bulunarak, onun iç uygulamasının ayrıntıları dış dünyadan gizli kalır.
  3. Yeniden Kullanılabilir Kod (Code re-use): Bir nesne zaten varsa ( belki başka yazılım geliştirici tarafından yazılmış ), programınızda nesneyi kullanabilirsiniz. Bu, uzmanların, kendi kodlarında çalıştırmak için güvenebileceği karmaşık, göreve özgü nesneleri uygulamalarına/test etmelerine/hata ayıklamalarına izin verir.
  4. Takılabilir (tak-çıkar) ve Hata Ayıklama Kolaylığı (Pluggability and debugging ease:): Belirli bir nesnenin sorunlu olduğu ortaya çıkarsa, nesneyi uygulamanızdan kaldırabilir ve onun yerine farklı bir nesne doldurabilirsiniz. Bu gerçek dünyadaki mekanik sorunların tamir edilmesine benzerdir. Bir cıvata kırılırsa, onu değiştirin, tüm makineyi değil.

Bu yazı Oracle Java Dökümanı kullanılarak İngilizceden Türkçeye çevrilmiştir. Sadece kaynak göstererek kullanabilirsiniz.

Çeviri Yapılan Bölüm Linki

The post Nesne Nedir? – Java Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/nesne-nedir-java-dersleri/feed/ 0
Java Programlama Dersleri https://www.kampuskod.com/yazilim/java/java-programlama-dersleri/ https://www.kampuskod.com/yazilim/java/java-programlama-dersleri/#respond Fri, 24 Apr 2020 02:48:00 +0000 http://www.kampuskod.com/?p=6214 Merhaba arkadaşlar, Kampüs Kod’da yer alan Java kategorisi altında Java Programlama dilini sizlere anlatmaya çalışacağım. Bu derslerde genel olarak teorik kısımlara değinip, Java yazılım dilinin teorik olarak temel mantığını kavramaya çalışacağız. Bir kodu yazarken neyi neden yaptığımızı, nerede hangi yapıyı kullanmalıyız bilmek vs. daha iyi kod yazmamızı sağlayacaktır. Umarım hepimiz için güzel bir eğitim serisi […]

The post Java Programlama Dersleri first appeared on Kampüs Kod.]]>
Merhaba arkadaşlar, Kampüs Kod’da yer alan Java kategorisi altında Java Programlama dilini sizlere anlatmaya çalışacağım. Bu derslerde genel olarak teorik kısımlara değinip, Java yazılım dilinin teorik olarak temel mantığını kavramaya çalışacağız. Bir kodu yazarken neyi neden yaptığımızı, nerede hangi yapıyı kullanmalıyız bilmek vs. daha iyi kod yazmamızı sağlayacaktır.

Umarım hepimiz için güzel bir eğitim serisi olur. Tamamıyla yabancı kaynaklar kullanacağım için, çeviri yaptıktan sonra önemli terimlerin İngilizce karşılığını parantez içerisinde belirteceğim. Karşılaştığınız yazım yanlışları olursa, bilginizi paylaşmak isterseniz, sadece merhaba demek istemiştim diyorsanız said.ozgat(at)hotmail.com adresine mail atabilir veya yorum yapabilirsiniz.


Java programlama ödevi veya projelerinizle ilgili yardıma mı ihtiyaç duyuyorsunuz? Ödev ve projelerinizi çok uygun fiyata yapan, bu konuda bilgi sahibi kullanıcıları bir araya getiren Sadeceon ile java programlama ödevinizi yaptırabileceğiniz kullanıcılara çok rahat ulaşabilirsiniz. Hemen iletişime geçerek talebinizi iletebilir, siparişinizi vererek en hızlı şekilde profesyonel ve kaliteli ödevinize ulaşabilirsiniz. Sitede tüm ödev kategorilerinde hizmetleri bulabileceğiniz gibi, java dilindeki sorularınız için de sitedeki kullanıcılarla iletişime geçebilirsiniz.


Temel olarak kullanılacağım kaynak: Oracle Java Dokümantasyonu

Java Programlama Ders İçeriği (Sırasıyla)

Java Programlama Dili Hakkında Diğer Yazılar


The post Java Programlama Dersleri first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/java-programlama-dersleri/feed/ 0
Nesneye Yönelimli Programlama Kavramları https://www.kampuskod.com/yazilim/java/nesneye-yonelimli-programlama-kavramlari/ https://www.kampuskod.com/yazilim/java/nesneye-yonelimli-programlama-kavramlari/#respond Thu, 23 Apr 2020 08:17:58 +0000 http://www.kampuskod.com/?p=6264 Daha önce bir nesneye yönelik programlama dili hiç kullanmadıysanız, herhangi bir kod yazmaya başlamadan önce, birkaç temel kavramı öğrenmeye ihtiyacınız olacak. Bu ders, nesneleri (objects), sınıfları (classes), kalıtım/miras (inheritance), arayüzleri (interfaces) ve paketleri (packages) size tanıtacak. Her mevzu/bahis, bu kavramların gerçek dünyayla ilişkisinin nasıl olduğu üzerine odaklanırken, aynı zamanda Java programlama dilinin sözdizimine bir giriş […]

The post Nesneye Yönelimli Programlama Kavramları first appeared on Kampüs Kod.]]>
Daha önce bir nesneye yönelik programlama dili hiç kullanmadıysanız, herhangi bir kod yazmaya başlamadan önce, birkaç temel kavramı öğrenmeye ihtiyacınız olacak. Bu ders, nesneleri (objects), sınıfları (classes), kalıtım/miras (inheritance), arayüzleri (interfaces) ve paketleri (packages) size tanıtacak. Her mevzu/bahis, bu kavramların gerçek dünyayla ilişkisinin nasıl olduğu üzerine odaklanırken, aynı zamanda Java programlama dilinin sözdizimine bir giriş sağlar.

Nesne Nedir? (Object)

Bir nesne (object),ilgili durum (state) ve davranışın (behavior) bir yazılım paketidir. Yazılım nesneleri genellikle gündelik hayatta bulduğunuz gerçek dünyadaki nesneleri modellemek için kullanılır. Bu ders bir nesne içinde durum ve davranışın nasıl temsil edildiğini açıklar, veri kapsülleme karamını tanıtır ve bu şekilde yazılımınızı tasarlamanın faydalarını açıklar.

Java’da nesne kavramını daha detaylı açıkladığım sayfaya buraya tıklayarak ulaşabilirsiniz.

Sınıf Nedir? (Class)

Bir sınıf (class), nesnelerin oluşturulduğu bir  taslaktır veya prototiptir. Bu bölüm, gerçek dünyadaki bir nesnenin durumunu ve davranışını modelleyen bir sınıfı tanımlar. Basit bir sınıfın bile durum ve davranışı açık bir şekilde nasıl modelleyebiliceğini gösteren kasıtlı temeller üzerine odaklanır.

Kalıtım Nedir? (Inheritance)

Kalıtım (inheritance), yazılımınız düzenleme ve planlama için güçlü ve doğal bir teknik sağlar. Bu bölüm, sınıfların, onların üst sınıflarından durum ve davranışı nasıl miras aldığını açıklar ve Java programlama dili tarafından sağlanan basit sözdizimini kullanarak bir sınıfın diğerinden nasıl türetileceğini açıklar.

Arayüz Nedir? (Interface)

Arayüz (interface), sınıf ve dış dünya arasındaki bir anlaşmadır. Bir sınıf bir arayüz uygulandığında,o arabirim tarafından yayınlanan davranışı sağlamayı vaat eder. Bu bölüm basit bir arayüz tanımlar ve onu uygulayan herhangi bir sınıf için gerekli değişiklikleri açıklar.

Paket Nedir? (Package)

Paket (package), mantıklı bir tarzda sınıfları ve arayüzleri düzenleme için bir ad alanıdır. Paketler içerisine kodunuzu yerleştirmek, büyük yazılım projelerinin kolayca yönetilmesini sağlar. Bu bölüm, bunun neden yararlı olduğunu açıklar ve Java Platformu tarafından sağlanan Uygulama Programlama Arayüzünü (API) tanıtır.

Bu yazı Oracle Java Dökümanı kullanılarak İngilizceden Türkçeye çevrilmiştir. Sadece kaynak göstererek kullanabilirsiniz.

Çeviri Yapılan Bölüm Linki

The post Nesneye Yönelimli Programlama Kavramları first appeared on Kampüs Kod.]]>
https://www.kampuskod.com/yazilim/java/nesneye-yonelimli-programlama-kavramlari/feed/ 0