
1.”==” ve “equals” arasındaki fark nedir?
“==” referans karşılaştırmasıdır. Her iki nesnenin Memory’de aynı konumu işaret edip etmediğine bakar.
“equals” nesnelerin değerlerini karşılaştırır. Her iki nesne için de hashCode() methodundan dönen değer aynı ise kesinlikle equals true olur.
public static void main(String[] args){ String a = new String("Hi"); String b= new String("Hi"); System.out.println(a==b); System.out.println(a.equals(b)); System.out.println(a.hashCode()); System.out.println(b.hashCode()); } //Output /* false true 2337 2337 */
2. Overriding nedir?
Override bir Annotation’dır. Base class da ki metotları sub class da kullanabilmemizi sağlar. Static methodlar için override Annotation’ı kullanılmaz. (@Override)
3.Overloading nedir?
Metotların aşırı yüklenmesidir. Aynı isimli metotların farklı tipte veya farklı sırada parametre almasıdır.
4.Final keywordu nedir?
Final variable: Sabit değerli variable yaratmamızı sağlar. Değer atandıktan sonra değiştirilemez. Eğer variable yaratılırken değer atanmazsa classın Contructor’ında değer atanmalıdır.
Final method: Bir class da final method kullanılırsa sub class da o method override edilemez.
Final class: Bir class final olarak tanımlandığında sub class tarafından extend edilemez.
public class RemainingtoDay { private final int t; public RemainingtoDay(int t){ this.t = t; } }
5.Bir sonsuz döngü örneği yazabilir misiniz?
public static void main(String[] args){ for(;;) System.out.println("Hello"); }
6.Super keywordu ne için kullanılır?
Super Keyword’u sub classdan base class da ki nesnelere ulaşmak için veya base classdan nesne yaratmak için kullanılır.
class Animal{ String type="Monkey"; } class Monkey extends Animal{ void writeType(){ System.out.println(super.type); } } class Test{ public static void main(String[] args){ Monkey monkey=new Monkey(); monkey.writeType(); } }
class Animal{ void jump(){ System.out.println("jumping.."); } } class Monkey extends Animal{ void work(){ super.jump(); } } class Test{ public static void main(String[] args){ Monkey monkey=new Monkey(); monkey.work(); } }
class Animal{ Animal(){ System.out.println("Animal is called.."); } } class Monkey extends Animal{ Monkey(){ super(); /*Burada super keywordunu kullanmasak da derleyici tarafından otomatik olarak eklenmiş gibi kabul edilir.*/ } } class Test{ public static void main(String[] args){ Monkey monkey=new Monkey(); } }
7.Constructor nedir?
Class ismi ile aynı olmak zorunda olan methoddur. Eğer bir contructor create edilmezse varsayılan constructor oluşturulur. Constructor overload edilebilir. Bir class için nesne oluşturulduğunda classın constructorı çağırılır.
8.This keywordu ne için kullanılır?
Geçerli sınıfın intance variablelarına ulaşabilmek için kullanılır.
Aynı class da ki methodu çağırmak için kullanılır.
Aynı class da ki consturtorı tekrar çağırmak için kullanılır. Yani consturtor zincirleme kullanılmış olur.
class Animal{ int age; String type; Animal(){ System.out.println("Welcome to Animal class"); } Animal(int age){ this.age=age; System.out.println("age worked.."); } Animal(String type){ this(5); this.type=type; System.out.println("type worked.."); } } class Test{ public static void main(String[] args){ Animal monkey=new Animal("Monkey"); } } //Output /* age worked.. type worked.. */