{"id":6747,"date":"2020-05-07T19:29:55","date_gmt":"2020-05-07T16:29:55","guid":{"rendered":"https:\/\/www.kampuskod.com\/?p=6747"},"modified":"2020-05-07T19:29:56","modified_gmt":"2020-05-07T16:29:56","slug":"java-interface-arayuz-nedir-java-dersleri","status":"publish","type":"post","link":"https:\/\/www.kampuskod.com\/yazilim\/java\/java-interface-arayuz-nedir-java-dersleri\/","title":{"rendered":"Java Interface (Aray\u00fcz) Nedir? – Java Dersleri"},"content":{"rendered":"\n

Daha \u00f6nce \u00f6\u011frendi\u011fimiz gibi, nesneler ortaya \u00e7\u0131kard\u0131klar\u0131 metotlar sayesinde d\u0131\u015f d\u00fcnya ile etkile\u015fimlerini tan\u0131mlar. Metotlar d\u0131\u015f d\u00fcnya ile nesnenin aray\u00fcz\u00fcn\u00fc (interface) olu\u015fturur<\/strong>; \u00f6rne\u011fin, televizyon setinizin \u00f6n\u00fcndeki butonlar siz ve onun plastik kaplamas\u0131n\u0131n di\u011fer taraf\u0131ndaki elektrik kablolar\u0131 aras\u0131nda aray\u00fczd\u00fcr. Televizyonu a\u00e7mak ve kapatmak i\u00e7in “g\u00fc\u00e7” tu\u015funa basabilirsiniz.<\/p>\n\n\n\n

Interface’in en yayg\u0131n hali, bir interface, bo\u015f g\u00f6vdelerle birlikte ilgili metotlar\u0131n bir grubudur. Bir bisikletin davran\u0131\u015f\u0131, bir interface (aray\u00fcz) gibi belirtildiyse, a\u015fa\u011f\u0131daki gibi g\u00f6r\u00fcn\u00fcr;<\/p>\n\n\n\n

interface Bicycle {\n\n    \/\/  wheel revolutions per minute\n    void changeCadence(int newValue);\n\n    void changeGear(int newValue);\n\n    void speedUp(int increment);\n\n    void applyBrakes(int decrement);\n}<\/code><\/pre>\n\n\n\n

Bu interface’i uygulamak i\u00e7in, s\u0131n\u0131f\u0131n\u0131z\u0131n ad\u0131 de\u011fi\u015fecekti (\u00f6rne\u011fin, ACMEBicycle gibi belirli bir bisiklet markas\u0131na) ve class (s\u0131n\u0131f) tan\u0131mlamas\u0131nda “implements<\/em><\/strong>” anahtar kelimesini kullan\u0131rs\u0131n\u0131z.<\/p>\n\n\n\n

class ACMEBicycle implements Bicycle {\n\n    int cadence = 0;\n    int speed = 0;\n    int gear = 1;\n\n   \/\/ The compiler will now require that methods\n   \/\/ changeCadence, changeGear, speedUp, and applyBrakes\n   \/\/ all be implemented. Compilation will fail if those\n   \/\/ methods are missing from this class.\n\/\/Derleyici \u015fimdi changeCadence, changeGear, speedUp, and applyBrakes metotlar\u0131n\u0131n\n\/\/uygulanmas\u0131n\u0131 zorunlu tutacakt\u0131r. E\u011fer \u015fu metotlar, bu s\u0131n\u0131ftan eksikse, derleyici ba\u015far\u0131z olur. \n    void changeCadence(int newValue) {\n         cadence = newValue;\n    }\n\n    void changeGear(int newValue) {\n         gear = newValue;\n    }\n\n    void speedUp(int increment) {\n         speed = speed + increment;   \n    }\n\n    void applyBrakes(int decrement) {\n         speed = speed - decrement;\n    }\n\n    void printStates() {\n         System.out.println(\"cadence:\" +\n             cadence + \" speed:\" + \n             speed + \" gear:\" + gear);\n    }\n}<\/code><\/pre>\n\n\n\n

Bir interface’\u0131n uygulanmas\u0131, bir s\u0131n\u0131f\u0131n sa\u011flamay\u0131 s\u00f6z verdi\u011fi davran\u0131\u015f hakk\u0131nda daha d\u00fczg\u00fcn \/ kurallara g\u00f6re olmas\u0131n\u0131 sa\u011flar. Interfaceler, s\u0131n\u0131f ve d\u0131\u015f d\u00fcnya aras\u0131nda bir anla\u015fma olu\u015fturur<\/strong> ve bu anla\u015fma derleyici taraf\u0131ndan in\u015fa zaman\u0131nda zorla uygulan\u0131r.<\/strong> S\u0131n\u0131f\u0131n\u0131z bir interface’i uygulamay\u0131 talep ederse,s\u0131n\u0131f ba\u015far\u0131yla derlenmeden \u00f6nce bu interface taraf\u0131ndan tan\u0131mlanm\u0131\u015f b\u00fct\u00fcn metotlar s\u0131n\u0131f\u0131n kaynak kodunda g\u00f6r\u00fcnmeli.<\/strong><\/p>\n\n\n\n

Not: Asl\u0131nda ACMEBicycle s\u0131n\u0131f\u0131n\u0131 derlemek i\u00e7in, uygulanm\u0131\u015f interface metotlar\u0131n\u0131n ba\u015f\u0131na “public”<\/em><\/strong> anahtar kelimesin eklenmeye ihtiyac\u0131 vard\u0131r. Gelecek derslerde bu k\u0131s\u0131mlara detayl\u0131ca de\u011finmeye \u00e7al\u0131\u015faca\u011f\u0131z.<\/p>\n\n\n\n

Bu yaz\u0131 Oracle Java D\u00f6k\u00fcman\u0131 kullan\u0131larak \u0130ngilizceden T\u00fcrk\u00e7eye \u00e7evrilmi\u015ftir. Sadece kaynak g\u00f6stererek kullanabilirsiniz.<\/strong><\/em><\/p>\n\n\n\n

\u00c7eviri Yap\u0131lan B\u00f6l\u00fcm Linki<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

Interfaceler, s\u0131n\u0131f ve d\u0131\u015f d\u00fcnya aras\u0131nda bir anla\u015fma olu\u015fturur ve bu anla\u015fma derleyici taraf\u0131ndan in\u015fa zaman\u0131nda zorla uygulan\u0131r. S\u0131n\u0131f\u0131n\u0131z bir interface’i uygulamay\u0131 talep ederse,s\u0131n\u0131f ba\u015far\u0131yla derlenmeden \u00f6nce bu interface taraf\u0131ndan tan\u0131mlanm\u0131\u015f b\u00fct\u00fcn metotlar s\u0131n\u0131f\u0131n kaynak kodunda g\u00f6r\u00fcnmeli.<\/p>\n","protected":false},"author":4,"featured_media":6749,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"tdm_status":"","tdm_grid_status":""},"categories":[3414],"tags":[420,3635,3435,3636,3634,417,3415],"_links":{"self":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts\/6747"}],"collection":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/comments?post=6747"}],"version-history":[{"count":2,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts\/6747\/revisions"}],"predecessor-version":[{"id":6750,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts\/6747\/revisions\/6750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/media\/6749"}],"wp:attachment":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/media?parent=6747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/categories?post=6747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/tags?post=6747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}