22 Literals

Merhaba Arkadaslar,
Bu yazimda Java da Literal konusuna deginecegiz. Java da literaller ;

  • Integer Literals
  • Floating-Point Literals
  • Boolean Literals
  • Character Literals
  • Literal Values For Strings

Integer Literals
Java da integer/tamsayi degerlerinin 3 farkli gosterimi vardir. decimal, octal ve hexadecimal literaller.Sirasiyla inceleyelim.

Decimal Literal
Decimal Literal her zaman kullandigimiz varsayilan gosterimdir,

int size=100;
int length=50;

Octal Literal
Octal (Sekizli) Literallerde 0 ve 7ye kadar olan rakamlar kullanilabilir.Octal literalleri gosterirken basina 0 eklemeyi unutmayalim. Ornegimizi inceleyelim

OctalTest.java

public class OctalTest {
	public static void main(String[] args) {

		int zero = 0;
		int one = 01;
		int six = 06;
		int seven = 07;
		int eight = 010;
		int nine = 011;
		//int compileError = 08;

		System.out.println(zero + "  " + one + "  " + six + " " + seven + " " + eight + " " + nine);
	}
}

Continue reading 22 Literals

AWS Sertifikaları

AWSCertified

AWS sertifikalarını incelediğimizde 3 tip rol için sertifikaların olduğunu görürüz.

Solution Architect : Mevcut işi AWS Teknolojileri ve Mimarileri kullanılarak nasıl geliştirilebileceğini tasarlar.

Developer: AWS SDK’ları kullanarak AWS üzerinde uygulama geliştiren yazılımcılardır.

SysOps Administrator: AWS üzerine kurulan bir uygulamanın veya çalışan bir sistemin ayakta kalması, yönetilmesi ve yeni sürümlerin deploy’unun yönetiminden sorumludur.

aws Continue reading AWS Sertifikaları

21 Coupling & Cohesion

Merhaba Arkadaslar,
Bu yazimda Java’ da Coupling / baglasim/baglanti yani “nesnelerin birbirine baglanmasi” ve Cohesion/baglilik/yapisiklik kavramlarindan bahsedecegim. Ilk bakista Turkce kelime karsiliklari benzer gozukebilir fakat yazi sonunda kavramlari anlamis olacagimizi umuyorum

Oncelikle sunu belirtmem gerekir ki Coupling ve Cohesion kavramlari Object Oriented yaklasiminda olmazsa olmazlardandir , Object Oriented yaklasiminin kalitesiyle dogrudan ilgilidir.

Iyi bir Object Oriented dizayninda loose coupling / gevsek baglanti ve high cohesion istenen bir durumdur.

Bir programda cesitli gorevleri yerine getirecek bir cok sinif bulunur. Bu siniflar birbirleriyle etkilesim haline girerek ortak bir sekilde calisirlar. Bu durumda nesneler arasinda bagimliliklar olusur. Bir sinif diger bir sinif hakkinda ne kadar fazla bilgiye sahipse o sinifa olan bagimliligi o derece artar Dusunuldugunde bu bagimliliklari ortadan kaldirmak mumkun degildir cunku mutlaka siniflar birbirleriyle ortak calismak zorundadir. Bu durumda yapacagimiz sey esnek bagimliliklar olusturmaktir yani loose coupling.

Coupling
Bir sinifin diger siniflari ne kadar bildigi ve sinif uyelerine nasil eristigi ile ilgilidir.
A sinifi B sinifinin degiskenlerine direkt olarak ulasmamalidir, getter/setter metotlari uzerinden ulasmalidir. B sinifina ait instance degiskenler public tanimlanmamalidir.
Louse Coupling , A ve B sinifi orneginde oldugu gibi siniflarin iyi bir encapsulation kuralina uygun olarak tanimlanmasi , siniflarin birbirlerine olan referans degiskenlerini minimize etme yaklasimidir. Tight Coupling bu kurallara uymamak , Object Oriented in dibine dinamit koymaktir Continue reading 21 Coupling & Cohesion

AWS Nedir ?

amazon-web-services

Amazon Web Services yani Amazon’un verdiği Bulut Hizmetlerinin genel adıdır.

Neden AWS Öğrenelim ?

  • Dünyada en hızlı büyüyen bulut bilişim platformudur.
  • Dünyada en geniş alana yayılmış bulut bilişim platformudur.

aws

  • Giderek artan sayıda firma ve organizasyon IT işlerini AWS ortamına taşımaktadır. (2006 ‘da başlayan AWS hizmetleri ilk başlarda küçük bütçeli firmalar veya startup lar tarafından kullanılırken günümüzde binlerce firma Kurumsal uygulamalarında AWS hizmetlerini tercih etmektedir. Örneğin Netflix, Adobe, Nokia, Yelp, Nasa, Samsung, Prifizer, Dow Jones, Nasa vb..)
  • AWS Sertifikasyonu IT alanında çok popüler bir sertifikasyon haline gelmiştir. (Eskiden Microsoft, Cisco veya Redhat certifikasyonları daha popülerdi. Bunlarda uzmanlık gerekirken gelecek 10 yılda bunlardan daha uzakta bulut teknolojileri üzerinde sağlanan soyutlamalar üzerinde geliştirmelerimi yapacağız. PaaS ve Sunucusuz Lambda gibi servisler üzerinde geliştirmeler yapacağız.)
  • IT alanındaki bir çok uzmanın aynı noktada buluşması hem işlerin doğru şekilde yapılmasını hemde güvenli şekilde yapılmasını sağlıyor.

20 Static Variables and Methods

Merhaba Arkadaslar,
Bu yazimda Javada static anahtar kelimesinden bahsedecegim ve metotlar ve degisken icin kullanimi inceleyecegiz.

Oncelikle belirtmem gerekir ki static metot degiskeni bol miktarda tanimlamak object oriented yapisinin temeline dinamit koymaktir

Gerektigi ozel zamanlarda kullanmak gerekir. Dusunelim bize tum objelerden bagimsiz olarak gerekli bir sayac gerekmektedir bu sayaci nasil tutabiliriz. Boyle durumlarda static bir degisken cozum saglayabilir.

static degiskenler ve metotlar sinifa aittirler. Ayri bir instance/ornek/nesne yaratmadan kullanabiliriz. static bir degiskenin tek bir kopyasi bulunur ve tum instance/ornek/nesneler icin bu tek deger paylasilir.

Su basit ornegimizi inceleyelim , static bir int degisken tanimladik ve 0 a atadik , yapilandirici icerisinde degerini 1 arttirdik.

public class CounterEx {

	static int count =0;

	CounterEx() {
		count++;
	}

	public static void main(String[] args) {
		new CounterEx();
		new CounterEx();
		new CounterEx();
		System.out.println("counter value:"+count); //3
	}
}

Continue reading 20 Static Variables and Methods

19 Constructor – 02

Merhaba Arkadaslar,
Bu yazimda Java’ da Constructor/yapilandirici konusuna devam edecegim. ilk yazida temel yapidan bahsetmistim burada biraz daha detaya inecegiz.

Yapilandirici/ Constructor icin kurallar

  • Yapilandiricilar private dahil tum access modifier /erisim belirteclerini kullanabilirler.
class B {
    private B() {}  //private yapilandirici
}
  • Yapilandiricilarin ismiyle sinifin ismi anyi olmak zorundadir.
  • Yapilandiricilarin donus tipi olamaz , void de olamaz.
  • Bir sinifta sinif ismiyle ayni olacak sekilde metot tanimlanabilir. Bu durumda yapilandirici tanimlanmis olmaz.
public class A {
	void A() {
		// metot
	}

	A() {
		//yapilandirici
	}
}

Continue reading 19 Constructor – 02

18 Constructor – 01

Merhaba Arkadaslar,
Bu yazimda Java’da constructor/ yapilandirici kavramindan bahsedecegim.
Javada , yeni bir obje olusturuldugunda constructor/yapilandirici calistirilir/invoke , sinifin kendi yapilandiricisinin yaninda superclass’in yapilandiricisi da calisir detaylar biraz asagida olacak.

Peki yapilandirici ne zaman calisacaktir ? new anahtar kelimesini  kullandigimizda yapilandirici calisacaktir. Bir de serilestirme yapisinda calismaktadir fakat bu konuya bir hayli ilerde gelecegiz. Biz basit temeller ile baslayalim ;

Basit Temeller

  • Abstract/soyut siniflar dahil tum siniflarin yapilandiricisi/constructor olmak zorundadir.
  • Yapilandiri/constructor olmasi zorunlulugu tanimlanmak zorunda oldugu anlamina gemez.
  • Eger bir sinif icin yapilandirici/constructor tanimlamazsak otomatik olarak varsayilan yapilandirici gizli olarak tanimlanir.
  • Varsayilan yapilandirici herhangi bir parametre almaz. Varsayilan yapilandiriciyi biz kendimiz de tanimlayabiliriz.
class A {
   // A(){} A sinifina ait varsayilan yapilandirici

}
  • Eger kendimiz bir yapilandirici tanimlarsak , varsayilan yapilandirici otomatik olarak tanimlanmaz.
public class A {

	int x;
	int y;

	public A(int x, int y) {
		this.x = x;
		this.y = y;
	}

	public static void main(String[] args) {
		A a = new A(10,20);
		//A a2 = new A(); derleme hatasi
	}

}

Continue reading 18 Constructor – 01

17 Return Type

Merhaba Arkadaslar,
Bu Java yazimda metotlarin donus tipi ile ilgili durumlari inceleyecegiz. Daha once bahsi gecen covariant return type ile baslayalim.

Overrided metotlarda donus tipi degismeyecegegini, fakat covariant /esdeger donus tipi olursa degisebilecegini belirtmistik. Ornek uzerinde inceleyelim ;

public class Car {
	Car speedUp() {
		return new Car();
	}
}

class Ford extends Car {

	@Override
	Ford speedUp() {
		return new Ford();
	}
}

Continue reading 17 Return Type

JSF (Java Server Faces) Nedir?

jsf

Java Server Faces bir çatıdır. JSP’den farklı olarak kullanıcı arayüzü sağlanmaktadır. Hazır bileşenler/etiketler ile (tag) yapmak istediğimiz işlemleri basitçe yapabilmekteyiz. Üst seviyede programlar yapmayı kolay hale getirmektedir. İleriki derslerde göreceğimiz JAVA EE teknolojilerine kolayca entegre etmemizde mümkündür. JSF’de farklı kütüphanler ile farklı arayüzler bulabilmekteyiz. Bu kütüphaneleri ekledikçe kodlama tekniğide geliştirene göre değişebilmektedir.

Java Server Facesin geneli olaylara dayanmaktadır. Tıklandığında/yapıldığında gibi eylemlere tepki verebilmektedir. Java Server Pages’e göre en büyük artısı ajax’a kolayca hükmedebilmemiz.  Java Server Faces öğrenmek ileriye dönük bir yatırımdır. Çok katmanlı mimariler için JSF bizim avantajımıza olduğunu düşünmekteyim. Continue reading JSF (Java Server Faces) Nedir?

16 Implementing an Interface

Daha once degindigim gibi Java ‘da interface/arabirim bir kontrattir ve uygulayan siniflar (abstract olmadigi surece) bu kontrata uymak zorundadir yani metotlari uygulamak zorundadir.

interface ile abstract siniflarin en onemli farki sudur ; bir arabirim kalitim hiyerarsi onemli olmaksizin herhangi bir sinifta  uygulanabilir . Ornegin Runnable arabirimini birbiriyle hic alakasi olmayan siniflar ihtiyaci dogrultusunda uygulayip kullanabilir.
Bu arabirimin en onemli ve en guclu noktasidir.

Simdi bir arabirim/interface tanimlayalim ve incelemeye devam edelim ;

Speed.java

interface Speedy {
 void speedUp();
 void beCool();
}

Yukarida linkini verdigim yazida belirtigim gibi , interface/arabirimlerde sadece govdesiz metot yani abstract metot tanimlanabilir ve bu metotlar mutlaka publictir. Ee hani nerede abstract anahtar kelimesi Java bizim icin bunu halleder. Continue reading 16 Implementing an Interface