Methods 2/22/2019 Java'da Programlama.

Slides:



Advertisements
Benzer bir sunumlar
Nesneye Yönelik Programlama
Advertisements

Fonksiyonlar.
Değişkenler ve bellek Değişkenler
Java Uygulamaları Konsol Uygulaması.
Zeynep Çelik Sunar….
Programlama-II (Java ile Bilgisayar Programlama)
Bölüm 4 İşlevlerve Modüler Programlama. 1 / 8 İşlev Tanımı /* İşlev açıklama satırı */ ( ) { }
Değişken Bildirimleri
Bölüm 2 – Java Uygulamalarına Giriş
Bölüm 3 - Java Appletlerine Giriş
Bölüm 6 – Metodlar ve Parametreler
Bölüm 4 – Kontrol İfadeleri:1.kısım
Metodlar ve Parametreler
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Recursion (Özyineleme)
Java Programlama Diline Giriş
NESNEYE YÖNELİK PROGRAMLAMA
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Erişim Denetimi, Fonksiyon
NESNE TABANLI PROGRAMLAMA -METOTLAR-
Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar
C# Metot Overloading (Aşırı yükleme)
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Bilgisayar Organizasyonu
Ses Kontrol Metodlar ile ilgili son birkaç söz Tekrar: Programlama için başlıca 3 model.
FONKSİYONLAR.
Özyineleme(Recursion)
ÇOK BİÇİMLİLİK POLYMORPHISM
APPLET KAVRAMI ve GRAFİK UYGULAMALARI
Bölüm 5 - Fonksiyonlar index 5.1 Giriş 5.2 C de Program Modülleri
Önceki Dersi Hatırlama !!
Recursion (Özyineleme)
Kalıtım.
Bilgisayar Programlama
JAVA’DA DÖNGÜLER.
BTP205 – Görsel Programlama I
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
FONKSİYONLAR İbrahim Onur Sığırcı.
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
Veri Yapıları ve Algoritmaları ders_1
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Bölüm 7 - Diziler İçerik 7.1 Giriş 7.2 Diziler 7.3 Dizileri Tanımlama 7.4 Dizileri Kullanan Örnekler 7.5 Referanslar ve Referans Parametreler.
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
JAVA PROGRAMLAMA ORNEKLER
Sınıflar, Nesneler ve Metodlar
Görsel C# ile Windows Programlama
BTP206– Görsel Programlama II
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
BIL MOBiL PROGRAMLAMA TEKNiKLERi
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Programlama Dillerinin Prensipleri
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
3. Hafta İçeriği Operatörler Karar yapıları Döngüler.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
YAPISAL PROGRAMLAMA Hafta-5
C Programlama Dili Bilgisayar Mühendisliği.
C’de Fonsiyonlar Aslı Ergün.
METHODLAR VE KOŞULLAR.
ARDUİNO Arduino Eğitimleri Bölüm 4 Programlama Dili Temelleri - II
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
Altprogramların gerçeklenmesi
Recursion (Özyineleme)
NİŞANTAŞI ÜNİVERSİTESİ
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

Methods 2/22/2019 Java'da Programlama

Tanitim Gercek dunya problemlerini cozmeye yonelik programlar oldukca karmasik ve buyuk hacimli koda sahiptirler. Tecrubeler sunu gosterdi: Buyuk capli bir programi gelistirmenin ve bakimini iyi bir sekilde yapmanin en iyi yolu, onu kucuk parcalara bolmek suretiyle moduler bir sekilde gelistirmektir. Bu kucuk parcalara module ler denir. Yukarida belirtilen teknige de divide and conquer teknigi denir. 2/22/2019 Java'da Programlama

Method lar ve Class lar Java daki moduller method ve class lar seklindedir. Java API (java class library) Onceden tanimlanmis ve hazir olarak programcilara sunulan cesitli method ve class lari barindirir. Matematik islemleri String islemleri Hata kontrol Input/output (giris/cikis) islemleri 2/22/2019 Java'da Programlama

Math Class Methods abs(x) // absolute value ceil(x) // x i x den kucuk olmayan en // kucuk integer a yuvarlar cos(x) // x in radians exp(x) // ex floor(x) // x i x den buyuk olmayan en // buyuk sayiya yuvarlar max(x,y) min(x,y) pow(x,y) // yx 2/22/2019 Java'da Programlama

import java.awt.Graphics; import java.applet.Applet; public class SquareInt extends Applet { public void paint(Graphics g) { int xPosition =25; for(int x=1; x<=10; x++) { g.drawString(String.valueOf(square(x)),xPosition,25); xPosition+=20; } // squarae method definition public int square(int y){ return y * y; 2/22/2019 Java'da Programlama

2/22/2019 Java'da Programlama

Method tanimlamasi return-value-type method-name(parameter-list) { decleartion ve statement lar } Eger donen degerin type i void ise, bu metodun hic bir sey dondurmedigi anlamina gelir 2/22/2019 Java'da Programlama

public class Maximum extends Applet implements ActionListener{ Label label1, label2, label3, resultLabel; TextField number1, number2, number3, result; int num1, num2, num3, max; public void init(){ label1=new Label("Enter first integer:"); number1=new TextField("0",10); label2=new Label("Enter second integer:"); number2=new TextField("0",10); label3=new Label("Enter third integer:"); number3=new TextField("0",10); resultLabel=new Label("Maximum value is:"); result=new TextField("0",10); result.setEditable(false); number1.addActionListener(this); number2.addActionListener(this); number3.addActionListener(this); 2/22/2019 Java'da Programlama

public int maximum(int x, int y, int z){ add(label1); add(number1); add(label2); add(number2); add(label3); add(number3); add(resultLabel); add(result); } public int maximum(int x, int y, int z){ return Math.max(x, Math.max(y,z)); 2/22/2019 Java'da Programlama

public void actionPerformed(ActionEvent e) { num1=Integer.parseInt(number1.getText()); num2=Integer.parseInt(number2.getText()); num3=Integer.parseInt(number3.getText()); max=maximum(num1,num2,num3); result.setText(Integer.toString(max)); } 2/22/2019 Java'da Programlama

2/22/2019 Java'da Programlama

Java API Packages java.applet : The Java Applet Package java.awt: The Java Abstract Windowing Toolkit Package java.awt.event: The Java Abstract Windowing Toolkit Event Package java.beans: The Java Beans Package java.io: The Java Input/Output Package java.lang: The Java Language Package java.net: The Java Networking Package java.sql: The Java Database Connectivity Package 2/22/2019 Java'da Programlama

import java.awt.Graphics; import java.applet.Applet; public class RandomInt extends Applet{ public void paint(Graphics g) { int xPosition = 25; int yPosition =25; int value; for(int i=1; i<=20; i++){ value=1+(int)(Math.random()*6); g.drawString(Integer.toString(value), xPosition,yPosition); if(i%5!=0) xPosition+=40; else { xPosition = 25; yPosition+=15; } 2/22/2019 Java'da Programlama

2/22/2019 Java'da Programlama

Automatic Variables Bir degiskenin duration (lifetime) i soyle tanimlanir. Degisken in bellekte var oldugu zaman peryoduna denir. Bir degiskenin scope u: Program icerinde bu variable e erisilebilen kod bolgesini tanimlar 2/22/2019 Java'da Programlama

Automatic Variables Bir method a ait local degiskenleri tanimlayan belirtecler (parametreler, ve method icerisinde tanimlanan degiskenler) automatic duration a sahiptirler. Yani bu degiskenler, program kontrolu degiskenin tanimlandigi bloka gectiginde bellekte olusturulurlar, block aktif oldugu surece aktif kalirlar, ve ilgili bloktan cikildiginda yok edilirler. Automatic degiskenlere, kullanilmadan once programci tarafindan baslangic degerleri atanmali 2/22/2019 Java'da Programlama

Class Scope & Block Scope Bir class a ait methodlar ve instance variable lar class scope a sahiptir. Class scope class a ait kodun ‘{‘ ve ‘}’ arasinda kalan kod parcasidir. Bir block icerisinde tanimlanan degiskenler block scope a sahip olurlar. Block scope degiskenin tanimlandigi yerden baslayan ve blogun sonunu gosteren ‘}’ arasinda kalan kod bolgesidir. 2/22/2019 Java'da Programlama

import java.awt.Graphics; import java.applet.Applet; public class Scoping extends Applet { int x=1; public void paint(Graphics g) { g.drawString("See command line for output",25,25); int x=5; System.out.println("local x in paint is "+x); a(); b(); System.out.println("\nlocal x in paint is " + x); } 2/22/2019 Java'da Programlama

System.out.println("\nlocal x in a is " +x+ " after entering a"); ++x; void a(){ int x=25; System.out.println("\nlocal x in a is " +x+ " after entering a"); ++x; System.out.println("local x in a is " +x +" before exiting a"); } void b(){ System.out.println("\ninstance variable x is " +x+ " on entering b"); x*=10; System.out.println("instance variable x is " +x+ " on exiting a"); 2/22/2019 Java'da Programlama

2/22/2019 Java'da Programlama

Recursion (Kendi kendini cagirma) Genellikle bir metod baska bir metodu cagirir. Ancak bazi durumlarda bir metodun kendi kendini cagirmasi soz konusu olabilir Ozellikle bazi problemlerin cozumunde cok buyuk kolaylik saglar Bazi problemler dogasindan dolayi recursive olarakkolayca ifade edilebilirler. 2/22/2019 Java'da Programlama

Recursion Kendi kendini direkt veya dolayli olarak baska bir method tarafindan cagiran metodlara recursive metod denir. 2/22/2019 Java'da Programlama

Recursive cozum Recursive cozumde iki farkli durum var Base case (durum): Problem yeterince basitse dogrudan cozum getirilir Recursion case: Eger problem yeterince basit degilse (base case e uymuyorsa), problem daha kucuk boya recursion suretiyle indirgenir. 2/22/2019 Java'da Programlama

Ornek: Factorial Factorial problemi asagidaki gibi tanimlanir. n!=nx(n-1)x(n-2)x(n-3)x ……x1 Bu fonksiyonu asagidaki gibi ifade edebiliriz. 1, eger n=1 veya n=0 // base case f(n) = nxf(n-1), diger durumlarda // recursion 2/22/2019 Java'da Programlama

Factorial problemi cozumu 1. Cozum: iterative cozum. factorial =1; for(int counter = number; counter >=1; counter--) factorial *= counter; 2/22/2019 Java'da Programlama

Factorial problemi cozumu 2. Cozum: recursive cozum if(number == 0 || number ==1) return 1; else return number * factorial(number –1); 2/22/2019 Java'da Programlama

2. Cozume devam 5! 5! 5!=5x24 =120 donduruldu 5x4! 5x4! 4!=4x6 =24 donduruldu 4x3! 4x3! 3!=3x2 =6 donduruldu 3x2! 3x2! 2!=2x1 =2 donduruldu 2x1! 2x1! 1 donduruldu 1 1 Recurive cagrimlar Her bir recursive cagrimdan donen degerler 2/22/2019 Java'da Programlama

Fibonacci fonksiyonu 0, eger n=0 fibonacci(n) = 1, eger n=1 fibonacci(n-1) + fibonacci(n-2) 2/22/2019 Java'da Programlama

package PackageFibonacciTest; import java.awt.*; import java.applet.Applet; import java.awt.event.*; /** * */ public class ClassFibonacciTest extends Applet implements ActionListener{ Label numLabel, resultLabel; TextField num, result; 2/22/2019 Java'da Programlama

numLabel= new Label("Enter an integer and press return"); public void init(){ numLabel= new Label("Enter an integer and press return"); num = new TextField(10); num.addActionListener(this); resultLabel = new Label("Fibonacci value is"); result = new TextField(15); result.setEditable(false); add(numLabel); add(num); add(resultLabel); add(result); } 2/22/2019 Java'da Programlama

public void actionPerformed(ActionEvent e) { long number, fibonacciValue; number=Long.parseLong(num.getText()); showStatus("Calculating ..."); fibonacciValue=fibonacci(number); showStatus("Done."); result.setText(Long.toString(fibonacciValue)); } long fibonacci(long n){ if(n==0 || n==1) return n; // base case else return fibonacci(n-1)+fibonacci(n-2); // recursive case 2/22/2019 Java'da Programlama

2/22/2019 Java'da Programlama

Method Overloading Java ayni class a ait olmak uzere ayni isimli fakat farkli fonksiyon signature (imzasi) sahip birden fazla method un tanimlanmasina olanak saglar. Buna method overloading denir. Fonksiyon signature u ne belirler Method un ismi Parametrelerin sayisi Parametrelerin tipleri Parametrelerin sirasi 2/22/2019 Java'da Programlama

Ornek package MethodOverloadPackage; import java.awt.Graphics; import java.applet.Applet; public class MethodOverloadClass extends java.applet.Applet { /** Initialization method that will be called after the applet is loaded * into the browser. */ public void init() { // TODO start asynchronous download of heavy resources } // TODO overwrite start(), stop() and destroy() methods 2/22/2019 Java'da Programlama

Burada ayni isimli (square) fonksiyonu overload edilmis. public void paint(Graphics g) { g.drawString("The square of integer 7 is " +square(7), 25,25); g.drawString("The square of double 7.5 is " + square(7.5),25,40); } int square(int x) { return x*x; double square(double y) { return y*y; Burada ayni isimli (square) fonksiyonu overload edilmis. Iki fonksiyonu birbirinden ayirt edici husus, her ne kadar ikisi de tek parametre aliyorlarsa da parametrelerinin tipleri farkli. 2/22/2019 Java'da Programlama

2/22/2019 Java'da Programlama