NTP SINAV HAZIRLIK
--------------------------------------------------------------------------------------------------------------------------------
important 30.KASIM.2015 PAZARTESİ
crucial
critical
vital == önemli demek.
paramount
significant
imperative
call = çağırmak
invoke = çalıştırmak
void = boş
invalid=geçersiz
trigger=tetikleme
modifier = public=genel,static=sabit
javada ve c# metodlar muhakkak bir sınıf kapsama içerisinde olmak zorundadır.
bir fonksiyon içerisinde başka bir metod tanımlanamaz.
return fonksiyon akışını durdurmak için kullanılır.
return geriye bir değer döndürmek için kullanılır.
int sonuc=first1(); (first1 sonuc değişkenine kaynak olur.)
int a=3;
int b=2;
System.out.println(f(a,b));
}
static int f(int x,int y){
return x*x;
}
}
-------------------------------------------------------------------------------------------------------------------------------
package javaapplication1; 02.aralık.2015 çarşamba
public class JavaApplication1 {
public static void main(String[] args) {
String x[]=(" ali "," veli "," kırkdokuz "," elli ");
concat(x);
}
static void concat(String []x){
String tmp="";
for (int i = 0; i <x.length; i++) {
tmp+=x[i]+"_";
}
System.out.println(tmp);
}
}
---------------------------------------------------------------------------------------------------------------------------------
dizi içindeki sayıları 2 ile çarpıp dizi içine atama
package onurr; 07.aralık.2015 PAZARTESİ
public class Onurr {
public static void main(String[] args) {
int x[]=new int[]{2,3,4,5,6,7};
odd(x);
}
static int[] odd(int y[]){
int new_[]=new int[y.length];
for (int i = 0; i <new_.length; i++){
new_[i]=2*y[i];
System.out.println(new_[i]);
}
return new_;
}
}
---------------------------------------------------------------
sayıların ters çevrilip dizi içine atımı
package onurr;
public class Onurr {
public static void main(String[] args) {
int abc[]=new int[]{2,3,4,5,6,7};
for(int x:inverseToArray(abc))
System.out.println(x);
}
static int[] inverseToArray(int a[]){
int[] tmp=new int[a.length];
for (int i = a.length-1; i > -1; i--) {
tmp[i]=a[(a.length-1)-i];
}
return tmp;
}
}
// referans türleri ve değer türleri için
// final parametrelerin değerleri metot gövdesi içerisinde kullanılmaz.
// aynı zamanda final keywordu sabit tanımlamak için kullanılır.
_______________________________________________________________________
_______________________________________________________________________
CLASS------------SINIFLAR
Object oriented programing => Nesne yönelimli programlama
>class => sınıf
>object => nesne
>instance => örnek
>instance object => örnek nesne
>variable => değişken
>static variable => statik değişken
>static class => statik sınıf
>non-static => statik olmayan
>create => oluşturmak
>derivation => türetme
>derive=> türetmek
>decleration=> beyanı
>definition=> tanım
>new=> yeni
>allocate=> ayırmak
>deallocate=>
>behavior=>davranis
>variable=>değişken
>şhadowing=>gölgeleme
>name hiding=>isim gizlemek
-----------------------------------------------------------------
NOT= primity türler için stack cölgesinde alan ayrılır,refarence türleri için hip bölgesinde alan ayrılır.Refarence türleri için
ayrılan alanlra oluşturulan alanı ilk baytına adresi ile ulaşılır.
--------------------------------------------------------------
NOT= Çözülmesi istenen problemleri küçük parçalara ayırıp her bir parçasına ilişki kurmak nesne yönelimi olarak adlandırılır.Küçük parçalar
arasındaki ilişkiler kullanarak prgramatik problemlerin çözülmesi nesne yönelimli program olarak adlandırılır .
-----------------------------------------------------------------------
NESNE= Programlanabilir alanlara nesne denir.
programlanabilir alanlardır ki bu alanlar veri saklar yada fonksyonlarla ilişkilermiştir.
------------------------------------------------------------
NOT= Java nın esasını sınıflar oluşturur.Sınıflar Javanın üzerine kurulduğu temel(mantıksal) yapıdaır.Sınıflar nesnelerin yapısını ve davranışlarını
tanımlar.yazılacak herhangibir kod sınıf ile sarmalanmalıdır.Javada nesneler sınıflardan yararlanır.sınıflar nesneler için bir şablon,nesneler
ise sınıfların birer örneğidir(instance).sınıflar birer veri yapısı modeli oluşturlmasını sağlar.programcı bu veri modelini kullanarak istediği
kadar nesne yaratabilir yada bu sınıfları özelleştirebilir.programcı önceden tasarlanmış var olan sınıfları kullanabilir veya kendiside piarcive
sınıflar tasarlıyabilir.
---------------------------------------------------------------
NOT= Nesneler verilerin ve bu verilerle işlem yapan fonksyonların paketlenmesinde kullanılır.Bir Java kaynak dosyası içerisinde adı
,dosya adı ile aynı olan public olarak işaretlenmiş bir sınıf tanımlanmalı ve bu sınıf main metodunda sahip olmalıdır.
Main metodu çalıştırılabilir her java uzantılı dosya içerisinde bulunmalıdır.
-------------------------------------------------------------------
İnstance Variable=>Sınıfın birer üyesi olaraktanımlanırlar.global değişkenler olarak da adlandırılır.Bu değişkenler nesne ile ilgili
bilgiler(verileri)saklamak için kullanılan yapılardır
-------------------------------------------------------------------
NOT= Gılobal bir değişken adı ile lokal bir değişken tanımlandığında şhadowing name hiding oluşur.
---------------------------------------------------------------------
package sınıf;
public static void main(String[]args){
}
static void concat(String []x){
//decleration,definition
//sınıflar ileaslında birer veri türü oluşturulur
//sınıflar kullanıscı tarafından tanımlanabileceği gibi
//framwork içerisinde önceden tanımlanmış sınıflarda bulunur.
}
}
class a{
//alan,değişken
//[modifier]type indentifier[=value]
int x =5;
}
---------------------------------------------------------------------
package sınıf;
public static void main(String[]args){
}
static void concat(String []x){
A x ; //decleration
//A için dersiniz...
//x değişkeni için
//x değişkeni A sınıfından yaratılan nesnelerin adresini
//saklıyabilir
//A is ref type.
x= new A ();//definition:nesne yaratılır.
//new heap bölgesinde yeni bir alan oluşturmak için kullanılır.
//aynı zamanda oluşturulan nesnenin adresini geriye döndürür
//A()->nesneyi ilk kuruluma hazırlayan yapıcı metot çağırımıdır
//constructon ->yapıcı fuction:fonksyon.
}
}
class a{
//alan,değişken
//[modifier]type indentifier[=value]
int x =5;
}
----------------------------------------------------------------------
instance variable her bir nesne örneği için tekrar oluşturulur,diğer bir değişle intance variable sınıftan yaratılan her bir nesneye
----------------------------------------------------------------------
public static void main(String[] args) {
A x;
x=new A();
A y=new A();
System.out.println(x.z);
System.out.println(y.z);
x.z=10;
y.z=34;
System.out.println(x.z);
System.out.println(y.z);
}
class A{
int z=5;
}
}
________________________________________________________________________________
________________________________________________________________________________
DİNAMİK BELLEK AYIRMAK= DERLEME ZAMANNDA BÜYÜKLÜĞÜ BELLİ OLMAYAN ÇALIŞMA ZAMANINDA NEW OPÖROTÖRÜYLE YAPILAN BELLEK AYIRMA İŞLEVİDİRü
-------------------------------------------------------------------------------------------------------------------------------------
className()--->yapıcı çağırımı (call statment)
hemide varsayılan-argüman yokkk-
sınıf içerisinde p()tanımlamış
olsun babam alır:)-
olsun derleyicibizim yerimize default consturctor sınıfa ekler.
default constuructor:parametresiz yapıcı
p() nedir? -->yapıcı yapıcı metot
-yapıcı sınıf içerisinde değer atanmamış alanlara tanımlandıkları türü başlangıç değerine atar.-
-----------------------------------------------------------------------------------
class p{
int a;
byte b;
String c;
char d;
}
------------------------------------------
NOT= null referance türünden değişkenleri hiçbir nesneyi göstermediği anlamına gelir
---------------------------------------------------
public static void main(String[] args) {
p xxx= new p();
System.out.println(xxx.a);
System.out.println(xxx.b);
System.out.println(xxx.c);
System.out.println(xxx.d);
}
}
class p{
int a=5;
byte b=4;
String c="asdad";
char d;
}
------------------------------------------------------
Method prototype:
[modifier]<return_type><indentifier>([parametres])
NOT=daha önce instıns variable nın sınıftan yaratılan her bir nesneye tek tek iliştirildiğini söylemiştik her bir nesne
alanların ayrı birer kopyasına sahip olurlar sınıftan yaratılan her bir nesne örnek methotların kodu yerine referansına sahiptir.
----------------------------------------------------------
____________________________________________________________________________
____________________________________________________________________________
instance variable'ler sınıfların veri elemanlarıdır.
int field(){
return this.width*this.height;
}.....
r1.field();
// Bu metot çağırımında r1 referans değişkeni içerisindeki nesne adresi field metoduna gizlice aktarılır.Bu sebepten her bir
nesne kendilerine iliştirilen metodları kendi dataları(değişkenleri)ile kullanılır.
// return this.width*thisheight;ifadesinden anlaşılacağı üzere metodun geriye döndürdüğü alan bilgisi metodu çağıran nesneye
ait widht*height değerlerinin çarpımıyla elde edilir.
//Bu mekanizmanın olmaması OOP de anlam kopukluğuna neden olurdu .
KURAL;
bir sınıfta non-static üye elemanların başına this keywordu derleyici tarafından iliştirilir.ya da kullanıcı okunabirliği
arttırmak için this keywordu kendide yazabilir.
-----------------------------------------------------------------
int width;
int height;
int field(int width){
return width;
}
parametre olarak tanımlanan width instance veriable olan width değişkenini gölgeler buna shadowing denir.(namehidding miras kapsamında
özel bir anlam ifade eder.)
------------------------------------------------------------------
package onur;
public class Onur {
public static void main(String[] args) {
Rect r1;
r1=new Rect();
r1.w=2;
r1.h=12;
r1.print();
}
}
class Rect{
void print(){
System.out.println("heigh: "+this.h);
System.out.println("width: "+this.w);
System.out.println("field: "+this.field());
System.out.println("env: "+this.env());
}
int w;
int h;
int field(){
return this.w*this.h;
}
int env(){
return 2*(this.w+this.h);
}
}
-------------------------------------------------------------------------------
this chain=this zinciri
bir örnek değişken üzerinden bir metod çağırıldığında ,bide çağırılan metod içerisinden diğer bir örnek metod işletildiğinde
this zinciri kurulmuş olur.Anlamı ise:bir metodtan başka bir metoda nesne referansının aktarılmasıdır.
_____________________________________________________________________________________________________
_____________________________________________________________________________________________________
piblic static void main (string [] args){
f();
}
static int f() {...6 lines=}
static int faktoriyel(int x){
if(x==1)
return 1;
return x*faktoriyel(X-1);
}
static int additionRec(int x){
if(x==0)
return 1;
return x+additionRec(x-1);
}
static int x=1;
static int rv(){
int x = 1;
sout(x*x-3);
if(x<=30)
rv();
}
static int rv2(int x,int y){
x=1;
if(x<31){
sout(x*x-3);
rv2(x++);
}
return -1;
}
}
not:n kere çalşan n>0 sa eni azaltarak tekrar gönderir
________________________________________________________________
________________________________________________________________
instance variable'ler sınıfların veri elemanlarıdır.
int field(){
return this.width*this.height;
}.....
r1.field();
// Bu metot çağırımında r1 referans değişkeni içerisindeki nesne adresi field metoduna gizlice aktarılır.Bu sebepten her bir
nesne kendilerine iliştirilen metodları kendi dataları(değişkenleri)ile kullanılır.
// return this.width*thisheight;ifadesinden anlaşılacağı üzere metodun geriye döndürdüğü alan bilgisi metodu çağıran nesneye
ait widht*height değerlerinin çarpımıyla elde edilir.
//Bu mekanizmanın olmaması OOP de anlam kopukluğuna neden olurdu .
KURAL;
bir sınıfta non-static üye elemanların başına this keywordu derleyici tarafından iliştirilir.ya da kullanıcı okunabirliği
arttırmak için this keywordu kendide yazabilir.
-----------------------------------------------------------------
int width;
int height;
int field(int width){
return width;
}
parametre olarak tanımlanan width instance veriable olan width değişkenini gölgeler buna shadowing denir.(namehidding miras kapsamında
özel bir anlam ifade eder.)
------------------------------------------------------------------
package pc;
public class pc {
public static void main(String[] args) {
Rect r1;
r1=new Rect();
r1.w=2;
r1.h=12;
r1.print();
}
}
class Rect{
void print(){
System.out.println("heigh: "+this.h);
System.out.println("width: "+this.w);
System.out.println("field: "+this.field());
System.out.println("env: "+this.env());
}
int w;
int h;
int field(){
return this.w*this.h;
}
int env(){
return 2*(this.w+this.h);
}
}
-------------------------------------------------------------------------------
this chain=this zinciri
bir örnek değişken üzerinden bir metod çağırıldığında ,bide çağırılan metod içerisinden diğer bir örnek metod işletildiğinde
this zinciri kurulmuş olur.Anlamı ise:bir metodtan başka bir metoda nesne referansının aktarılmasıdır.
----------------------------------------------------------------------
Rect r1;//Rect deki şeyleri r1 e atadı
r1=new Rect();//???
r1.w=2;//w ye r1 üzerinden değer verdi
r1.h=12;//h ye r1 üzerinden değer verdi
r1.print();//pirintdekiler static void içine atma
}
----------------------------------------------------------------
constructor=yapıcı |NOT=>nesnelerin özelliklerine değer atarken binary binfix oparötörünün nasıl kullanıldığını gördük bu yöntem
devastating=yıkıcı |
modifier=niteleyici|kullanışlı sayılmaz ve hata yapmaya müsaittir.hemde atanan değerler nesne alanları için başlangıç değerleri sayılmaz
___________________|Nesne alanlarına değer atama işlemleri fonksyonlar kullanarak gerçekleştirilebilir hemde bu yöntem hataya daha az
elveişlidir.Bu yöntemde yapılan atamalar nesneler için yine ilk değer ataması değildir.
NOT=>Nesne alanlarına infixs(.) operötörü kullanılarak nesne alanlarına yada methotlar üzerinden nesne alanlarına nokta oparötorğü ile yada methotllar üzerinden
yapılan atamalar alanlar için ilk değerler(först value) değildir.Her iki yöntem nesne tanımlama ve ilk değer atama işlemini uzatır.
Nesne yönelimli programlama nesneleri ilk kullanıma hazırlamak(alanlarına ilk değer atamaları yapmak)için yapıcı methotları ön görür.
yapıcı methotlar nesneleri ilk kullanıma hazrlayan methot türleridir. sınıf içerisinde kullanıcı tarafından tamamlanmış (user defnaşion )bir yapıcı methot
olmadığında derleyici sınıfa varsayılan yapıcı methot ekler.Varsayılan yapıcı methot hiçbir parametreye sahip değil yapıcı methotlar üstü açık olarak (explictly)
bir geri geri dönüş deeğerine sahip değildir
yapıcı methot adları sınıf adlarıyla aynı olmak zorundadır.
prototype:
class a{
[modifier] A(){
}
}
--------------------------------------------------
NOT=>varsayılan yapıcı override edilebilir.Bu durumda alanlara istenilen başlangiç değeri atanabilir.
__________________________________________________________________________________________________
__________________________________________________________________________________________________
KAPSÜLLEME NEDİR==> UYGULAMALARDA SINIFIN VERİ ELEMANLARINA SINIF DIŞINDA ERİŞİMİ ENGELLEMEK EN İYİ YÖNTEMDİR.BU YÖNTEM VERİNİN YANLIŞLIKLA DEĞİŞTİRİLMESİNİ
ENGELLER VE VERİYİ SADECE KENDİSİ İÇİN TANIMLANMIŞ FONKSYONLAR İÇİN PAKETLER.
İSTENMEYEN DURUM NEDİR ?
x ve y veri elemanlarına sınıf dişindan erişim istenmez.
ACCESS _SPECİFİER--> SINIF içerisinde tanmlanan üye elemanları uygulama içerisinde nerelerden erişilebileceğini tanımlamak için
kullanılan anahtar sözcüklerdir java da 4 tane erişim belirteci bulunmaktadır.
->public
->private
->procted
->default
VARSAYILAN ERİŞİM BELİRTECİ;
Üye elemana aynı paket içerisinden istenilen her yerden erişilmesini sağlar.
->public ilgili üye elemana uygulama içeisinde her yerden erişilmesini sağlar
->private iliştirilmiş bir üye eleman sadece tanımlandığı sınıf içerisinde erişebilir durumdadır.
kapsüllemeyi sağlamak için veri üye elemanlarının başına privite key iliştirilir.
->procted olarak tanımlanmış bir üye eleman hem tanmlandığı sınıftan hemde bu sınftan türetilen alt sınıflardan erişilebilir
durumda olur.
NOT= kapsülleme gereği veri üyelerine erişim kısıtlandığında sınıfın dışarıya sunacağı ara yüz erişilebilir methotlarla sağlan
ır. erişilebilir methotlar public key yada varsayılan durumla oluşturulur.
---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
public static void main(String[] args) {
complexs c1=new complexs(20,10);
}
}
class complexs{
int reel;
int imeg;
complexs(int reel,int imeg){
//System.out.println(reel+imeg);
//System.out.println(reel*imeg);
//System.out.println(reel/imeg);
//System.out.println(reel-imeg);
this. reel=reel;
this. imeg=imeg;
}
}