Ok. Abstrahuje chwilowo od tego że ten kod nie ma totalnie sensu i na 99% nie zrozumiałeś polecenia...
Kod który podałeś działa. Więc może jednak łaskawie pokażesz prawdziwy kod którego używasz? o_O
Tak wygląda skrócony kod który działa:
package com.company;
import java.io.*;
import java.util.Vector;
class Osoba {
private String imie, nazwisko, email;
public Osoba() {
dodajOsobe(this);
}
public Osoba(String im, String nazw, String em) {
setImie(im);
setNazwisko(nazw);
setEmail(em);
dodajOsobe(this);
}
public String toString() {
return "\nImię: " + getImie() + "\nNazwisko: " + getNazwisko()
+ "\nemail: " + getEmail();
}
public void setEmail(String email) {
this.email = email;
}
public String getImie(){
return imie;
}
public void setImie(String imie) {
this.imie = imie;
}
public String getNazwisko() {
return nazwisko;
}
public void setNazwisko(String nazwisko) {
this.nazwisko = nazwisko;
}
public String getEmail() {
return email;
}
private static Vector<Osoba> ekstensja = new Vector<Osoba>();
private static void dodajOsobe(Osoba os) {
ekstensja.add(os);
}
private static void usunOsobe(Osoba os) {
ekstensja.remove(os);
}
public static void pokazEkstensje() {
System.out.println("Ekstensja klasy Osoba: ");
for (Osoba os : ekstensja) {
System.out.println(os);
}
}
}
class Sprzedawca extends Osoba{
private boolean pelnoletni;
private String adres;
private long nr_telefonu;
private String nick;
public Sprzedawca() {
dodajSprzedawce(this);
}
public Sprzedawca(String imie, String nazwisko, String email,
boolean pelnoletni, String adres, long nr_telefonu, String nick) {
super(imie, nazwisko, email);
this.pelnoletni = pelnoletni;
this.adres = adres;
this.nr_telefonu = nr_telefonu;
this.nick = nick;
dodajSprzedawce(this);
}
public Sprzedawca(String imie, String nazwisko, String email,
boolean pelnoletni, String adres, long nr_telefonu) {
super(imie, nazwisko, email);
this.pelnoletni = pelnoletni;
this.adres = adres;
this.nr_telefonu = nr_telefonu;
dodajSprzedawce(this);
}
public String zmienAdres(String adres) {
this.adres = adres;
return adres;
}
public long zmienNrTelefonu(long nr_telefonu) {
this.nr_telefonu = nr_telefonu;
return nr_telefonu;
}
public String toString() {
return super.toString() + "\nPełnoletni: " + pelnoletni + "\nAdres: "
+ adres + "\nNr. telefonu: " + nr_telefonu;
}
private static Vector<Sprzedawca> ekstensja = new Vector<Sprzedawca>();
static void dodajSprzedawce(Sprzedawca u) {
ekstensja.add(u);
}
static void usunSprzedawce(Sprzedawca u) {
ekstensja.remove(u);
}
private void write(DataOutputStream stream) throws IOException {
stream.writeUTF(getImie());
stream.writeUTF(getNazwisko());
stream.writeUTF(getEmail());
}
private void read(DataInputStream stream) throws IOException {
setImie(stream.readUTF());
setNazwisko(stream.readUTF());
setEmail(stream.readUTF());
}
public static void zapiszEkstensje(DataOutputStream stream)
throws IOException {
stream.writeInt(ekstensja.size());
for (Sprzedawca u : ekstensja) {
u.write(stream);
}
}
public static void pokazEkstensje() {
System.out.println("Ekstensja klasy Uzytkownik: ");
for (Sprzedawca u : ekstensja) {
System.out.println(u);
}
}
public static void odczytajEkstensje(DataInputStream stream)
throws IOException {
Sprzedawca u = null;
int liczbaObiektow = stream.readInt();
ekstensja.clear();
for (int i = 0; i < liczbaObiektow; i++) {
u = new Sprzedawca();
u.read(stream);
}
}
}
public class Test6 {
public static void main(String[] args) {
final String ekstensjaPlik = "d:\\Ekstensja.bin";
Sprzedawca u1 = new Sprzedawca("Tomasz", "Ojrzynski", "[email protected]",
true, "Koszykowa 86", 678535687);
Sprzedawca u2 = new Sprzedawca("Grzegorz", "Kowalski", "[email protected]",
false, "Sernacka 21", 579320148);
u1.zmienAdres("Lipowa 12");
u1.zmienNrTelefonu(657345837);
try {
DataOutputStream out2 = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(ekstensjaPlik)));
Sprzedawca.zapiszEkstensje(out2);
} catch (Exception exc) {
exc.printStackTrace();
}
}
}
Magia?