Dostum öncelikle niçin her fonksiyonu statik tanımladın ? Classı instance ettirmeden kullancaksan niçin boş constructer da tanımladın ?
Ayrıca fonksiyonlarına limit parametresi almışsın ama kabataslak göz gezdirdim herhangi bir yerde kullanmamışsın sanırım.
Class yapısını biraz daha iyi kavramanı öneririm. Her şeyi statik tanımlamak yanlış bir kullanım belleğe fazla yük bindirecektir. Class isimlerinde (zorunluluk olmamakla beraber - sadece kodlama standartı olarak, başkasının kodunu okuyabilmesi için) fiil değil isim sözcükleri kullanılır.
Dinamik bir dizi yapısı istiyorsan bunun için javada bulunan List interface'ini implement alan ArrayList yapısını kullanmanı tavsiye ederim.
teşekkürler cevabınız için. önerilerini dikkate alacağım kesinlikle henüz tam kavrayamadığım şeyler var o yüzden pratik yaparak anlamaya çalışıyorum. umarım kısa sürede düzeltebilirim.
evet static olmadan da tanımlaya bilirdim, fakat belleğe fazla yük bindireceğini bilmiyordum amacına göre kullanırım artık.
limit parametresini dizi kapasitesini belirlemek için kullanıyorum.
Methodlara dizi ve kapasiteyi gönderdim. Switch -case kısmına bakarsanız göreceksiniz.
sorunumun bir kısmını çözdüm ama methoddan string arrayi döndüremedim.
listeyi görüntülemek için 3 numarayı seçince ilk bilgileri listeliyor. eklenen ürünü listelemiyor.
bu arada sizin dediklerinizi dikkate alarak birkaç değişiklik yaptım umarım daha iyi olmuştur lütfen eksiklerim hatalarımı belirtirsen sevinirim.
constructor kaldırıp deneyim dedim bu sefer programda çeşitli hatalar almaya başladım. o yüzden constructor class'ını aslında tam ne yaptığını açıklayamam :S
şimdi 2 adet java class oluşturdum main metodu ve diğer class dosyası.
******** Main metodu *********
public class AlisverisProgrami {
public static void main(String[] args) {
ListeOlusturma n1=new ListeOlusturma();
}
} import java.util.*;
public class ListeOlusturma {
static Scanner veri=new Scanner (System.in);
String MenuSecim;
public ListeOlusturma () {
String [] sepet =new String [0];
String [] YeniSepet=new String [0];
int kapasite=0;
do {
System.out.println("1- Alışveriş Listesi Oluştur");
System.out.println("2- Alışveriş Listesi Göster");
System.out.println("3- Listeye Ekle");
System.out.println("4- Listeden Sil");
System.out.println("5- Programdan Çıkış");
MenuSecim= veri.nextLine() ;
switch (MenuSecim) {
case "1":
System.out.println("Liste Kapasitesini giriniz");
kapasite = Integer.parseInt(veri.nextLine());
sepet =new String [kapasite];
ListeOlustur(sepet, kapasite);
break;
case "2":
ListeGoster(sepet, kapasite);
break;
case "3":
UrunEkleme(sepet,kapasite);
break;
case "4":
System.out.println("Listeden silme işlemi");break;
}
}while (!MenuSecim.equals("5")); System.out.println("Programdan Çıkış yapıldı");
}
public void ListeOlustur(String [] array, int limit) {
for ( int i=0; i<array.length;++i){
System.out.println(i+1+ ". Ürünü Giriniz:");
array[i]=veri.nextLine();
}
}
public void ListeGoster(String [] array,int limit) {
System.out.println();
System.out.println("Alışveriş Listeniz:");
System.out.println();
for ( int i=0; i<array.length;i++){
System.out.println(array[i]);
}
System.out.println();
}
public String[] UrunEkleme(String [] array, int limit ) {
String [] YeniSepet= new String [array.length+1];
for (int i=0; i<array.length;i++) {
YeniSepet[i]=array[i];
}
System.out.println("Eklemek istediğiniz ürünü giriniz:");
String yeni_urun= veri.nextLine();
for(int i=limit ;i < YeniSepet.length;i++){
YeniSepet[i]=yeni_urun;
}
System.out.println("Yeni Ürün " +yeni_urun+ " Başarı ile Eklendi.");
for ( int i=0;i<YeniSepet.length; i++ ) {
System.out.println(YeniSepet [i]);
}
return YeniSepet;
}
}
son olarak UrunEkleme metodu çalışıyor mu diye metod içinde kontrol ediyorum. kod çalışıyor fakat değer döndürmüyor