Hızlı Başlangıç: Android'de Sınıflar, Nesneler, Dizgeler ve Döngüler (Örneklerle)

Kerem Aydın·10 Temmuz 2026·⏱2 dk

Kısa cevap: Android'de Java sınıfı bir varlığı (Activity, View veya kendi modeliniz) tanımlar; nesne onun bir örneğidir; String değişmez bir dizgedir; döngüler (for, genişletilmiş for, while) ise verileri dolaşmak ve kullanıcı arayüzünü güncellemek için kullanılır. Aşağıda, doğrudan bir Activity'ye veya adaptöre ekleyebileceğiniz kompakt örnekler ve ipuçları yer almaktadır.

Sınıflar ve Nesneler: Basit Bir Model Şablonu

Sınıf, alanları ve yöntemleri saklar. Android'de bu tür sınıflar genellikle Activity'ler arasında veya RecyclerView adaptörlerine aktarılan veri modelleri için kullanılır.

UserProfile modeli örneği:

public class UserProfile {
    private String name;
    private int age;

    public UserProfile(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }

    public String format() {
        return name + " (" + age + ")";
    }
}

Bir Activity içinde oluşturma ve kullanma (onCreate veya onViewCreated içinde):

UserProfile u = new UserProfile("Aleksey", 28);
TextView tv = findViewById(R.id.profilesText);
tv.setText(u.format());

İpucu: NullPointerException hatalarından kaçınmak için nesneleri yaşam döngüsü sırasında (onCreate/onStart/onViewCreated) başlatın.

Değişmezleri (örneğin yaş >= 0) kontrol etmek için yapıcılar ve getter/setter yöntemlerini kullanın.

Dizge İşlemleri: String vs StringBuilder

Java'da String değişmezdir; her birleştirme işlemi yeni bir nesne oluşturur. Günlük kayıtları için veya döngüler içinde büyük metinler oluştururken StringBuilder kullanın.

Örnekler:

String greeting = "Merhaba, Android!";
String full = greeting + " " + "Geliştirici";

StringBuilder sb = new StringBuilder();
sb.append("Kullanıcılar:\n");
for (UserProfile p : profiles) {
    sb.append(p.getName()).append(" - ").append(p.getAge()).append("\n");
}
textView.setText(sb.toString());

Büyük döngülerde "+" ile dizgeleri birleştirmeyin; bu, uygulamayı yavaşlatabilir ve çöp toplama işlemini artırabilir.

Döngüler: Hangisi Ne Zaman Kullanılır ve Pratik Örnek

  • for (i) — indeks gerektiğinde ve dizi uzunluğu bilindiğinde kullanılır.
  • genişletilmiş for — koleksiyonları (ArrayList, List) temiz bir şekilde dolaşmak için kullanılır.
  • while / do-while — koşul önceden bilinmediğinde (yeniden denemeler, olay bekleme) kullanılır.

Örnek: Bir listeyi doldurma ve Activity içinde bir TextView'de görüntüleme:

public class MainActivity extends AppCompatActivity {
    private List<UserProfile> profiles = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        profiles.add(new UserProfile("Anna", 24));
        profiles.add(new UserProfile("Dmitriy", 30));

        StringBuilder sb = new StringBuilder();
        for (UserProfile p : profiles) {
            sb.append(p.format()).append("\n");
        }

        TextView tv = findViewById(R.id.profilesText);
        tv.setText(sb.toString());
    }
}

Ölçeklenebilir bir liste için TextView yerine RecyclerView kullanın ve notifyItemRangeInserted/notifyDataSetChanged ile güncelleme yapan bir adaptör kullanın.

Sık Yapılan Hatalar

  • Görünüm/nesnelerin onCreate/onViewCreated dışında başlatılması → NullPointerException.
  • Büyük döngülerde String birleştirme → performans sızıntıları.
  • Yineleyici kullanmadan yineleme sırasında koleksiyonu değiştirme → ConcurrentModificationException.
  • Büyük nesnelerin statik alanlarda saklanması → bellek sızıntıları.

SSS

  • String ve StringBuilder arasında nasıl seçim yapmalıyım?
    • StringBuilder — sık değişiklik veya büyük dizgelerin oluşturulması için (döngülerde). String — kısa, değişmez değerler için.
  • Modelleri Activity içinde en iyi nerede başlatmalıyım?
    • onCreate veya onViewCreated (Fragment için) içinde — View'lara ve kullanıcı arayüzü mantığına erişmeden önce.
  • Java kodunda Kotlin yaklaşımlarını kullanabilir miyim?
    • Kullanabilirsiniz, ancak sözdizimi ve özellikler farklıdır; yeni projeler için Kotlin önerilir, ancak Java tamamen desteklenmeye devam etmektedir.

Bu şablonları öğrenin — ve Android'de adaptörler, veritabanı ve ağ çağrılarıyla çalışmaya hızla geçebilirsiniz. Pratik görevlerde başarılar!