1. sayfa
NullPointer iste : ) Degiskenlerinden biri veya daha fazlasi tanimlanmis ama deger atanmamis. Ya da 5 elemanli bir listen var mesela,sen liste [5] kullanmissindir.O da tanimlanmamis sonuçta. |
Keske koduda atsaydin hocam |
import java.util.Scanner; public class ForDöngüsü { private static Scanner scan; public static void main(String[] args) { Scanner sc=new Scanner(System.in); PazarListesi liste = new PazarListesi(6); liste.listeyeEkle("Ekmek"); liste.listeyeEkle("Su"); liste.listeyeEkle("Gofret"); liste.listeyeEkle("Su0"); liste.listeyeEkle("Su1"); liste.listeyeEkle("Su2"); System.out.println("İlk Hali "); liste.yaz(); System.out.println("Index gir :"); int a = sc.nextInt(); System.out.println("Liste gir :"); String b = sc.next(); liste.ekle(b,a); System.out.print("Son Hali!"); liste.yaz(); } } |
public class PazarListesi { String[] liste; int elemanSayisi; int sinir; public PazarListesi(int elemanKapasitesi) { liste= new String[elemanKapasitesi]; elemanSayisi=0; sinir= elemanKapasitesi; } public void listeyeEkle ( String eklenecekOlan) { if(elemanSayisi < sinir) { liste[elemanSayisi]= eklenecekOlan; elemanSayisi++; } else { System.out.println("Boş Yer Kalmadı"); } } public void yaz() { for(int i =0; i< elemanSayisi; i++) { System.out.println(liste); } } public void ekle(String eklenecekEleman, int index) { for(int i = elemanSayisi -1; i >= index; i--) { liste[i+1]=liste; } liste[index]=eklenecekEleman; elemanSayisi++; } } |
2 tane class var ikisinide ekledim. şimdiden teşekkürler |
hiç olmamış, C programı yazar gibi Java kullanmışsın. öncelikle dizi boyunu ayrı bir yerde tutmana gerek yok, Java'da her array'de length field olur. fakat yapmak istediğin şey için Java'da Collections Framework var, mesela ArrayList gibi.. böyle döngüyle array sonuna eklemek, elemanları kaydırmaya çalışmak falan yok. sorun muhtemelen ekle() içinde. |
Youtube'da biri videolar çekmiş onları izliyorum. daha 19. videodayım o yüzden pek bir bilgim yok yani:) öğrendikçe daha iyi olur belki. |
seyrederek değil okuyarak öğrenilir bu işler. doğru düzgün kitaplarla başlayın. videoyu çeken neyin nesi kimin fesi? boş işlerle uğraşıyorsun. |
private static Scanner scan; Sil bunu |
Bir kere ForDöngüsü diye class adı olmaz, daha baştan kafam karıştı. Ekle metodunda index tutman yanlış. Onu PazarListesi'ne bir değişken olarak tutman lazım. Hem böylelikle her listede toplam kaç eleman olduğuna getter setter metodlarıyla erişebilirsin. Her seferinde for döngüsü çalıştırmaktan da kurtulursun. yaz matodunta bütün listeyi içindeki eleman sayısı kadar kez bastırmaya çalışmışın. bir kez bastırman yeterli. for döngüsünü listesinin i'nci elemanını bastırmak üzere ayarlaman lazım. listeyeEkle metodu doğru görünüyor. Sorun ekle() metodunda. index parametresini kaldırıp ona göre bi yapı kur düzgün çalışır. Bir de genel olarak nullpointer exception aldığın yeri bulabilmek için stacktrace'de hatanın verildiği ilk yere ulaşana kadar hataları takip edersen nerden kaynaklandığın bulursun, 26. satır demiş ama ben burda hangi satır olduğunu bilmiyorum. |
1. sayfa
Bir kod yazdım ama çalıştırırken aşağıdaki hatayı veriyor. Nedeni nedir acaba?
Listeye Exception in thread "main" java.lang.NullPointerException
at ForDöngüsü.main(ForDöngüsü.java:26)
Teşekkürler