Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Java / JSP

Cevapla
 
LinkBack Seçenekler
Eski 19/05/2008, 16:10   #1 (permalink)
such & ceza
 
the.halit Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 06/2006
Yer: Bursa - Osmangazi to İzmir - Görece
Mesaj: 35
Soru Extends etmede iki sınıf kullanmak ???

Shape diye bir abstract sınıf yazdım. ve bu sınıfı Circle, Rectangle gibi bir kaç sınıfa extends ediyorum. fakat aynı zamanda bu sınıflara JPanel'ide extends etmek istiyorum. tek bir sınıfa aynı anda iki sınıfı nasıl extens edebilirm ???

yada bunun yerine daha mantıklı bir yol varsa nedir nasıl yapabilirm ???

Kod:
class Circle extends Shape, JPanel
gibi ama bu şekilde hata veriyor....
__________________
EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ


Ne Mutlu TÜRKÜM Diyene !!!
the.halit hatta değil   Alıntı Yaparak Yanıtla
Eski 19/05/2008, 16:20   #2 (permalink)
İptal Durumu
 
Üyelik Tarihi: 12/2007
Mesaj: 892
Varsayılan

Java'da böyle birşey olmuyor diye biliyorum fakat şöyle birşey olabilir mi ?

Kod:
Sinifimiz extends JFrame
Digersinifimiz extends Sinifimiz
gibi ?
roksan hatta değil   Alıntı Yaparak Yanıtla
Eski 19/05/2008, 16:21   #3 (permalink)
such & ceza
 
the.halit Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 06/2006
Yer: Bursa - Osmangazi to İzmir - Görece
Mesaj: 35
Varsayılan

öyle denedim ama olmadı
__________________
EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ


Ne Mutlu TÜRKÜM Diyene !!!
the.halit hatta değil   Alıntı Yaparak Yanıtla
Eski 19/05/2008, 16:37   #4 (permalink)
İptal Durumu
 
Üyelik Tarihi: 12/2007
Mesaj: 892
Varsayılan

Java multi inheritance desteklemiyor. Bunu C'de interfacelerle yapıyorduk, çokta sık gereken birşey değildi.

Şöyle birşey deneyebilirsiniz belki, ben denemedim : class Circle extends Shape implements JPanel

Siz tam olarak ne yapmak istediğinizi yazarsanız belki başka çözüm önerileri sunulabilir...
roksan hatta değil   Alıntı Yaparak Yanıtla
Eski 19/05/2008, 17:02   #5 (permalink)
such & ceza
 
the.halit Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 06/2006
Yer: Bursa - Osmangazi to İzmir - Görece
Mesaj: 35
Varsayılan

ben bir çizim programı yapmak istiyorum. kare, daire, çizgi gibi şekiller çizen. kullanıcı boyutlarını ve koordinatlarını ekrana girecek. butonu bastığında çizim ekrana çizilecek.

işte bunun için bir tane abstract Shape sınıfı oluşturdum. daha sonrada Circle, Rectangle gibi şekil sınıfları oluşturdum. çizim işlemini yapan paint metodunu Shape sınıfı içine koydum ve diğer sınıflardan (Circle, Rectangle) override ettim. fakat bu diğer sınıflarda extends Shape yaptığım için çizim yaptıramıyorum.

çizimi yaptırmak için bu sınıfları extends JPanel etmem gerekiyor. bunun için netten örnekler araştırdım. bulduğum her örnek extends JPanel kullanıyordu. hatt a örneği aşağıda yazıyorum.

umarım ne yapmak istediğimi ve sorunumun ne olduğunu anlatabilmişimdir.

Kod:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;

class MyCanvas extends JPanel 
{
	public void paint(Graphics g) 
	{
		int q1,q2,q3,q4,q5,q6,q7;
		q1 = (int)(Math.random()*745);
		q2 = (int)(Math.random()*745);
		q3 = (int)(Math.random()*255);
		q4 = (int)(Math.random()*255);
		q5 = (int)(Math.random()*255);
		q6 = (int)(Math.random()*255);
		q7 = (int)(Math.random()*255);
		g.setColor(new Color(q5,q6,q7));
		g.drawRect(q1, q2, q3, q4);
	}
}

public class Deneme extends JFrame
{
	public static void main(String[] a) 
	{
	    final JFrame window = new JFrame();
	    JPanel panelUst = new JPanel();
	    panelUst.setBounds(0, 0, 500, 100);
	    panelUst.setBackground(Color.white);
	    
	    JButton buton = new JButton("ŞEKİL ÇİZ");
	    buton.addActionListener(new java.awt.event.ActionListener() {
	    	public void actionPerformed(java.awt.event.ActionEvent e) 
	    	{
	    		MyCanvas panelAlt = new MyCanvas();
	    		window.getContentPane().add(panelAlt);
	    		panelAlt.setBounds(0, 0, 1000, 1000);
	    	}
	    });
	    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    window.setBounds(100, 100, 1000, 1000);
	    window.getContentPane().add(panelUst);
	    panelUst.add(buton);
	    window.setVisible(true);
	}
}
__________________
EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ


Ne Mutlu TÜRKÜM Diyene !!!
the.halit hatta değil   Alıntı Yaparak Yanıtla
Eski 19/05/2008, 17:03   #6 (permalink)
such & ceza
 
the.halit Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 06/2006
Yer: Bursa - Osmangazi to İzmir - Görece
Mesaj: 35
Varsayılan

Alıntı:
roksan, mesajından alıntı: Mesajı Gör
Java multi inheritance desteklemiyor. Bunu C'de interfacelerle yapıyorduk, çokta sık gereken birşey değildi.

Şöyle birşey deneyebilirsiniz belki, ben denemedim : class Circle extends Shape implements JPanel

Siz tam olarak ne yapmak istediğinizi yazarsanız belki başka çözüm önerileri sunulabilir...
ayrıca sizin yazdığınız class Circle extends Shape implements JPanel yönteminide denedim fakat implements deyiminden sonra JPanel kabul etmiyor.
__________________
EGE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ


Ne Mutlu TÜRKÜM Diyene !!!
the.halit hatta değil   Alıntı Yaparak Yanıtla
Eski 19/05/2008, 17:03   #7 (permalink)
Eski Cevizci
 
mr1yh1 Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2005
Yer: samsun
Mesaj: 1,171
Varsayılan

java multiple inheritance'ı sadece interface'ler aracılığı ile destekler.
implementasyonun devralınması izin vermez.
bu model multiple-inheritance 'sınırlı' bir şekilde izin veriyor,
ama multiple-inheritance ile gelen problemleri de sıfıra indiriyor.
(metod adlarını çakışması, diamon problemi gibi ).
bu yaklaşımın destekleyicileri olduğu gibi, buna karşı olanlar da var.

ama yukarıdaki problem farklı :
Shape sınıfını JFrame den türetmek demek :
"her şekil bir penceredir" iddiasında bulunmaktır.
(yani generalization ya da 'is a' ilişkisi kuruyorsunuz).
bu yanlış olur.

ama bir Frame bir Shape nesnesi 'içerebilir' ve onu ekrana çizebilir
buna da Aggregation deniyor.
yani
class MyFrame extends JFrame{
...
private Shape shape; // çizilecek şekil
...
}
mr1yh1 hatta değil   Alıntı Yaparak Yanıtla
Eski 20/05/2008, 02:16   #8 (permalink)
hgedek
 
hgedek Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2006
Yer: Kocaeli
Mesaj: 141
Varsayılan

Acaba interface yazsa nasıl olur?Bildiğim kadarıyla çoklu kalıtımda bir method olabilir.
hgedek hatta değil   Alıntı Yaparak Yanıtla
Eski 20/05/2008, 14:26   #9 (permalink)
İptal Durumu
 
Üyelik Tarihi: 12/2007
Mesaj: 892
Varsayılan

Zaten mr1yh1'in de belirttiği gibi, java multi inheritance'i sadece interfaceler aracılığıyla destekliyor, onun dışında yapılmak istenilen şey belirtildiği gibi her sınıf bir JFrame'dir demek manasına gelir, aslında bu yanlış bir tanım değildir ancak başka amaçlarla kullanılacak sınıflarında JFrame'den türemesine yol açar, bu da müdahale yolunu kapatır, doğru birşey değildir...

Yapılamaz değildir ancak yapılması doğru değildir...

Bu durumda istenilen şey tam olarak kümeleme oluyor ancak bu da ihtiyacı karşılıyor mu bilmiyorum...
roksan hatta değil   Alıntı Yaparak Yanıtla
Eski 01/06/2008, 01:39   #10 (permalink)
Üye
 
Üyelik Tarihi: 12/2006
Mesaj: 2
Varsayılan

arkadaşlar bu çoklu kalıtım oalyı sadece vb 'de vardı c# ve javada sadece tek kalıtım verebilirsiniz!
ksksertac hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
POST etmede sorun mk1641 PHP 3 10/06/2007 03:39
include etmede sorun algoritma PHP 6 20/05/2007 14:56
joomla virtuemart bileşeni usd euro ytl aynı anda kullanmak kullanmak zafer_turan Uygulama Yazılımları / Hazır Betikler 0 05/08/2006 11:02
dosya download etmede sorun??? sali Javascript / DHTML / Ajax 2 31/07/2004 15:04
class (sınıf) kullanmak.. TanKian PHP 2 06/11/2003 17:20


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 07:53.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net