Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Methods 2/22/2019 Java'da Programlama.

Benzer bir sunumlar


... konulu sunumlar: "Methods 2/22/2019 Java'da Programlama."— Sunum transkripti:

1 Methods 2/22/2019 Java'da Programlama

2 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

3 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

4 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

5 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

6 2/22/2019 Java'da Programlama

7 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

8 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

9 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

10 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

11 2/22/2019 Java'da Programlama

12 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

13 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

14 2/22/2019 Java'da Programlama

15 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

16 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

17 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

18 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

19 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

20 2/22/2019 Java'da Programlama

21 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

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

23 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

24 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

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

26 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

27 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

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

29 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

30 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

31 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

32 2/22/2019 Java'da Programlama

33 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

34 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

35 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

36 2/22/2019 Java'da Programlama


"Methods 2/22/2019 Java'da Programlama." indir ppt

Benzer bir sunumlar


Google Reklamları