S.a. Arkadaşlar,
Bugünkü yazımız ise literaller olacak. Burada primitave (ilkel değişkenler) nasıl tanımlanır , onu öğreneceğiz. Bilmediğimiz ya da gözden kaçırdığımız bir yer var mı onu bakacağız. Burada kodu verip onun üzerinden anlatmaya çalışacağım. Siz de kodu derleyip kafanıza takılan kısımları kod üzerinden derleyip neyin ne olduğunu daha iyi analrsınız diye düşünüyorum
public static void main(String[] args) {
//a,b,c değişkenleri hepsi 15 tanımladık gibi ama çıktısına dikkat ediniz
int a = 15; // 10luk tabanda
int b = 015; // 8lik tabanda , değerden önce 0 yazılmalı
int c = 0x15;//16lık tabanda , değerden önce 0x|X yazılmalı
double d=100.343d; // d|D olsa da olur olmasa da
float f = 100.343f; // f|F koymak zorunlu yoksa hata alırız
boolean dogru=true; // sadece true|false alır
byte k =(byte) 10; // varsayılan int olduğu için cast yapmakta fayda var
//byte hata= 128; //[-128,127] aralığında olduğundan hata verir
char m = 'm'; //charlar tek karekter alır 'xy' hata verir
char n = 100; // 100 hangi karektere karşılık geliyorsa o yazılır
char h = (char) 90000; // char [0-65535] aralığındadır.Unutmayalım
char g = (char) -20; // o nedenle cast yapmamız gerekti
char x = '\''; // bir karekteri yazmak isterken önüne \ koymalıyız
System.out.println("int değerler: "+a + " " + b + " " + c );
System.out.println("float değerler:"+ d + " " + f);
System.out.println("boolean değer:"+dogru+"byte değer:"+k);
System.out.println("char derğerler:"+m +" "+ n+ " "+h+ " " +g+ " "+ x);
}
ÇIKTI
int değerler: 15 13 21
float değerler:100.343 100.343
boolean değer:true byte değer:10
char derğerler:m d 徐 ↓ '
Kaynak
http://www.injavawetrust.com/pure-java-22-literals/
değişken etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
değişken etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
21 Aralık 2014 Pazar
Literal-Assignment
16 Aralık 2014 Salı
Static Değişken ve Metodlar
S.a. Arkadaşlar,
Bugünkü yazımızda static değişken ve metorları incelemeye çalışacağız. Nedir peki bu static olma konusu, bir sınıfta çağırılıp her yerde erişilebilen değişkenlerdir. Tek bir kopyası vardır ve her yerde o kopya üzerinde işlem yapılır. Örneğin elimizde farklı sınıflardan erişmek istediğimiz bir değişkenimiz olsun. Bunu nasıl kullanabiliriz. İşte tam da bu sorunun cevabıdır aslında static kavramı. Şimdi yazdığımız bir kod üzerinde bunu incelersek umuyorum ki taşlar yerine daha iyi oturacaktır.
Bugünkü yazımızda static değişken ve metorları incelemeye çalışacağız. Nedir peki bu static olma konusu, bir sınıfta çağırılıp her yerde erişilebilen değişkenlerdir. Tek bir kopyası vardır ve her yerde o kopya üzerinde işlem yapılır. Örneğin elimizde farklı sınıflardan erişmek istediğimiz bir değişkenimiz olsun. Bunu nasıl kullanabiliriz. İşte tam da bu sorunun cevabıdır aslında static kavramı. Şimdi yazdığımız bir kod üzerinde bunu incelersek umuyorum ki taşlar yerine daha iyi oturacaktır.
public class SayacArtir {
static int count = 0;
int sayac=0;
SayacArtir() {
count++;
sayac++;
}
void method1() {
System.out.println("metod1 içinde count Değeri:"+count);
System.out.println("metod1 içinde sayac Değeri:"+sayac);
}
static void method2(){
System.out.println("Metod2 içinde count Değeri:"+count); // OK
//System.out.println(sayac); // ERROR
//static olan metoddan static olmayan değer çağrılmaz
}
public static void main(String[] args) {
new SayacArtir();
new SayacArtir();
new SayacArtir();
//method1(); //static olan metod içinden static olmayan metod çağrılmaz
SayacArtir sayacArtir= new SayacArtir();
sayacArtir.method1();//ancak böyle tanımlayıp çağırırız
method2(); //fakat static metodu nesne oluşturmadan direkt çağırabiliriz
System.out.println("Main içinde Count Değeri:" + count);
//System.err.println(""+sayac); static olmadığından error verir
System.out.println("Main içinde Sayac Değeri:"+sayacArtir.sayac);
}
}
ÇIKTI:
metod1 içinde count Değeri:4
metod1 içinde sayac Değeri:1
Metod2 içinde count Değeri:4
Main içinde Count Değeri:4
Main içinde Sayac Değeri:1
Burada önemli bir konu daha vardı o da static metodların override edilmemesiydi.Bunu yukarıda da belirmiştik ama şimdi bunu kod ile incelersek daha iyi ifade etmiş oluruz kendimizi ve böylece konuyu noktalamış oluyoruz. Not: Aşağıdaki kod scjp kitabından alıntıdır.
class Animal {
static void doStuff() {
System.out.print("a ");
}
}
class Dog extends Animal {
static void doStuff() {
System.out.print("d "); //burada override olmamıştır.
//eğer metod static olmasaydı çıktığımız a d olacaktı
}
public static void main(String [] args) {
Animal [] a = {new Animal(), new Dog()};
for(int x = 0; x < a.length; x++)
a[x].doStuff();
}
}
Burada önemli bir konu daha vardı o da static metodların override edilmemesiydi.Bunu yukarıda da belirmiştik ama şimdi bunu kod ile incelersek daha iyi ifade etmiş oluruz kendimizi ve böylece konuyu noktalamış oluyoruz. Not: Aşağıdaki kod scjp kitabından alıntıdır.
class Animal {
static void doStuff() {
System.out.print("a ");
}
}
class Dog extends Animal {
static void doStuff() {
System.out.print("d "); //burada override olmamıştır.
//eğer metod static olmasaydı çıktığımız a d olacaktı
}
public static void main(String [] args) {
Animal [] a = {new Animal(), new Dog()};
for(int x = 0; x < a.length; x++)
a[x].doStuff();
}
}
ÇIKTI
a a
a a
Kaydol:
Kayıtlar (Atom)