26 Mart 2012 Pazartesi

FILE I/O SINIFI ILE FAYLLARIN SIYAHISI

    public static void main(String[] args) {


        File games = new File("D:\\Row");
        File[] files = games.listFiles();
        for (File file : files) {
            System.out.println(file + " is a " + (file.isDirectory() ? "directory" : "file"));
        }
        String[] xfiles = games.list();
        for (String file : xfiles) {
            System.out.println("File = " + file);
        }
        FilenameFilter filter = new FilenameFilter() {

            public boolean accept(File dir, String name) {
                if (name.endsWith(".txt")) {
                    return true;
                }
                return false;
            }
        };

        File[] yfiles = games.listFiles(filter);
        for (File txt : yfiles) {
            System.out.println("Doc file = " + txt);

        }

    }
}

18 Mart 2012 Pazar

JAVADA LOCALE CLASS

Locale class dunyaya cixis bileti kimidir.Muxtelif dilleri ve olkeleri 1-1-den ayiraraq onu deyisdire bilen java class-dir.Locale class-nin 2 cur konstruktoru vardir.

1) Locale (String language)
2)Locale (String language ,String country)


Language-argumenti ISO 639 Language Code-u temsil edir.Misal ucun Italiya ucun tarixi qeyd etmek istesek o zaman
 Locale loc=new Locale("it");           // Italian
 yazmamiz kifayet edir.Eger Isvecrede istifade olunan italian dilin yazmaq istesek o zaman 2ci nov konstruktordan istifade edeceyik.yeni,
Locale loc=new Locale("it" , "CH");    // Switzerland

Locale sinifinde olan getDefault() ve getCountry() metodu ile oldugumuz olkenin local melumatlari alinir ve olke haqqinda melumat cap olunur.

public class Test{
public static void main(String [] args){
 Locale local = Locale.  getDefault ();
    System.out.println(local. getCountry ());
  }
    }
//AZ


setDefault() metodu ise bolgesel ayarlari deyisdirir.



 Locale newLocale = new Locale("en", "EN");                       // yeni local objemiz
    Locale.setDefault(newLocale);                                          // yeni local objemizi varsayilan edek
    Locale local = Locale.getDefault();
    System.out.println(local.getCountry());                              // olkeyi yazdiraq
  }
}



getDisplayCountry () ve getDisplayLanguage() metodlari verilen olkenin ve dilin Stringini yaratmaga imkan verir.
Locale l=new Locale("it","IT");
System.out.println(l.getDisplayCountry());           // ITALY cap olunacaq.



Locale l=new Locale("it","IT");
System.out.println(l.getDisplayLanguage());         // ITALIAN cap olunacaq.



Aylar massivler kimi 0-dan basliyir burda.Yeni ,Yeni Fevral 1-den baslayir.



 Calendar c = Calendar.getInstance();
 c.set(2012, 2, 18);
 Date d = c.getTime();
Locale l = new Locale("en", "UK");
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, l);  // TARIXI FULL GOSTERIR.
DateFormat df = DateFormat.getInstance();  // BU ISE 3/18/12 11:05 AM seklinde gosterir.

System.out.println(df.format(d));


CONSOLE:          Sunday, March 18, 2012  olacaq.










17 Mart 2012 Cumartesi

JAVADA YOLKA DUZELTMEK.

public class Test{
public static void main((String name[]){


  int bosluq= 10- 1;
        int a;
        for (int i = 0; i < 10; i++) {
            a= 2 * i + 1;
            for (int j = 1; j <= bosluq + a; j++) {
                if (j <= bosluq) {
                    System.out.print(' ');
                } else {
                    System.out.print('X');
                }
            }
            System.out.println();
            bosluq--;
        }

}
}

CONSOLE:

           X
        XXX
       XXXXX
      XXXXXXX
     XXXXXXXXX
    XXXXXXXXXXX
   XXXXXXXXXXXXX
  XXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX


3 Mart 2012 Cumartesi

CALENDAR CLASS-I

Calendar c1 = Calendar.getInstance();
 int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH) + 1;
 int date = c1.get(Calendar.DATE);
 int dayOfMonth = c1.get(Calendar.DAY_OF_MONTH);
 int dayOfYear = c1.get(Calendar.DAY_OF_YEAR);
System.out.println(dayOfMonth);

2 Mart 2012 Cuma

ENUM

JAVA.LANG.ENUM class-idir interface deyil.Normal classlar kimi .class file kimi compile olunur.
ENUM IS-A COMPARABLE


enum standalone application kimi run olunur.Enum class-da override olunmus toString() metodu enum sabitinnin adini qaytarir.


Enum basqa class veya enumu extend ede bilmir.


enum e=new enum(); // new keywordu ile yaradila bilmez.


public enum Color{

RED , GREEN
};

Enum-da ilk once enum sabitleri yazilmalidi.eger bu sabitlerden evvel nese yazilsa compile error verecek.yeni,


public enum Color{
int a=10;         //compile error
RED , GREEN
int a=10;         compile fine
};



enum e=enum.RED;
System.out.println(e instanceof Comparable);// Dogrudur
Enum deyisenleri constant oldugu ucun boyuk herfle yazilmalidir.hemde final static olur.
ENUM HECVAXT METODUN ICINDE TETBIQ OLUNA BILMEZ!


Enum class-in hem icinde hemde xaricinde islene biler.Eger class-in xaricinde islenerse o zaman ya public yada default olmalidir.eger PRIVATE veya PROTECTED olsa o zaman xeta verecek.

PRIVATE enum Color{ // xeta verecek.
RED , GREEN
};
Cass-in icinde islenen zaman bele private veya protected olsa xeta verecek.Meselen:

Class Test{
PRIVATE enum Color{
RED, GREEN
}
Color c;
}

Class Main{

public static void main(String [] args){
Test t=new Test();
t.c=Test.Color.RED; // bu setirde xeta verecek cunki enum private-dir.

Eger enum 1 class-in icinde islense o zaman hec 1 xeta olmaz.


Class Test{
PRIVATE enum Color{
RED, GREEN
}
Color c;
}
public static void main(String [] args){
Test t=new Test();
t.c=Test.Color.RED;
}
}

CONSOLE:
Cavab RED olacaq.

Maraqlidir amma enum-un constructoru PUBLIC ola bilmez.

enum Color{
RED, GREEN ; // constructor yazilacaqsa o zaman en sonda ; qoyulmalidir.qoyulmasa xeta verecek.

Color(){  //      eger constructorun qarsisinda public veya protected olsa o anda xeta verecek.
System.out.println("SALAM");
}
}
Color c;
public class Main{

public static void main(String [] args){
Main m=new Main();
m.c=Main.Color.RED;
System.out.print(m.c);
}
}

CONSOLE:
Burada constructor oldugu ucun enum deyerlerinin sayi ne qederdise constructor o qeder defe cagirilacaq en sonda ise enumun istediyimiz deyeri cagirilacaq.yeni SALAM SALAM RED olacaq netice.

interface-i implement ede biler.Constructor overload oluna biler.
ordinal() metodu enumda olan deyerlerin index-lerini gosterir.0-dan baslayir index.enumlar-da inheritance olmur.

CONSTRUCTOR

Constructor butun access modifierler ile islene bilir.yeni public , protected, private,ve default ola bilir.Arqument goture bilir(hemcinin var-args).STATIC, FINAL, ABSTRACT OLA BILMEZ!VOID OLA BILMEZ! 
; OLA BILMEZ! FOO() ; // ola bilmez!
Butun class-larin hemcinin abstract class-larinda constructoru olmalidir.Cunki Interface-ler inheritance tree-de objelerin 1 hissesi deyildirler.Interface-in constructoru yaradilanda xeta verir.Constructorun return tipi olmur.Constructorun adi class-in adi ile uygun olmalidir.Override oluna bilmir overload olunur.
Constructor-da super() qurtarana qeder instance metod,veya instance deyisenleri cagirmaq olmaz.eger cagirilsa xeta verer.

public class A{
public A(){
int a=10;              //  olmaz xeta verecek.
super();
int a=10;                  // burda yazmaq olar.
}
}
Yalniz static deyisenler ve metodlar super() veya this()-in 1 hissesi kimi access ede biler.Meselen:
super(A.NAME);    // OK, cunki NAME static deyisen kimi elan olunub.
Constructor metodun icinden cagirila bilmez.
Eger Default constructor el ile yazilibsa o zaman compiler onu daxil ede bilmez.Eger her hansi 1 argumenti olan constructor yazilibsa bu zaman default constructor artiq compiler terefinden yaradilmayacaq.
DEFAULT CONSTRUCTOR:

  • Class ile eyni access modifiere malik olur
  • Argumenti olmur
  • Argumenti olmayan super() daxil edir.
class Animal{
Animal(String name){
}
}


class Horse extends Animal{
Horse(){
super();                //  Problem
}
}

Bu kod compile olmayacaq.Cunki Horse class-da olan super() Animal class-nin constructoruna baxir ve gorurki argument goturub.ona gore super() bos oldugu ucun xeta verecek.


class Animal{
Animal(String name){
}
}


class Horse extends Animal{   //   problem.
}
Cunki Horse-da default oldugu ucun yene eyni xetani verecek.Bu xetanin qarsini 2 yolla almaq olar.
Ya Horse-da olan super() -e argument yazmaq super class-daki constructora uygun olaraq.Yadaki super class-da 1 dene default constructor yaratmaq ve icini bos etmek.

FINAL

Eger 1 deyisen final olsa onun deyeri mutleq o zaman menimsedilmelidir.
meselen:
final int a;
a=10; // xeta verecek.Cunki int a instance deyisen oldugu ucun default deyer alib.yeni deyeri 0-a menimsedilib.ona gore 2ci 10 deyerini menimsedende xeta verir.

Local deyisenlerde ise deyeri sonrada menimsede bilerik

 public static void main(String[] args) {
final int a;
a=9; // local deyisenler default deyer almadiqlari ucun onlar metodun icinde her hansi 1 yerde menimsedile bilerler.
}
eger 1 metod final ise onu hecvaxt override ede bilmerik.sadece yeniden menimsede bilerik.
Final parametrelerede tetbiq oluna biler.
public void foo(final int a){
a=10; // TRUE
a=20; // FALSE

VAR_ARGS

Var-arg metodda yalniz 1 dene olur ve en axirinci parametr olmalidir metodda.

LEGAL:
void do(int ...a){}
void do(char c,int ... a){}
void do(Animal... a){}

ILLEGAL:


void do(int x...){} // sintaksis pisdir.
void do(int...x,char...y){} // var-arg 1 dene olmalidir metodda.
void do(int ... a, byte b){} // var-arg metodda sonda gelmelidir.


METOD VE DEYISENLER

Eger 1 metod veya deyisen protected olarsa, o zaman sub class-da onu (.) operatoru ile cagirmaq olmaz.Eger cagirsaq COMPILER ERROR verer.Acces Modifierler LOCAL DEYISENLERE TETBIQ OLUNMUR!
public static void main(String [] args){
public int a=10;    // xeta verecek
}
Local deyisenler yalniz final ola biler.
SYNCHRONIZED--multithread programlarda,kritik kodlara erisimi kontrol etmek ucun istifade olunur.YALNIZ METODLARA TETBIQ OLUNUR.Butun access modofierler ile islene bilir.

NATIVE -- basqa 1 dilde yazilmis demekdir.YALNIZ METODLARA TETBIQ OLUNUR. ; SONLUGU ILE BITIR METODLAR.Abstract kimidir.
public static native void method() ; olmalidir.eger public static native void method() {} olsa o zaman error verecek.
TRANSIENT--deyisenlere tetbiq olunur.Serialization-da istifade olunur.
VOLATILE--deyisenelre tetbiq olunur.Asenkron olaraq deyisdirilen deyerlerdir.

Instance deyisenler--fielad,property veya attribute sozleri ile eyni menaya gelir.
Local deyisenler--default deyer almirlar.eger istifade olunsalar o zaman deyeri menimsedilmelidir.
new Test().login();---Test class-i icinde yalniz login() medounu cagirir.

CLASS VE INTERFACE HAQQINDA

Class hem abstract hemde final ola bilmez.
STRICTFP--1 keyworddur.Sinif ve metodlara tetbiq oluna biler.DEYISENLERE YOX!.Floating-point ucun IEEE 754 standartlarina uygun gelir(platform-depend).
Final olan Class-in subclass-i ola bilmez.eger yaradilmaga cehd olunsa COMPILE ERROR verecek.
Abstract class-in objesi yaradilmir.Metodlar ; sonlugu ile bitir.Eger 1 metod abstract olarsa class umumilikde abstract olar.
Interface-de metodun sonuna ;  qoyulur.deyisenler CONSTANTLA ifade olunur interface-de.ona gorede static final olurlar.ve hecvaxt deyismirler deyerlerini.instance deyisenler olmurlar.Interface-in metodlari gizlinde pullic ve abstractdir.eger yazmazsaq bunlari compiler onu public ve abstract qebul edecek.interface-in abstractdan ferqi cox az elastikliyinin olmasidir.Interface metodlar PRIVATE, STATIC, FINAL,PROTECTED OLA BILMEZ!
public interface Foo{}
public abstarct interface Foo{}
her 2-side eyni seydir.

IDENTIFIER VE KEYWORD

Identifier javada class-lara metodlara ve deyisenlere verilen adlardir demisdik.Sun bunlari adlandirmaq ucun CONVENTIONS yaratmisdir.
IDENTIFIER REQEM ILE BASLIYA BILMEZ!
KEYWORDLER HECVAXT IDENTIFIER OLA BILMEZ!    MES:new,class,import,default,void,true,false,null,final,finally ve s.Eger bunlarin ilk herfi boyuk ile yazilsa onda keyword olmaqdan cixib identifier kimi islene biler.MES: Boolean,Void,New,Null ve s.
IDENTIFIER ICINDE #,? VE S.BU KIMI SIMVOLLAR ISLENE BILMEZ!
Ancaq HERF,$ veya _ ile baslamalidir.1-ci karakterden sonra reqem, _, $ ola biler.
Keyword Identifier kimi islene bilmez.
Identifierler case sensitive-dir.yeni foo ve FOO 2 ferqli identifierdir.Identifier umumilikde class,metod,deyisenlere verilen umumi addir.

KEYWORDLER:
instanceof, package, this, const, synchronized, super, new, import, class ve s.


abstract
assert
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
enum
extends
false
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
true
try
void
volatile
while
 


CLASS--1 obyektde ne kimi propertiler ve metodlar oldugunu mueyyen edir.Bu class-a uygun olaraq yaradilan obyekt instance adlanir.Meselen web site 1 classdir news.com ise bunun 1 instance-dir.Insan 1 classdir Hale ise bunun 1 instance-dir.

OBYEKT--Icinde melumat veya funksiya saxlayan qurulusdur.Melumati saxlayan property ,mueyyen 1 is goren vahid ise metod adlanir.Meselen 1 insanin boyu 1 property-dir yerimesi ise 1 metoddur.

Class ve Interfaceler boyuk herfle yazilir.Eger 1 nece sozun birlesmesi olarsa onda camelCase ile yazilir.esasen isim isledilir.Meselen:Dog
Interface ucun ise sifet goturulur.Meselen:Runnable
Metodlar da camelCase ile yazilir.esasen fel-isim isledilir.Meselen:getBalance
Deyisenler de metodlar kimi camelCase formatidna olur.Meselen myString
CONSTANT static ve final olur.Boyuk herf  ve _ ile yazilir.Meselen : MIN_HEIGHT

== VE EQUALS() METODUNUN MUQAYISESI

String s1=new String("hale");
String s2=new String("hale");
if(s1==s2){
System.out.println(true);
}else{
System.out.println(false);
}

CONSOLE:
cavab FALSE olacaq.Cunki,s1 ve s2 referansinin terkibi eyni olsa bele 2 muxtelif obyektin referanslaridir.Cunki new String() hemise yeni obyekt yaradir.

if(s1.equals(s2));
olsa ,bu zaman netice TRUE olacaq.cunki bu metod yalniz terkibe baxir.

eger s1="abc";
s2="abc";
olsa, onda cavab TRUE olacaq.Cunki yeni obyekt yaradilmayacaq.

Wrapper classlarda ise ferqlidir bu beraberlik elametleri.


 Integer a=new Integer(100);
     Integer b=new Integer(100);
        if(a==b){
            System.out.println(true);
        }else{
            System.out.println(false);
        }
    }


CONSOLE:
Burada cavab yeni obyekt yarandigi ucun yene false olacaq.


 Integer a=100;
     Integer b=100;
        if(a==b){
            System.out.println(true);
        }else{
            System.out.println(false);
        }
    }
CONSOLE:
Burada yeni 1 obyekt yaranmadigi ucun netice TRUE olacaq.Ancaq 1 seyi qeyd etmeliyemki Integer ve Short
-128 ve 127 araliginda olarsa ozunu primitive tip kimi aparacaq ve netice TRUE olacaq.


Integer a=500;
     Integer b=500;
        if(a==b){
            System.out.println(true);
        }else{
            System.out.println(false);
        }
    }


CONSOLE:
Burada netice FALSE olacaq.Cunki ,127-den yuxaridi verdiyimiz deyer.

Byte,Boolean ve Character yeni obyekt yaranmadigi teqdirde muqayise edilse (==) ozunu primitive tip kimi aparacaq ve netice TRUE olacaq.
Qeyd etmek lazimdirki diger Wrapper tiplerden ferqli olaraq Characterin yalnizca 1 constructoru ola biler.
Character c=new Character('a');

FRAME-DE SEKLIN LABEL ICINDE TAM YERLESMESI

 Toolkit toolkit = Toolkit.getDefaultToolkit();
 Image image = toolkit.getImage("D:\\msnbliss.jpg");
 Image scaledImage = image.getScaledInstance(lblresim.getWidth(), lblresim.getHeight(), Image.SCALE_DEFAULT);
ImageIcon icon = new ImageIcon(scaledImage);
lblresim.setIcon(icon);