Object Orientation

Encapsulation
Do not expose class variables, instead of doing this, use setter and getter methods and keep class variables private.

public class Car {
   private int price;
   private int maxSpeed;
   public int getPrice() {
      return price;
   }
   public void setPrice(int price) {
      this.price = price;
   }
   public int getMaxSpeed() {
      return maxSpeed;
   }
   public void setMaxSpeed(int maxSpeed) {
      this.maxSpeed = maxSpeed;
   }
}

What is the advantage of previous usage, first of all flexibility. For example you have changed your mind, decide to keep max speed read only. So we can just remove setMaxSpeed method or change it to private for internal use.
Another advantage is validation, if user want to set negative value for car price, so you can add a validation in setPrice that is it.

Is-A and Has-A Relationship
So, Ferrari is a Car, Cow is an animal lets codify these statements.
Read the rest of this entry »

Comments

Java Basics

An introduction to Java programming languages. This post is intended to people who already know Java language but not sure about limits of what they can do and they cant such as which identifiers are valid which are not valid. An array can be defined in how many different ways ? Variables in interfaces. Enum definitions. Naming rules.

Read the rest of this entry »

Comments off

Java Threads

A thread allow us to run task simultaneously. In this post you will learn how to initialize a thread, what is Runnable interface and Thread class, when we use Runnable or Thread classes, running multiple threads, thread synchronization.

Read the rest of this entry »

Comments

Yazılım Dünyasında Kariyer

Bruce Eckel tarafından yazılan A Career in Computing yazısının çevirisidir.

Sık sık insanlar benden kariyerleriyle ilgili tavsiye isterler. Bütün cevapları bu yazımda bir araya toplamaya çalıştım. Bana yazip da cevap veremediklerimden özür dilerim, sorularınız tavsiye istekleriniz beni bu yazıyı yazmaya teşvik etti. İnsanlar kariyerle ilgili genelde “C++ mı Java mı öğrenmeliyim” gibi yanlış soruyu sorarlar. Bu yazımda yazılım dünyasında kariyer yaparken, kariyerimize yön verirken gerçekte hangi soruları sormalı, hangi konularla ilgilenmeliyiz, onu tartışacağım.

Read the rest of this entry »

Comments

Test Güdümlü Yazılım Geliştirme – 2

Birinci bölüm için tıklayınız…

Test güdümlü geliştirmenin (TGG) ikinci bölümünde, koddan önce testleri yazmanın, dizaynımızı nasıl olumlu yönde etkileyeceği üzerinde durmaya devam edeceğiz.  Birinci bölümde mükemmel sayıları bulma programını, önce kod sonra test yöntemiyle ( önce kodun kendisini yazıyoruz, sonrada bu kod için testleri yazıyoruz. TGG tam tersi diyebiliriz. ) ve TGG yöntemi kullanarak yazdım. Birinci bölümün sonunda, mükemmel sayıları tutan veri yapısını seçerken hata yaptığımı farkettim. En başta ArrayList kullanmaktan yanaydım fakat ilerleyen aşamalarda görüldü ki, Set kullanmak daha akıllıca. Bu kaldığımız noktadan ikinci bölüme devam edeceğiz. Genel olarak nasıl daha iyi test sınıfları yazarız, ve kodumuzun bitmiş halini nasıl en mükemmel hale getiririz konularını konuşacağız.

Read the rest of this entry »

Comments (1)