Enum

Java da Enum:
Enum(Enumaration) tanımlamaları programlama dillerinde belirli değerlere karşılık gelen sabit değerlerin temsili için kullanılırlar, haftanın günleri, bir şeyin boyutu,ölçüsü vs gibi. Geliştiriciye sağladığı faydalar ise kod okunabilirliğini arttırması, muhtemel değer kümesinin daraltılması ve tip güvenliğini sağlaması dolayısıyla hata payını en aza indirmesi.Daha okunabilir kod için enumlar kullanılmalıdır.


public enum EnumOrnek {

}
class Coffe{
enum Coffee{
 SHORT,TALL,GRAND,VENTI;
 
 
 }
Coffee size;// Bu şekilde Coffee 'size' olarak endeks edebiliriz.

/* Enum bir anahtar kelimedir.
 * Coffees sınıfında bu kadar fazla kod yazacağımıza enum anahtar kelimesinde tanımlamamız yeter.
 */

/*
public static final String TALL = "TALL";
 public static final String VENTI = "VENTİ";

 public static final String GRAND = "GRAND";
//Bu kadar kod yazacağımıza enum kullanarak kod fazlalığını önlemiş olduk.

 public static void main(String[] args) {
  Coffe coffee = new Coffe();
  
 System.out.println(coffee.size.TALL);
 System.out.println(coffee.size.VENTI);
 System.out.println(coffee.size.GRAND);
// Bu şekilde enumları yazdırabiliriz.

}

}

//Enumlara integer değerler de verebiliriz.



public class EnumlaraDevam {

  enum CoffeSize{
  
  SHORT(3),TALL(6),GRAND(8),VENTI(10);
  CoffeSize(int Price)
  {
   this.setPrice(Price);
  }
  public int getPrice() {
   return Price;
  }
  public void setPrice(int price) {
   Price = price;
  }
  private int Price;
 }
 
 
 
 public static void main(String[] args) {
 
  System.out.println(CoffeSize.GRAND);
  System.out.println(CoffeSize.SHORT.Price);
  //Burada Price çağırdığımız zaman SHORT'a tanımladığımız sayıyı çağırmış oluyoruz.
  System.out.println(CoffeSize.TALL);
  System.out.println(CoffeSize.VENTI.Price);
  
  for (CoffeSize cs:CoffeSize.values())
//For da : yazdırma tanımlı bir dizi ya da sayı topluluğu varsa bütün değerlerini yazdırır.
  {
   System.out.println(cs + " " + cs.getPrice() );
  }
//Burada SHORT 3 TALL 6 GRAND 8 VENTI 10 şeklinde yazdırdı.
  
 }

}

#enum, #java, #java-dersleri

Hello Java

Burada Java’nın syntax’dan bahsettik.

public class Notes {

}

// Javada bir sinif/class , metot , degisken vs gibi kavramlara/ogelere
// verdigimiz isimlere identifier/belirtici adini veriririz.

// legal identifier -> (legal den kastimiz --> derleme hatasi vermez olacaktir.)
// identifierlar , harf , currency $ , altcizgi (_ ) baslayabilir..
// ilk karakterden sonra rakam kullanabiliriz.

// identifier kullanilirken ingilizce kodlama yapalim.
// int a ; int b; gibi bir anlama ifade etmeyen identifierlar kullanamyalim.

// javanin keywordleri idetnfier ismi olamazlar.
// javada idenfierlar case sensitive dir. buyuk-kucuk harf duyarlidir.

// int sayi;
// int Sayi; farkli degiskenlerdir.

// . , : # gibi karakter kullanilamaz.


// Naming Standard

// #### class ve interfaceler icin name standard.
 //class ve interface isimleri BUYUK harfle baslamali ve camelCase notasyonuna uygun olmalidir. 
//

// Class --> isim/name olmalidir.

// Computer
// Person
// Customer
// Book
// Account
// PrintWriter
// CustomerAccount


// interfaceler-> sifat/adjective olmasi onerilir.

// Runnable
// Serializable 


// ### metotlar icin
// metot isimleri kucuk harfle baslamalidir. camelCase yapisina uygun olarak tanimlicaz.
// metodun ne yaptigi belli olmalidir. fiil-isim cifti seklin tanimlanmalidir.

// getCustomerBalance
// doCalculation
// setCustomerName

// ### degiskenler icin
// camelCase yaklasimina uygun olmalidir.
// degisken isimleri anlamli olmalidir.

// ### sabit/constant icin
// javada sabitleri , final static olarak tanimlariz . tum harfler BUYUK olmalidir ve kelime aralarinda alt cizgi (_) olmalidir.

//public static final int   MAX_VALUE = 0x7fffffff;

#java, #java-dersleri, #merhaba-dunya

Object Oriented

Burada iki farklı sınıftan, nesne tanımlayarak ‘Ders1’ sınıfında bulunan ‘yazdir’ fonk. B sınıfında çağırdık.
Final anahtar sözcüğünü ve Abstract sınıfına öğrenmiş olduk.

public class B {

  public static void main(String[] args) {

   Ders1 a= new Ders1();


                a.yazdir();
 /*
        *Burada Ders1 sınıfında oluşturulan yazdir fonksiyonunu burada çağırdık.
         *Ekrana '5' yazdı.
         */ 
}}
public class Ders1 {

 public void yazdir()
 {
  int sayi=5;
  System.out.println(sayi);
  
 }

  /*final*/ class Super{}
 
 class SubClass extends Super{}
 /* Super sınıfından kalıtım yapabilirim ancak final anahtar sözcüğünü kullanırsam kalıtım yapamam.
  * Final anahtar sözcüğü geçtiği yerde kalıtım yapılamaz ve değişken değeri değiştirilemez.
  * Program derleme yapmaz. 
         */
 
 abstract class Abstract{}
 
 /*Eğer bir sınıf abstract olarak tanımlanmışsa bu sınıfın kalıtılacağı anlamına gelir.
  * Final kalıtıma engeldir.
  * Abstraclar class ve metotlarda tanımlanırlar, değişkenlerde böyle birşey yoktur.
  * Abstraclarda nesne tanımlanmaz, new abstract diye birşey yoktur, derleme yapmaz.
  * 
  */

#java, #java-dersleri, #object-oriented

Scanner Sınıfı


Burada Scanner sınıfının kullanımını,java da yazdırma komutunu öğrenmiş olduk.

Kullanıcının girdiği iki sayıyı çarptırdık.

import java.util.Scanner;  
 public class HelloJava {  
  public static void main(String[] args) {   
  int numbone,numbtwo,result;  
  Scanner sc = new Scanner(System.in);  
  /*Kullanıcıdan bir değer girmesini isteğimiz zaman, kullanıcının girdiği değeri  
   * çekebilmek için 'Scanner' objesini oluşturmamız gerekir.  
   * 'sc' yerine herhangi bir referans ismi tanımlayabiliriz.  
   */  
   System.out.println("Bir sayi giriniz");  
  numbone=sc.nextInt();  
  /*Burada 'sc' ile kullanıcının girmiş olduğu değeri 'nextInt' int tipi old. için dedik ve   
   * değeri 'numbone' değişkenine atadık.  
   * Eğer tip int değil, string olsaydı 'nextLine',float 'nextFloat' olacaktı.  
  */  
  System.out.println("Bir sayi daha giriniz");  
  numbtwo=sc.nextInt();  
  result=numbone*numbtwo;  
   System.out.println("Sayıların çarpımı: "+ result);  
  // Kullanıcının girdiği sayıları çarptırıp yazdırdık.  
  }}  

#java, #java-dersleri, #scanner