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() {
}
}
