Java notları
Java notları
------------
Java Mustang (j2se 6.0) çıktı ama Tiger(j2se 5.0) ile gelen yenilikler kadar kullanışlı özellikler getiremedi. Java 5.0 ile gelen yeniliklere göz atarken daha önce dikkat etmediğim birkaç eski bilgiyi de not ettim. Şöyleki:
--------------
float değişkeni: "float" veri tipi, tek-duyarlı, 32 bit, IEEE 754 kayan noktalıdır. "Byte" ve "short" veri tiplerinde önerildiği gibi "float" veri tipini("double yerine"), geniş veri dizilerine ihtiyaç duyulan yerlerde, bellekten kazanmak için kullanın.
Float veri tipi, para kuru gibi duyarlılık gerektiren değerler için kesinlikle kullanılmamalıdır. Bu değerlerde, java platformunun sağladığı java.math.BigDecimal sınıfını kullanmak daha uygundur.
--------------
double değişken: "double" veri tipi, çift-duyarlı, 64 bit, IEEE 754 kayan noktalıdır. Bu veri tipi de para kuru gibi duyarlılık gerektiren değerler için kesinlikle kullanılmamalıdır.
--------------
özel karakterler: \b (backspace), \t (tab), \n (line feed), \f (form feed), \r (carriage return), " (double quote), ' (single quote), and \\ (backslash).
--------------
mantıksal ve bit tabanlı karşılaştırmalar:
Operators Precedence
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
--------------
Parametreler, bir metodun tanımındaki değişkenler listesidir. Argumanlar ise, metod çağrıldığında geçişi yapılan değerlerdir.
--------------
İçiçe sınıfların kullanım amacı:
-Tek bir yerde kullanılan sınıfları mantıksal olarak gruplama yöntemidir.
-Kapsülleme/sarma (encapsulation) nın artmasını sağlar.
-Okunabilirlik ve bakımı kolaylaştırır.
--------------
Açıklayıcı not(Annotation): Aslında programın bir parçası olmayan, program hakkında veri sağlarlar. Açıkladıkları kodun işleyişi üzerinde doğrudan etkileri yoktur.
Birkaç farklı kullanım alanları vardır:
* Derleyici için bilgi - Açıklayıcı notlar, derleyici tarafından hataları bulmak ve uyarıları önlemek için kullanılabilir.
* Derleme ve kurulum zamanı işlemi - Yazılım araçları, kod, XML dosyası v.b. oluşturmak için açıklayıcı notları işleyebilirler.
* Çalışma zamanı işlemi - Bazı açıklamalar çalışma zamanında sınanabilirler.
Açıklama notları program içerisinde; sınıf, değişken, metod ve diğer programlama elemanlarına uygulanabilirler.
Açıklama notları önce yazılır; adlandırılmış veya adlandırılmamış değerler içerebilir:
@Author(
name = "Benjamin Franklin",
date = "3/27/2003"
)
class MyClass() { }
veya
@SuppressWarnings(value = "unchecked")
void myMethod() { }
Dökümantasyon
Bir yazılım takımının geliştirdiği her sınıfın başına, yorum satırları şeklinde önemli bilgileri eklediğini düşünün:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
Aynı üstbilgiyi açıklayıcı not olarak ekleyebilmek için öncelikle açıklamanın türünün belirtilmesi gerekir:
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
String[] reviewers(); // Note use of array
}
@ = "AT" Açıklama türüne işaret eder.
Açıklama türü tanımlandıktan sonra, değerleri de dolu olarak, o türün açıklamalarını şu şekilde kullanabilirsiniz:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe"
reviewers = {"Alice", "Bob", "Cindy"} // Note array notation
)
public class Generation3List extends Generation2List {
// class code goes here
}
Not: @ClassPreamble içindeki bilginin Javadoc ile oluşturulan dökümantasyon içerinde de olması için, @ClassPreamble tanımının @Documented açıklama notu ile belirtilmesi gerekir:
import java.lang.annotation.*; // import this to use @Documented
@Documented
@interface ClassPreamble {
// Annotation element definitions
}