Dil ve Nesneye Yönelik Programlama - Alt Kategoriler :

Tip - Type Akış Kontroller String Exception - Hata Yönetimi Object Application-Uygulama Bitwise Operatörleri Annotation Generics Optional Lambda Method Reference Functional Interface Stream Nesneye Yönelik ProgramlamaBu Kategoriye İçerik Girin. Soru Sorun

İçerikler :

@SuppressWarnings assert Bir Sayının Başına Belirli Sayıda Sıfır Eklem.. Final Godoro Tanıtım - Görüntülü Eğitim - Java ile .. Import İki Sayı Aralığının Kesişip Kesişmediği İki Tarih Aralığının Kesişip Kesişmediği Java'da Sabit (Constant) Yapılması Java'da static Kullanımını Anlamak İçin Bir Ö.. Java'da Yorum Çeşitleri Java 11 Testi İçin Hello Uygulaması Java Dili Spesifikasyonu - The Java® Language.. Javax Native Non-Static Örnek Proje - Dosya Tabanlı Konsol Package Static Uçuş Numarası Doğrulama Var Örneği volatile

Bu Sayfayı Paylaş:

Kavram

Final

Tanım: Bir değişken, property(özellik) , method veya class'ın değişmez, değiştirilemez ve geliştirilemez olduğunu göstermek için kullanılan ifade.

Kavram

Import

Tanım: Bir class'tan başka bir package'deki class'ların kullanılbilmesini sağlayan ifade.

Kavram

Package

Tanım: Birden fazla class'ın belli bir isim altında gruplandıran yapı

Kavram

Static

Tanım: Class'a ait, her class için sadece bir tane yaratılıp, her nesne için çoğaltılmayan, instance yaratmadan kullanılabilen değişken veya method

Kavram

Non-Static

Tanım: static olmayan, class'a değil instance ait, bir nesne yaratmadan kullanılamayan.

Kavram

volatile

Tanım: Birden fazla işlemciyle çalıştıran makinelerde, bir değerin diğer işlemcilere de kopyasının gerekmediğini belirten ifade

Veri

Java'da Yorum Çeşitleri

Java'da kaynak koda eklenebilen yorum çeşitleri aşağıdaki gibidir : 

  • Tek Satır Yorumu : Bir satırın başına // işaret iie yapılan yorum. // ile başlayan bir ifade yeni bir satıra kadar yorum olarak işlenir
  • Blok Yorumu : Birden fazla satıra yapılan yorum. /* ile başlar ve */ ile biter
  • JavaDoc Yorumu : Java kodlarına koyulan yorumlardan HTML belgeleri üretmeye yarayan javadoc aracı için koyulan yorumlar. /** ile başlar ve */ ile biter. 


Örnek

Java'da static Kullanımını Anlamak İçin Bir Örnek

Java'da static class'a ait olan ve değişmeyen değişken veya method'lar için kullanılmaktadır
Java'da static sınıfa ait olan ve değişmeyen değişken veya method'lar (yöntemler) için kullanılmaktadır. Aşağıdaki örnekte interestRate değişkeni statik olarak tanımlanmıştır.
public class BankAccount{
	private float money=0.0;
	public static float interestRate=10.3f;
	public BankAccount(float mon){
		money=mon;
	}
	public float getInterest(){
		return money*(1+interestRate);
	}
	public static float getInterestRate(){
		return money*(1+interestRate);
	}
}
Yukarıdaki sınıf bir banka hesabını göstermektedir ve her banka hesabında faiz oranı aynı olacağı için interestRate değeri static tanımlanmıştır. Eğer interestRate'de değişiklik yapılır ise tüm banka hesablarında bu oran değişecektir. Halbuki money değişkeni statik değildir ve her hesap için ayrı bir değeri olabilir. Aşağıdaki gibi static değer değiştirilebilir :
 
BankAccount.interestRate=20.0f;

Artık tüm banka hesapları için faiz oranı 20.0f olacaktır.

Kavram

assert

Tanım: Java'da 1.4 versiyonundan itibaren desteklen, geliştiricilere debug sırasında belirli koşulların sağlanmadığı durumda hata verilmesini sağlayan keyword. Assert ifadeleri , uygulama normal çalışması sırasında dikkate alınmaz. Eğer assert ifadelerin geçerli olması isteniyorsa, uygulama çalıştırılırken -ea (veya -enableassertions) seçeneği verilmelidir

Kavram

Native

Tanım: Sadece belli bir işletim sisteminde çalışan, daha hızı çalışması için C ile yazılmış method

İpucu

Java'da Sabit (Constant) Yapılması

Java'da sabit,değişmeyen (constant) aşağıdaki gibi yapılabilir : 

final static int TEST_DEGISKENI=1;

final static ifadesi sabit , değişmeyen hale getirmek için yeterlidir. 


Kavram

@SuppressWarnings

Tanım: Derleyicinin normal durumlarda vereceği uyarıyı vermemesini sağlayan annotation.

Materyal

Örnek Proje - Dosya Tabanlı Konsol

Bu vidyoda nesneleri dosyalara saklayıp okuma örneği yapılmaktadır. Ama temel I/O, nesneye yönelik programlama gibi kavramların anlaşılmasını sağlamaktır
Bu video 4 DVD'lik Java Göstermeli Öğretim Kümesi görüntülü eğitim setindeki videoların demosu olarak eklenmiştir.

İpucu

Bir Sayının Başına Belirli Sayıda Sıfır Eklemek

Bazen sayıları String biçiminde başlarına 0 koyarak elde etmeniz gerekir. Örneğin 19, 123, 1945 sayılarının hepsini 5 rakamlı olacak şekilde 00019, 00123 ve 01945 olarak elde etmeniz gerekebilir. Bu işleme programlama dünyasında padding (yastıklama) adı verilir.
Bunun için en basitinden aşağıdaki gibi bir yöntem yapabilirsiniz:
private String leftPad(String number, int size) {
	StringBuilder sb = new StringBuilder();
	for (int i = 0; i < size - number.length(); i++) {
		sb.append("0");
	}
	sb.append(flightNumber);
	return sb.toString();
}
Eğer Apache Common Lang kütüphanesini kullanıyorsanız StringUtils.leftPad yönetimi kullanabilirsiniz:
StringUtils.leftPad("19", 5, "0");
Yukarıdaki yöntemden 00019 değeri dönecektir.
Eğer elinizde sayı varsa aşağıdaki gibi de formatlanarak sonuç alınabilir:
String.format("%05d", 19);

"%05d" ile 5 rakamı dolduracak şekilde 0 ekleneceği anlamına gelir.

İpucu

Uçuş Numarası Doğrulama

TK1234, US12, CA1234 gibi uçuş numaralarını doğrulamak isteyelim. Aşağıdaki gibi bir yöntem yazabiliriz:
public static boolean isValidFlightNumber(String flightNumber) {
	flightNumber = flightNumber.trim();
	String text = "([A-Z]{2}[0-9]{1,4})+?";
	Pattern pattern = Pattern.compile(text);
	Matcher m = pattern.matcher(flightNumber);
	return m.matches();
}
Bu şekilde ilk iki harfi alfabetik, diğerleri numeric olacak şekilde kontrol edilebilir.
Aşağıdaki gibi test kodu ile test edilebilir:
private String flightNumberOne="TK9";
private String flightNumberTwo="TK19";
private String flightNumberThree="TK191";
private String flightNumberFor="TK1234";
private String flightNumberZeroPadFormar="TK0034";
private String flightNumberInvalidOnlyNumber="1234";
private String flightNumberInvalidOnlyCarrierCodes="TK";
@Test
public void validTest() {
	assertTrue(FlightNumber.isValidFlightNumber(flightNumberOne));
	assertTrue(FlightNumber.isValidFlightNumber(flightNumberTwo));
	assertTrue(FlightNumber.isValidFlightNumber(flightNumberThree));
	assertTrue(FlightNumber.isValidFlightNumber(flightNumberFor));
	
	assertTrue(FlightNumber.isValidFlightNumber(flightNumberZeroPadFormar));
	
	assertFalse(FlightNumber.isValidFlightNumber(flightNumberInvalidOnlyNumber));
	assertFalse(FlightNumber.isValidFlightNumber(flightNumberInvalidOnlyCarrierCodes));
}

İpucu

İki Sayı Aralığının Kesişip Kesişmediği

Elinizde iki sayı aralığı olsun. Örneğin 9-17 ve 21-38. Bu iki sayı aralığı kesişmiyordur. Ancak 9-17 sayı aralığıyla 15-25 sayı aralığı kesişmektedir. Çünkü 15,16,17 sayıları ortaktır.
İki sayı aralığını kesişip kesişmediğini anlamak için aşağıdaki gibi basit bir yöntem yazılabilir:
public boolean conflict(int start1, int end1, int start2, int end2) {
	int max= Math.max(start1, start2);
	int min= Math.min(end1, end2);
	return max<=min;
}

İlk olarak aralıkların başlangıçlarının en büyüğü alınır. Sonra bitişlerin en küçüğü alınır. Eğer büyüklerin en küçüğü, hala küçüklerin en büyüğünden büyükse demek ki keşişme yoktur. Örneğin 9-17 ve 21-38 ikilisini düşünürsek. 9, 21 için en büyüğü 21, 17, 38 için ise en küçüğü 17'dir. Görüldüğü gibi 21, 17'den küçük değildir ve kesişmezler. 9-17 ile 15-25 sayısını düşünürsek. 9 ile 15 sayılarından 15 büyüktür, 17 ve 25 sayılarından ise 17 küçüktür. 15<=17 olmasından dolayı kesişme vardır diyebiliyoruz.

İpucu

İki Tarih Aralığının Kesişip Kesişmediği

Elimizde iki tarih aralığı olsun. Bu tarih aralıklarının kesişip kesişmediğini veren yöntem aşağıdaki gibi yapılabilir:
public static boolean overlap(Date start1, Date end1,
		Date start2, Date end2) {
	
	return (end2 == null || start1 == null || !start1.after(end2))
			&& (end1 == null || start2 == null || !end1.before(start2));
	
}
Herhangi bir alan null verilirse de kod çalışır. Eğer tüm alanlar null verilirse yöntem true döndürür.
Yöntemi DateUtil sınıfına statik bir yöntem olarak ekleyip aşağıdaki gibi test kodu yazıp test edebilirsiniz:
@Test
public void testOverlap() {
	
	Date date1=new Date(2018, 1, 1);
	Date date2=new Date(2018, 1, 10);
	
	Date date3=new Date(2018, 2, 1);
	Date date4=new Date(2018, 2, 10);
	
	assertFalse(DateUtil.overlap(date1, date2, date3, date4));
	
	Date date5=new Date(2017, 1, 1);
	Date date6=new Date(2017, 1, 10);
	
	assertFalse(DateUtil.overlap(date1, date2, date5, date6));
	
	Date date7=new Date(2017, 1, 1);
	Date date8=new Date(2018, 1, 1);
	
	assertTrue(DateUtil.overlap(date1, date2, date7, date8));
	
	Date date9=new Date(2017, 1, 1);
	Date date10=new Date(2018, 1, 5);
	assertTrue(DateUtil.overlap(date1, date2, date9, date10));
	Date date11=new Date(2017, 1, 10);
	Date date12=new Date(2018, 1, 12);
	
	assertTrue(DateUtil.overlap(date1, date2, date11, date12));
	
	// no end
	Date date13=new Date(2018, 1, 10);
	assertTrue(DateUtil.overlap(date1, date2, date13, null));
	
	// no start
	Date date14=new Date(2018, 1, 1);
	assertTrue(DateUtil.overlap(date1, date2, null, date14));
	
	// no end no overlap
	Date date15=new Date(2018, 1, 11);
	assertFalse(DateUtil.overlap(date1, date2, date15, null));
	
	// no start no overlap
	Date date16=new Date(2017, 12, 31);
	assertFalse(DateUtil.overlap(date1, date2, null, date16));
	
	// all null
	assertTrue(DateUtil.overlap(null, null, null, null));
}

Örnek

Java 11 Testi İçin Hello Uygulaması

Java 11 ile artık Java 10 ile gelen var değişkenleri Lambda içinde kullanılabilmektedir. Bir sistemde Java 11'in doğru çalıştığını anlamak için bu özellik aşağıdaki gibi bir örnekle kullanılabilir:
import java.util.Arrays;
public class HelloWorld {	
	public static void main(String[] args) {		
	    var array = new int[]{1,2,3,4,5,6,7,8,9,10};
	    int result = Arrays.stream(array).filter((var a) -> a < 5).sum();
	    System.out.println(result);
	}
}
Eğer bu örnek derlenebiliyorsa Java 11 kullanılıyor demektir. Sonuç 10 çıkacaktır.

Örnek

Var Örneği

Java 10 ile gelen var değişken tanımlama özelliği aşağıdaki gibi kullanılabilir:
public class HelloVar {
	public static void main(String[] args) {
		var message="Hello Var";
		System.out.println(message);
	}
}
Görüldüğü gibi bir String değişkeni var olarak tanımlandı ve kullanıldı. Uygulama çalıştırıldığında Hello Var yazısı ekranda görünecektir.

Kavram

Javax

Tanım: Java extention ifadesinin kısaltmasından oluşan (x harfi extention kelimesi içindeki x harfidir), genellikle Java'nın temel sınıflarından olmayıp sonradan veya fazladan eklenen sınıfları içeren ana paketler

Kavram

Java Dili Spesifikasyonu - The Java® Language Specification

Tanım: Java dilinin özelliklerinin belirtildiği spesifikasyon

Materyal

Godoro Tanıtım - Görüntülü Eğitim - Java ile Nesne Yönelimli Programlama

Godoro'nun Java Object-Oriented Programming görüntülü eğitiminin tanıtımı.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir