27 Eylül 2016 Salı

KeyStore.PrivateKey Sınıfı

getPrivateKey metodu
Şöyle yaparız.
KeyStore.PrivateKeyEntry privateKey = ...;
PrivateKey pkey = privateKey.getPrivateKey());
PrivateKey Cipher nesnesine geçilir.
Cipher cipher = Cipher.getInstance("...");
cipher.init(Cipher.DECRYPT_MODE, pkey);

22 Eylül 2016 Perşembe

JavaMail Transport Sınıfı

Giriş
Şu satırı dahil ederiz
import javax.mail.Transport;
Soyut bir sınıftır. Kalıtan sınıflardan birisi şu olabilir.
com.sun.mail.smtp.SMTPTransport
constructor
Eğer static sendMessage metodunu kullanmayacaksak şöyle yaparız.
Session session = ...;

Message message = ...;

Transport transport = session.getTransport("smtp");
transport.connect(host, from, password);
transport.sendMessage (message, message.getAllRecipients());
transport.close();
send metodu - static
Açıklaması şöyle.
Send is a static method that creates and manages its own connection. Any connection associated with any Transport instance used to invoke this method is ignored and not used. This method should only be invoked using the form Transport.send(msg);, and should never be invoked using an instance variable.
Şöyle yaparız.
Message message = ...;
...
Transport.send (message);
send metodu - static - Message + userName + password
Şöyle yaparız.
String user = "myaccount@gmail.com";
String pass = "mypassword";

Message message = ...;
...
Transport.send (message, user, pass);

21 Eylül 2016 Çarşamba

Static Constructor - Static Block

1. Static Block
Static Constructor aynı zamanda "Static Initialization Block", "Static Initializer" olarak ta bilinir.

Tanımlama
Şöyle yaparız.
public class Foo {
  static {
    System.out.println("Foo class loaded!");
  }
  ...
}
Ne Zaman Çalışır
Açıklaması şöyle
Class Loading and initialization are 2 different things. A class can be loaded but not initialized until it is really necessary. Static initializers are run only when a class is being initialized <> NOT loaded, "initialized"
Şu satır çalıştırmaz, çünkü sadece loading yapar.
Class<Foo> c = Foo.class;
Çalışması için şöyle yaparız.
Class<?> c = Class.forName ("Foo");
Çalışması için şöyle yaparız.
Foo f = new Foo ();
Static Block, Static Üye Alan'dan Sonra Çalıştırılabilir
Örnek
Şöyle yaparız
public class Helper {
  public static final Bicycle bicycle = new Bicycle("blue", 5L);
  static {
    bicycle.setTag("mountain");
  }
}
2. Instance Blocks
Şöyle yaparız
private LocalDate todayDate ;
{
    todayDate = LocalDate.now();
}
3. Order of Initialization
Açıklaması şöyle
So when there is a child class and we call the constructor of the child class following order will be followed:

1. Static Blocks of Super class and Child class will be loaded
2. Instance block of the Super class loads
3. Constructor of the Super class loads
4. Instance block of the Child class loads
5. Constructor of the Child class loads
Örnek
Elimizde şöyle bir kod olsun
class Foo {
  static { System.out.print("Static 1, "); }

  { System.out.print("Instance 1, "); }

  public Foo() {
    System.out.print("Foo Constructor, ");
  }
  
}

class Bar extends Foo {
  static { System.out.print("Static 2, "); }

  { System.out.print("Instance 2, "); }

  public Bar() {
    System.out.print("Bar Constructor, ");
  }
 
}

Bar bar = new Bar();
Çıktısı şöyle. Yani önce ata sınıfın static, daha sonra kalıtan sınıfın static metodları çalışıyor.
Daha sonra her sınıfın instance + constructor metodları kalıtıma göre çalıştırılıyor
Output:
Static 1, Static 2, Instance 1, Foo Constructor, Instance 2, Bar Constructor



19 Eylül 2016 Pazartesi

Constructor Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.lang.reflect.Constructor;
constructor
Şöyle yaparız.
Class c = ...;
Constructor<?> ctor = c.getConstructor();
Şöyle yaparız.
Constructor<?> ctor = c.getConstructor (int.class);
newInstance metodu - default 
Şöyle yaparız.
Object obj = ctor.newInstance();
newInstance metodu - int
Şöyle yaparız.
Constructor<?> ctor = c.getConstructor (int.class);
ctor.newInstance(42);

15 Eylül 2016 Perşembe

Awt MouseAdapter Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.awt.event.MouseAdapter;
Kullanım
Şöyle tanımlarız.
MouseAdapter myMouseAdapter = new MouseAdapter(){

  @Override
  public void mousePressed(MouseEvent E){
    ...
  }
  @Override
  public void mouseDragged(MouseEvent E){
    ....
  }
};
Şöyle kullanırız.
button.addMouseListener (myMouseAdapter);
button.addMouseMotionListener (myMouseAdapter);
mouseDragged metodu
1. Sürükleme işleminin hangi bileşenden başladığını bulmak için e.getComponent() kullanılabilir.
2. Sürükleme işleminin bittiğini anlamka için mouseRelease() kullanılabilir.
3. Üzerine gelinen bileşen sürüklenen nesneyi kabul etmezse target.setCursor(DragSource.DefaultCopyNoDrop) kullanılabilir.
Eğer kabul ederse
target.setCursor(DragSource.DefaultCopyDrop) kullanılabilir.

Örnek
Şöyle yaparız.
@Override
public void mouseDragged(MouseEvent E){
  ...
}
mousePressed metodu
Elimizde X ve Y konumlarını sakladığımız iki değişken olsun
int mouseClickedPosX = 0;
int mouseClickedPosY = 0;
Şöyle yaparız.
@Override
public void mousePressed(MouseEvent E){
  mouseClickedPosX = E.getX();
  mouseClickedPosY = E.getY();
}

1 Eylül 2016 Perşembe

CharSetEncoder Sınıfı

canEncode
Verilen string'i encode edilip edilemeyeceğini döner. Örnek:
boolean canEncode = Charset.forName("CP852").newEncoder().canEncode(test);
maxBytesPerChar
Bu encoder'ın bir karakter için en fazla kaç byte kullanacağını belirtir.
Charset utf8 = Charset.forName("UTF-8");
System.out.println(utf8.newEncoder().maxBytesPerChar());//Çıktı 3'tür


Generated Annotation

Şu satırı dahil ederiz.
import javax.annotation.Generated;
Şöyle yaparız.
@Generated("foo")
public class AdditinalInfo {
  ...
}