Wpis z mikrobloga

#programowanie | #java

Tracę nadzieję... Stworzyłem taki sobie tworek jako custom class:

public class Worker {

String name = null;

String surname = null;

int age = 0;

void add(String nm, String sr, int a){

name = new String(nm);

surname = new String(sr);

age = a;

}

}

oraz klasę główną (wybaczcie, nie znam profesjonalnego nazewnictwa jeszcze):

public class Firma {

public static void main(String[] args) {

Worker[] worker = new Worker[3];

for(int i=0;i<3;i++){

worker[i].add("Ad", "naz", i);

}

}

}

Przy kompilacji wyrzuca błąd:

Exception in thread "main" java.lang.NullPointerException

at Firma.main(Firma.java:6)

Nie jestem tego pewien, ale to chyba znaczy, że odwołuję się do niezainicjowanych obiektów (?). Obiektowe dopiero zacząłem (pierwsze starcie, wybaczcie za noobienie). Co tu jest źle? #halp
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Timyg:

1. Metoda add z Workera jest bez sensu. Takie rzeczy powinien robić konstruktor.

2. new String() się nie używa. Zamiast tego używaj String s = "jakaś wartość";
  • Odpowiedz
@Timyg: Ode mnie jeszcze jedna porada. Jak będziesz porównywał obiekty w Javie przez == to Ci Bozia rączki u-------i przy samej dupie. A! Dodawanie stringów w Javie poprzez + to jedyny przeładowany operator w Javie.
  • Odpowiedz
Exception in thread "main" java.lang.NullPointerException


at Firma.main(Firma.java:6)

Nie jestem tego pewien, ale to chyba znaczy, że odwołuję się do niezainicjowanych obiektów (?).


@
  • Odpowiedz
  • 0
@mathix: jestem w klasie z matmą rozszerzaną aż do poziomu olimpijskiego, może dlatego :D Muszę jeszcze poczytać o nazewnictwie zmiennych, ale używam "zangielszczonych" żeby o język zadbać co nieco :)
  • Odpowiedz
  • 0
@mathix: aaa, tak, z tym się zgodzę :D. Ale to dlatego, że nie znałem jeszcze konstruktora i te dziwne parametry były tymczasowe :P. Ale kiedyś się natknąłem, że powinno się jeszcze w nazwie skrótowo zawierać typ. To może był cpp, nie pamiętam
  • Odpowiedz