A pencil?

Recently,

I feel a little bit sad, mad, uhnappy …

 

I have had a pencil “Tombow Deep” that was my favourite pencil… I really liked writing with it. I’ve started writing essays, stories and a lot of things like that. I’ve drawn many things with it. However, it was cracked – I guess – some time in last year. I continued using it until this september. Its time has come.  I want to buy another one but there is no pencil in the same color anymore. I didn’t see it anywhere.

 

If you need pencil, I am suggesting you to choose it. very comfortable…

Continue reading “A pencil?”

Java – static kavramı

Java’da static kavramı
static terimi, fizik derslerinden hatırlayacağımız “statik elektrik” başlığındakinden farklı bir şey değildir.
Burada statik , durgun anlamında kullanılmıştır. static, kelime anlamı olarak da “sabit, durgun, gelişme değişme göstermeyen” dir.static teriminin ne olduğunu bilmeseniz de aslında zaten bunu kullanıyorsunuz.. Hatırlayın
–> public static void main(String[] args)
static terimi “reserved word” denilen sözcüklerden biridir. yani siz bu isimle bir değişken tanıtamazsınız. (Zaten kod yazmak için kullandığınız bu kelimeyi renkli gösterecektir.)

static; değişken(variable)’lerden, method’lardan ve inner-class’lardan önce kullanılabilir.
Teker teker ele alalım.
1) Static Variables(Statik Değişkenler)
Static değişkenler, değerlerini programın çalışma sürecinin başında alır. Tanıtıldığı class’tan bağımsız bulunurlar. Başka kod parçalarında onlara ulaşabilmek için, genelde yapılan;
public class MyBag{
int bagSize;
}
MyBag bag=new MyBag();
“bag.bagSize” yerine static değişkenlere ulaşmak için class ismi kullanılır. “Math.PI” gibi. Yani “MyBag.bagSize”.
Şöyle bir örnekle olaya farklı bir açıdan yaklaşalım: Continue reading “Java – static kavramı”

Scope and Life Time – Java

SCOPE AND TIME DURATION
Bu konunun Türkçe ismi “Yaşam Alanı ve Yaşam Süresi”dir.
Çok fazla abartılacak kadar zor bir konu da değildir. Aynı zamanda kısa bir konudur.
Konu sadece, “Bu scope and Time Duration” da neymiş sorusunun cevabı olan basit bir konu.
Konu pek “zorlu ve uzun” olmadığından bunu kısa örnekler halinde anlatmak daha doğru bir karar olacaktır.
Çünkü konu, değişkenler neredeyken hata alırız neredeyken almayız sistemiyle gidiyor.
Yaşam Alanı – Scope
Yaşam alanı, adından da anlaşılacağı gibi, bir değişken(variable)’in içinde tanımlı olduğu yerdir. Yani scope, bir değişkenin ulaşılabileceği sınırları belirler.
Yaşam Süresi- lifetime- time duration
Yaşam süresi, bir değişkenin oluşturulduğu andan yok edileceği zamana kadarki süredir. Değişkenler, genel olarak yaşam alanlarının bittiği yerde yok edilirler.
(İlk olarak)En basitindan başlarsak, değişkenler, tanıtıldığı satırdan itibaren hayattadır. Bunun üstünde kullanmaya çalışırsak hata alırız.
Mesela;
public class Scope{
public static void main(String[] args) {
System.out.println(x);
int x=0;
}
} Continue reading “Scope and Life Time – Java”

this Referansı – Java

this Referans Kelimesi
class’lar arası ilişkiler konusunun bir parçası olarak ele alınması gereken bir konu da,
Java programlarda kullanılan bir referans sözcük olan this kelimesidir. Bu, “reserved word” denilen sözcüklerden biridir.
Bu sözcük, bir class’ın kendini ifade etmesine(kendisini çağırmasına, isimlendirmesine) izin verir. static konusunda anlattığım gibi,
static olmayan bir method veya değişken, objeler üzerinden çağrılır. (Yani className.methodName() diyemeyiz static değilse).
Bu metodun içinde, this referansı o anda işlem yapılan objeyi işaret eder.
Örneğin, Boyut isimli bir class’ın içinde artir(Boyut sukadar) diye bir method olsun.
–>          this.hacim+=sukadar.hacim;
Bu örnekte, this referansı, hangi objeye ait olan “hacim”in değiştirildiğini daha açık,anlaşılır ifade etmek için kullanılmıştır.
Mesela aşağıdaki satırda, artir() metodu hangi obje üzerinden çağrılmışsa, this ifadesi onu işaret eder. Yani sürahideki suyu:
–>          sürahidekiSu.artir(suKadar);
Ama eğer biz bu metodu başka bir obje üzerinden çağırırsak, bu sefer this referansı o objeyi ifade eder. Yani bu sefer farklı bir obje olan bardaktaki suyu:
–>          bardaktakiSu.artir(suKadar);
Genellikle this referansı, constructor’daki parametreler ile class’a ait değişkenlerin karışmaması için kullanılır. Örneğin, Hesap isimli bir class’ımız olsun.
–> Continue reading “this Referansı – Java”

Java Exceptions

JAVA’DA EXCEPTION

Exception, Türkçesi İstisna olan bir kelimedir ama Javadaki anlamı tam olarak karşılayabildiğini düşünmüyorum bu yüzden ben Türkçesini kullanmayacağım. Exception, bir programdaki istenmeyen durumlar ifade eder. Mesela, siz kullanıcıdan bir “yarıçap” değeri istediniz, fakat kullanıcı size 45 yazacağına 45t yazdı yanlışlıkla… Programınız böyle bir durumda ne yapacağını bilemez. İşte bu örnek bir istenmeyen durumdur.

Exception’lara örnek vermek istersek temel olarak en çok şunlarla karşılaşırsınız.
x Bir sayıyı 0(sıfır)’a bölmeye çalışma,
x Bir dizi’nin boyut sınırından ileride bir noktası ulaşmaya çalışma,
x Program içinde kullandığınız bir dosyanın ( file) istenen konumda bulunmaması,
x Dosya (input) okuma hataları,
x oluşturulmamış bir nesneye ulaşmaya çalışma,
x Güvenlik problemi oluşturabilecek bir programı çalıştırmaya çalışma

Bu durumlar, istenirse,
x ortaya çıkma ihtimali olan yerde halledilir.
x veya programın başka bir yerinde halledilmek üzere yönlendirilebilir.
x Bu ikisini de yapmayıp, hatalı bir durum oluştuğunda programınızın hata verip kapanmasını tercih edebilirsiniz. Continue reading “Java Exceptions”

Java Serialization – Bölüm 2

JAVA’DA SERIALIZATION 2. BÖLÜM
Serialization özelliğini durdurmaİlk dersimizde serialization ile alakalı bazı şeyler öğrendik şimdi biraz daha görelim. Ya eğer biz Serializable yaptığımız bir classtan subclass oluşturduysak, ama bu yeni subclass’ın serializable olmasını istemiyorsak? Siz bu arayüz içinunimplements gibi bir şey yazamazsınız. Yani, eğer sizin super classınız Serializable ise, yeni classınız da bunu uygular. Bu otomatik serialization özelliğini engellemek için, siz private metodlar kullanarak, writeObject ve readObjectmetodlarını override edebilirsiniz. private yaptığınız için, sizden sonra kaynak kodlar elinde olmayan hiç kimse, bu metodları değiştirip serializable yapamaz. İsterseniz subclasslarda tekrar implements Serializable diyerek bu özelliği aktif edebilirsiniz. Neyse, serialization özelliğini kapatmak için yapmanız gereken tek şey,
NotSerializableException fırlatmaktır. Nasıl yapılacağını da yazalım:
private void writeObject(ObjectOutputStream out) throws IOException{
throw new NotSerializableException(“Not today!”);
}
private void readObject(ObjectInputStream in) throws IOException{
throw new NotSerializableException(“Not today!”);
}

Bu classın herhangi bir objesini yazma veya okuma için yapılan her girişim, Exception fırlatılmasıyla sonuçlanır. Hatırlayın, bu metodlar private olduğu için, kimse kaynak kodlar elinde olmadan kodunuzu override edip bunu değiştiremez.. Continue reading “Java Serialization – Bölüm 2”

Java Serialization

JAVA’DA SERIALIZATIONNot: Arkadaşlar konu, orta ve ileri düzey bilgiler gerektirmektedir.Bu ders, Javanın uzun zaman önceki sürümlerinde bile var olan bir özellikle alâkalı olacak. Java’da Serializable interface’ini kullanan her nesne, bir byte dizisi olarak saklanabilir. Daha sonra tekrar eski haline geri getirilebilir. Bu işlem, Java’da yazılan diğer çoğu kod gibi, Platformdan bağımsızdır. Yani siz bir nesneyi Windows kullanan bir bilgisayarda “Serialize” ettiniz. Bunu Linux işletim sistemini kullanan bir bilgisayarda bile geri getirebilirsiniz. Arada yapılacak işlemler, sizin probleminiz değildir. Onları Java VM sizin yerinize halleder.
Serialization işlemi, bir objenin bir hafızaya, buffer’a veya bir network bağlantısına kaydedilmesidir denilebilir. Java VM, objeleri birer byte dizisi haline getirir ve bunları dosyalar.

Şimdi teknik olarak bu işlemin nasıl yapıldığını olabildiğince basit bir şekilde, birkaç örnekle anlatmaya çalışalım.

Not: Bir objeyi bir dosyaya serialize ederken, javadaki gelenek, dosyala .ser uzantısı vermektir.

Continue reading “Java Serialization”

Let’s take a big step…

Yes…

Long ago, I said that I will share some lessons, lectures, explanations about programming. Today, I will start sharing them…

The first video, about Recursion in Java, is in the link.

https://vimeo.com/54237774

Comment if you have a problem with that.

I guess I will make others with my voice. That will probably be faster.

Also I think, I can upload them to YouTube, too.

Best,

WaxtaP

__________________
EDIT:

I figured out that vimeo doesn’t let you watch it HD.. So I also uploaded it to youtube.

Here is the link: http://youtu.be/QpK7GafmLVk 

Stars – Coding Exercise

Bu bölümde döngülerle ilgili biraz çalışma yapacağız. Döngü kullanma pratiğini geliştirmek lazım. Bunları aynı sırayla çözmelisin. Zaten Git gide zorlaşan sıradalar.

In this topic, we will look at “stars” for some practice on loops. Codes will be in java however it is easy to apply that to C and C++ as well.  If you are planning to write their code, do it in the same order. 

I) For a number N , N rows output of that shape.
N sayısı için N satır olacak şekilde aşağıdaki çıktıyı verecek program yaz.
Input:
5
Output:
x
xx
xxx
xxxx
xxxxx
II) For a number N , N rows output of that shape.
N sayısı için N satır olacak şekilde aşağıdaki çıktıyı verecek program yaz.
Input:
5
Output:
        x
      xx
    xxx
  xxxx
xxxxx
III) For a number N , N rows output of that shape.
N sayısı için N satır olacak şekilde aşağıdaki çıktıyı verecek program yaz.
Input:
5
Output:
        x
      xxx
    xxxxx
  xxxxxxx
xxxxxxxxx
IV) For a number N , 2N-1 rows output of that shape.
N sayısı için 2N-1 satır olacak şekilde aşağıdaki çıktıyı verecek program yaz.
Input:
5
Output:
        x
      xxx
    xxxxx
  xxxxxxx
xxxxxxxxx
  xxxxxxx
    xxxxx
      xxx
        x
________________________________________________________________________________
Continue reading for solutions
Okumaya devam etmeye tikladığınızda çözümler görünür.