30 Mayıs 2017 Salı

Covariant Return Type

Giriş
Covariant Return Type virtual bir metod A tipini döndürüyorsa, bu metodu yeniden gerçekleştiren bir alt sınıf A'dan kalıtan B tipini döndürebilir anlamına gelir.

Java Covariant Return Type özelliğini desktekler. Bu özelliklik Java 1.5 ile geldi.
Örnek
Doğru bir örnek şöyle
public class Parent{  
  public Object doSomething(){}  
 }  
 public class Child extends Parent{  
  public String doSomething() {}  
 }
Örnek
Hatalı bir örnek şöyle
public interface Exemplary
{
  CharSequence getText();
}

public class Example implements Exemplary
{
  @Override
  public String getText(); // legal
}

public class BadExample implements Exemplary
{
  @Override
  public Integer getText(); // error
}
Örnek
Arayüz için şöyle yaparız. Elimizde bir arayüz olsun.
public interface SuperInterface {

  SuperInterface getSomething();
}
Bu arayüzden kalıtan  ve farklı bir nesne dönen covariant arayüz için şöyle yaparız.
public interface SubInterface extends SuperInterface {

  SubInterface getSomething();
}



14 Mayıs 2017 Pazar

JavaFX GraphicsContext Sınıfı

constructor
Şöyle yaparız.
GraphicsContext gc = canvas.getGraphicsContext2D();
fillRect metodu
Şöyle yaparız.
gc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
rotate metodu
Şöyle yaparız. strokeRect() gibi metodların ne kadar döndürülerek çizileceğini belirtir.
gc.rotate(15);
save ve restore metodu
Şöyle yaparız.
gc.save(); // Save default transform
Affine rotate = new Affine();
rotate.appendRotation(90, canvas.getWidth()/2, canvas.getHeight()/2);
gc.setTransform(rotate);
gc.drawImage(snapshot, 0, 0);
gc.restore(); // Restore default transform
setFill metodu
Şöyle yaparız. fillRect () gibi metodların şeklin içini doldurmak için kullanacağı rengi belirtir.
gc.setFill(Color.LIGHTGRAY);
setStroke metodu
strokeRect() gibi metodların şeklin çerçeveini çizmek için kullanacağı rengi belirtir.

Örnek
Şöyle yaparız.
gc.setStroke(Color.RED);
Örnek
gc.setStroke(Color.BLUE);
setStroke metodu
Şöyle yaparız. setStroke() ile belirtilen renkte dikdörtgen çizer.
gc.strokeRect(0, 0, canvas.getWidth(), canvas.getHeight());

JavaFX Canvas Sınıfı

getGraphicsContext2D metodu
Şöyle yaparız. GraphicsContext nesnesi döndürür.
GraphicsContext gc = canvas.getGraphicsContext2D();
getHeight metodu
Şöyle yaparız.
canvas.getHeight();
getWidth metodu
Şöyle yaparız.
canvas.getWidth();
snapShot metodu
Şöyle yaparız.
Image snapshot = canvas.snapshot(null, null);

8 Mayıs 2017 Pazartesi

KeyFactory Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.security.KeyFactory;
SecretKeyFactory Sınıfı simetrik şifreleme için kullanılırken bu sınıf asimetrik şifreleme için kullanılır. Bu sınıfın ürettiği PublicKey ve PrivateKey nesneleri Cipher nesnesini ile birlikte kullanılır.

Örnek
Şöyle yaparız.
PrivateKey priv = ..;

Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, priv);
Örnek
Şöyle yaparız.
PublicKey pub = 
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pub);

generatePublic metodu
Public key verisi X509EncodedKeySpec olarak saklanır. Bu nesneden Cipher nesnesinin ihtiyaç duyduğu PublicKey nesnesine dönüşüm için şöyle yaparız.
X509EncodedKeySpec spec = ...;
PublicKey  pub = fact.generatePublic(spec);
generatePrivateKey metodu
Private key verisi PKCS8EncodedKeySpec olarak saklanır. Bu nesneden Cipher nesnesinin ihtiyaç duyduğu PrivateKey nesnesine dönüşüm için şöyle yaparız.
PKCS8EncodedKeySpec keySpec = ...;
PrivateKey priv = fact.generatePrivate(keySpec);
getKeyspec  metodu
PrivateKey nesnesinden dönüşüm yapar.Şöyle yaparız.
PrivateKey priv = ...;
PKCS8EncodedKeySpec spec = fact.getKeySpec(priv,
            PKCS8EncodedKeySpec.class);
getInstance metodu
Şöyle yaparız.
KeyFactory fact = KeyFactory.getInstance("DSA");
Şöyle yaparız.
KeyFactory fact = KeyFactory.getInstance("RSA");