folder Tahribat.com Forumları
linefolder Java
linefolder Java Fonksiyondan Dönen Değeri Nasıl Gösterebilirim?



Java Fonksiyondan Dönen Değeri Nasıl Gösterebilirim?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    gossipgirltr
    gossipgirltr's avatar
    Kayıt Tarihi: 25/Eylül/2015
    Dişi

    Merhaba arkadaşlar, Javada SMN adlı sınıfın  içinde SMN sınıfı türünden değer döndüren fonksiyonum var. Başka bir sınıfım içinde bu fonksiyona değer yolladığımda nesne türünden değer döndürdüğünden bu değerleri nasıl gösterebilirim.?

    public static SMN compile(String pattern) {

    char[] x = pattern.toCharArray();

    int ell, m = x.length;

    Cell[] list = new Cell[m];

    ell = preSimon(x, list);

    SMN smn = new SMN();

    smn.ell = ell;

    smn.list = list;

    smn.m = m;

    smn.x = x;

    return smn;

    }


    Hayatta en pahalı şey tecrübedir. Çünkü kazanmak için , Kaybetmek gerekir.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    sorun cok acik degil.. ne yapmak istedigini anlamadim, hangi degerleri gostermek istiyorsun ve nasil gostermek niyetindesin?

    ayrica SMN sinifinin icinde tekrar neden SMN turunden bir nesne donderme ihtiyaci duyurorsun ki? Bunun yerine direk ilgili sinifin ell,list, m ve x propertylerine deger atayabilirisn.. ve return olarak da "this" i donderebilirsin tabi metodun statik olmamasi lazim. Ayrica suan yaptigin isi direk SMN nin kurucu metodunda (constructor) da yaparsan sana nesneyi donderir.. yani 

    public SMN (String pattern)

    {

    -------

    }

     

    cagirirken de 

    SMN nesnem = new SMN("benim pattern");

    dersen

    mesela x e ulasmak icin nesnem.x i kullanabilirsin

    ama sordugun sey kendi  yaptigin fonksiyonun uzerinden ulasmak ise metod static oldugu icin soyle yapabilirsin 

    SNM nesne = SNM.compile("benim pattern");

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    Amacın ney hocam ?

    Factory pattern' i anımsattı. 

     

    Çözüm olarak da,

    SMN obj = SMN.compile("pattern"); dedikten sonra obj üzerinden erişebilirsin.

     

     

    SMN Class :

     

    public class SMN {
    
     
    
    private int list;
    
    private String ell;
    
    private int m;
    
    private int x;
    
     
    
    public static SMN compile(String pattern) {
    
     
    
    char[] x = pattern.toCharArray();
    
     
    
     
    
    SMN smn = new SMN();
    
     
    
    smn.ell = pattern;
    
     
    
    smn.list = 10;
    
     
    
    smn.m = 15;
    
     
    
    smn.x = 20;
    
     
    
    return smn;
    
     
    
    }
    
     
    
    public int getX() {
    
    return x;
    
    }
    
     
    
    public int getM() {
    
    return m;
    
    }
    
     
    
    public int getList() {
    
    return list;
    
    }
    
     
    
    public String getEll() {
    
    return ell;
    
    }
    
    }
    
     
    
     

     

     

    Main Class :

     

     

    public class Main {
    
    
    public static void main(String[] args) {
    
    // TODO Auto-generated method stub
    
    SMN smn = SMN.compile("test");
    System.out.println(smn.getEll());
    
    
    SMN test = SMN.compile("ozgun");
    System.out.println(test.getEll());
    }
    
    }


     

    Setter getter yerine direk public yaparsan da smn.x diyerek direk obje üzerinden erişim yapabilirsin.

    Ayrıca ell, list, m ve x değerlerinin bu sınıfta tanımlı olması gerekmekte.

    Cell tipini falan bilmeden hepsi int olacak şekilde bir örnek yazdım, bakarsın.

    Tabi bu yukardaki sınıfın mantıklı olabilmesi için constructor' ının private tanımlı olması gerekiyor.

     

    Aşağıdaki linklerden de faydalanabilirsin :

    http://www.coderanch.com/t/584179/java/java/Creating-object-static-method

    http://www.tutorialspoint.com/design_pattern/factory_pattern.htm

    http://alvinalexander.com/java/java-factory-pattern-example

     

    Static fonksiyon ile aynı sınıftan obje döndürmeyi factory pattern' da kullanılan birşey. Amacını bilmediğim için bişey diyemedim ama verdiğim linklerde factory pattern hakkında fikir sahibi olabilirsin.

     

     

    ozgunlu tarafından 16/Mar/16 13:44 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    gossipgirltr
    gossipgirltr's avatar
    Kayıt Tarihi: 25/Eylül/2015
    Dişi
    ozgunlu bunu yazdı

    Amacın ney hocam ?

    Factory pattern' i anımsattı. 

     

    Çözüm olarak da,

    SMN obj = SMN.compile("pattern"); dedikten sonra obj üzerinden erişebilirsin.

     

     

    SMN Class :

     

    public class SMN {
    
     
    
    private int list;
    
    private String ell;
    
    private int m;
    
    private int x;
    
     
    
    public static SMN compile(String pattern) {
    
     
    
    char[] x = pattern.toCharArray();
    
     
    
     
    
    SMN smn = new SMN();
    
     
    
    smn.ell = pattern;
    
     
    
    smn.list = 10;
    
     
    
    smn.m = 15;
    
     
    
    smn.x = 20;
    
     
    
    return smn;
    
     
    
    }
    
     
    
    public int getX() {
    
    return x;
    
    }
    
     
    
    public int getM() {
    
    return m;
    
    }
    
     
    
    public int getList() {
    
    return list;
    
    }
    
     
    
    public String getEll() {
    
    return ell;
    
    }
    
    }
    
     
    
     

     

     

    Main Class :

     

     

    public class Main {
    
    
    public static void main(String[] args) {
    
    // TODO Auto-generated method stub
    
    SMN smn = SMN.compile("test");
    System.out.println(smn.getEll());
    
    
    SMN test = SMN.compile("ozgun");
    System.out.println(test.getEll());
    }
    
    }


     

    Setter getter yerine direk public yaparsan da smn.x diyerek direk obje üzerinden erişim yapabilirsin.

    Ayrıca ell, list, m ve x değerlerinin bu sınıfta tanımlı olması gerekmekte.

    Cell tipini falan bilmeden hepsi int olacak şekilde bir örnek yazdım, bakarsın.

    Tabi bu yukardaki sınıfın mantıklı olabilmesi için constructor' ının private tanımlı olması gerekiyor.

     

    Aşağıdaki linklerden de faydalanabilirsin :

    http://www.coderanch.com/t/584179/java/java/Creating-object-static-method

    http://www.tutorialspoint.com/design_pattern/factory_pattern.htm

    http://alvinalexander.com/java/java-factory-pattern-example

     

    Static fonksiyon ile aynı sınıftan obje döndürmeyi factory pattern' da kullanılan birşey. Amacını bilmediğim için bişey diyemedim ama verdiğim linklerde factory pattern hakkında fikir sahibi olabilirsin.

     

     

     

    public class SMN {
    
    	public static int getTransition(char[] x, int p, Cell[] lst, char c) {
    		int m = x.length;
    		Cell cell;
    
    		if (p < m - 1 && x[p + 1] == c)
    			return (p + 1);
    		else if (p > -1) {
    			cell = lst[p];
    			while (cell != null)
    				if (x[cell.element] == c)
    					return (cell.element);
    				else
    					cell = cell.next;
    			return (-1);
    		} else
    			return (-1);
    	}
    
    	public static void setTransition(int p, int q, Cell[] list) {
    		Cell cell = new Cell();
    
    		cell.element = q;
    		cell.next = list[p];
    		list[p] = cell;
    	}
    
    	public static int preSimon(char[] x, Cell[] list) {
    		int i, k, ell, m = x.length;
    		Cell cell;
    
    		for (i = 0; i < (m - 2); i++)
    			list[i] = null;
    		ell = -1;
    		for (i = 1; i < m; ++i) {
    			k = ell;
    			cell = (ell == -1 ? null : list[k]);
    			ell = -1;
    			if (x[i] == x[k + 1])
    				ell = k + 1;
    			else
    				setTransition(i - 1, k + 1, list);
    			while (cell != null) {
    				k = cell.element;
    				if (x[i] == x[k])
    					ell = k;
    				else
    					setTransition(i - 1, k, list);
    				cell = cell.next;
    			}
    		}
    		return (ell);
    	}
    
    	public  List findAll(String pattern, String source) {
    		char[] x = pattern.toCharArray(), y = source.toCharArray();
    		int j, ell, state, m = x.length, n = y.length;
    		Cell[] list = new Cell[m];
    		List result = new ArrayList();
    
    		/* Preprocessing */
    		ell = preSimon(x, list);
    
    		/* Searching */
    		for (state = -1, j = 0; j < n; ++j) {
    			state = getTransition(x, state, list, y[j]);
    			if (state >= m - 1) {
    				result.add(j - m + 1);
    				state = ell;
    			}
    		}
    		
    		return result;
    	}
    	
    	public SMN compile(String pattern) {
    		char[] x = pattern.toCharArray();
    		int ell, m = x.length;
    		Cell[] list = new Cell[m];
    
    		ell = preSimon(x, list);
    		
    		SMN smn = new SMN();
    		smn.ell = ell;
    		smn.list = list;
    		smn.m = m;
    		smn.x = x;
    		
    		return smn;
    	}
    	
    	public List findAll(String source) {
    		char[] y = source.toCharArray();
    		int j, state, n = y.length;
    		List result = new ArrayList();
    		
    		for (state = -1, j = 0; j < n; ++j) {
    			state = getTransition(x, state, list, y[j]);
    			if (state >= m - 1) {
    				result.add(j - m + 1);
    				state = ell;
    			}
    		}
    		
    		return result;
    	}
    	
    	private char[] x;
    	private int ell, m;
    	private Cell[] list;
    
    	private static class Cell {
    		int element;
    		Cell next;
    	}
    
    }
    j

    SMN sınıfı bu hocam,  formda metin içinde paterni aratıyorum. findall  metodunu yaptım ama compile metodundan geriye dönen değerleri nasıl göstericeğimi bilmiyorum.

     

    gossipgirltr tarafından 16/Mar/16 13:54 tarihinde düzenlenmiştir

    Hayatta en pahalı şey tecrübedir. Çünkü kazanmak için , Kaybetmek gerekir.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    gossipgirltr
    gossipgirltr's avatar
    Kayıt Tarihi: 25/Eylül/2015
    Dişi

    SMN asd1=AS.compile(textField.getText()); çağırıp fonksiyonun döndürdüğü değerleri döngüyle nasıl gösterebilirim?


    Hayatta en pahalı şey tecrübedir. Çünkü kazanmak için , Kaybetmek gerekir.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    gossipgirltr bunu yazdı

    SMN asd1=AS.compile(textField.getText()); çağırıp fonksiyonun döndürdüğü değerleri döngüyle nasıl gösterebilirim?

    Selam hocam;

    public void compile(String pattern) {
    
            char[] x = pattern.toCharArray();
    
            int ell, m = x.length;
    
            Cell[] list = new Cell[m];
     
    
            ell = preSimon(x, list);
    
             
            this.ell = ell;
    
            this.list = list;
    
            this.m = m;
    
            this.x = x; 
    
        }
    
       private static class Cell {
            int element;
            Cell next;
        }
     
        public char[] getX() {
        	return x;
        }
        
        public int getEll() {
        	return ell;
        }
        
        public int getM() {
        	return m;
        }
        
        public Cell[] getList() {
        	return list;
        }
    

     

    Main Class 

    SMN smn = new SMN();

    smn.compile("pattern");

    System.out.println(smn.getX());

     

    Sorun için ise eğer döngü içindeki tüm objeler senin için değerliyse, yani değerleri kaybetmek istemiyorsan. Birden fazla obje yaratacaksın.

    Obje dizisi oluşturman gerekiyor. Ama sadece değerlere erişmek istiyorsan, smn diye yarattığımız tek obje üzerinden compile metodunu döngü içerisine alıp devamlı çağırabilirsin.

    Ama unutma ki her çağırdığında önceki değerinin üzerine yazmış olacak, çünkü aynı obje ile erişiyorsun.

     

    compile metodundan birşey döndürmene gerek yok, sen zaten bir obje yarattığında o değerler ve metotlar o objenin oluyor. Ve sen çağırdığında o objenin metodunu, içinde değişen sınıfa ait değerler yine sadece o objeye ait oluyor.

    ozgunlu tarafından 16/Mar/16 14:11 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    gossipgirltr
    gossipgirltr's avatar
    Kayıt Tarihi: 25/Eylül/2015
    Dişi
    ozgunlu bunu yazdı
    gossipgirltr bunu yazdı

    SMN asd1=AS.compile(textField.getText()); çağırıp fonksiyonun döndürdüğü değerleri döngüyle nasıl gösterebilirim?

    Selam hocam;

    public void compile(String pattern) {
    
            char[] x = pattern.toCharArray();
    
            int ell, m = x.length;
    
            Cell[] list = new Cell[m];
     
    
            ell = preSimon(x, list);
    
             
            this.ell = ell;
    
            this.list = list;
    
            this.m = m;
    
            this.x = x; 
    
        }
    
       private static class Cell {
            int element;
            Cell next;
        }
     
        public char[] getX() {
        	return x;
        }
        
        public int getEll() {
        	return ell;
        }
        
        public int getM() {
        	return m;
        }
        
        public Cell[] getList() {
        	return list;
        }
    

     

    Main Class 

    SMN smn = new SMN();

    smn.compile("pattern");

    System.out.println(smn.getX());

     

    Sorun için ise eğer döngü içindeki tüm objeler senin için değerliyse, yani değerleri kaybetmek istemiyorsan. Birden fazla obje yaratacaksın.

    Obje dizisi oluşturman gerekiyor. Ama sadece değerlere erişmek istiyorsan, smn diye yarattığımız tek obje üzerinden compile metodunu döngü içerisine alıp devamlı çağırabilirsin.

    Ama unutma ki her çağırdığında önceki değerinin üzerine yazmış olacak, çünkü aynı obje ile erişiyorsun.

     

    compile metodundan birşey döndürmene gerek yok, sen zaten bir obje yarattığında o değerler ve metotlar o objenin oluyor. Ve sen çağırdığında o objenin metodunu, içinde değişen sınıfa ait değerler yine sadece o objeye ait oluyor.

    Compile metodu burda ne yapıyor tam anlamadım. fonksiyonun yazılışı kod'taki gibi olmalı ana programdam o fonksiyona değer göndürüp formda göstermem gerekiyor. Ama fonksiyon SMN sınıfı türünde değer döndürüyor. Javada nesneleri döngülerle nasıl göstericeğimi internetten araştırdım ama genel şeylerin gösterimi var. Sınıf türünden değer döndüren hiç görmedim. Programı size atsam bakabilir misiniz?


    Hayatta en pahalı şey tecrübedir. Çünkü kazanmak için , Kaybetmek gerekir.
Toplam Hit: 2134 Toplam Mesaj: 7
java