Pomoć : JAVA - Array of Objects

poruka: 4
|
čitano: 810
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
11 godina
neaktivan
offline
Pomoć : JAVA - Array of Objects

LP, nov sam što se tiće OOP pa bih trebao malu pomoć sa programom koji sam napisao.

 

Napravio sam polje objekata Tocka i omogucio unos proizvoljnog broja tocaka, sve radi ok osim jedne linije koda u konstruktoru Linija(). Označio sam sve u komentaru uz kod.

 

KOD:

 

import java.util.Scanner;

 

public class Start {

 

public static void main(String[] args) {

 

System.out.println("Unesite broj tocaka:");

Scanner unos = new Scanner(System.in);

int brojTocaka = unos.nextInt(); // unosimo broj Tocaka

Tocka[] tocka = new Tocka[brojTocaka];

 

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

System.out.printf("Unesite x[%d]:\n", i + 1);

Scanner unos2 = new Scanner(System.in);

double temp1 = unos2.nextDouble();// unosimo X koordinatu za svaku tocku

System.out.printf("Unesite y[%d]:\n", i + 1);

Scanner unos3 = new Scanner(System.in);

double temp2 = unos3.nextDouble();//unosimo Y koordinatu za svaku tocku

tocka[i] = new Tocka(temp1, temp2);// salje X i Y koordinate u konstruktor i kreira objekte

}

 

Linija lik = new Linija(tocka); // salje niz objekata Tocka[] u konstruktor Linija

 

}

}

 

-------------------------------------------------------------------

public class Tocka {

 

private double x, y;

 

public Tocka(double x, double y) {

this.x = x;

this.y = y;

}

 

public double getX() {

return x;

}

 

public double getY() {

return y;

}

 

public void setX(double x) {

this.x = x;

}

 

public void setY(double y) {

this.y = y;

}

}

 

-------------------------------------------------------------------

public class Linija {

 

public int brojTocaka;

Tocka[] t = new Tocka[brojTocaka];

 

public Linija(Tocka[] tockas) {               // konstruktor prihvaca niz objekata tipa Tocka

      this.brojTocaka = tockas.length;

 

    for (int i=0; i<tockas.length;i++){

 

         t[i] = new Tocka (tockas[i].getX(), tockas[i].getY());          // Ovdje je greska. U ovoj liniji mi javi da je greška.

/*   System.out.println("(" + tockas[i].getX() + ", " + tockas[i].getY() + ")");   --Ova linija koda radi bez problema (kad se zakomentira ona iznad), ispisuje sve točke iz polja koje smo predali konstruktoru. Znaci da Linija lik = new Linija(tocka); preda dobro niz u konstruktor i s njim se moze raditi. Sada mi nije jasno zasto u liniji iznad nece kreirati polje t iz tih predanih elemenata. */

 

}

 

}

 

public void setTocka() {

 

}

 

}

 

Poruka je uređivana zadnji put čet 10.7.2014 21:20 (brka7).
 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Pomoć : JAVA - Array of Objects
brka7 kaže...
public class Linija {

 

public int brojTocaka;

Tocka[] t = new Tocka[brojTocaka];

 

public Linija(Tocka[] tockas) { // konstruktor prihvaca niz objekata tipa Tocka

this.brojTocaka = tockas.length;

 

for (int i=0; i<tockas.length;i++){

t[i] = new Tocka (tockas[i].getX(), tockas[i].getY()); // Ovdje je greska. U ovoj liniji mi javi da je greška.

 

 

Ako dobro vidim/čitam, alociraš polje prije nego znaš broj elemenata. Koju grešku javlja?

 

Probaj Tocka[] t = new Tocka[brojTocaka] zamjeniti sa Tocka[] t;

 

i poslje this.brojTocaka = tockas.length; alociraj polje veličine koje ti treba sa  t = new Tocka[brojTocaka];

11 godina
neaktivan
offline
Pomoć : JAVA - Array of Objects

Hvala puno na brzom odgovoru, to je bilo to, a ja glavu razbijam na toj liniji koju je oznacio kao pogresnu :D

 

Znaci nisam mogao koristiti brojTocaka prije konstruktora, zato sto se u njemu tek dodjeli vrijednost.

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Pomoć : JAVA - Array of Objects

Upravo tako :) I uvijek se sjeti uz kod priložiti i grešku koju si dobio, zna ubrzati proces.

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice