• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przypisywanie nazw obiektów z tablicy stringów. ArrayList

Object Storage Arubacloud
0 głosów
168 wizyt
pytanie zadane 11 maja 2017 w Java przez Dorota95 Nowicjusz (210 p.)
edycja 11 maja 2017 przez Dorota95

Witajcie,
Chciałabym w pętli zainicjować nowe obiekty w klasie, do tego chciałabym użyć tablicy stringów z której będę czytać nazwy obiektów. Oto kod
 


package laborki4;

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;

public class wektor {
    String nazwa;
    float x;
    float y;
    
    //inicjalizacja konstruktora

    /**
     *
     * @param N
     * @param X
     * @param Y
     */
    wektor(String N, float X, float Y)
    {
        this.nazwa = N;
        this.x = X;
        this.y = Y;
    }

    
    
    public static void wczytywanie()
    {
        //tworze liste do wczytywania nazw
        ArrayList<String> nObiektow = new ArrayList (15);
        for(int i=0; i<15; i++)
        {
            System.out.println("Podaj nazwe wekotra: ");
            Scanner n= new Scanner(System.in);
            String N = n.nextLine();
            nObiektow.add(N);
            //System.out.println("nazwa to: "+nObiektow.get(i));
            System.out.println("Podaj wspolrzedna x: ");
            Scanner xr = new Scanner(System.in);
            float X = xr.nextFloat();
            System.out.println("Podaj wspolrzedna y: ");
            Scanner yr = new Scanner(System.in);
            float Y = yr.nextFloat();
            
            wektor N = new wektor(N,X,Y);                      // nie działa
            wektor nObiektow.get(i) = new wektor(N,X,Y); // nie działa

            
        }
    }
    
    public static void main (String[] args)
    {
        wczytywanie();
        
    }
}

 

komentarz 11 maja 2017 przez KubenQPL Maniak (62,820 p.)
Daj kod do odpowiednich znaczników.

1 odpowiedź

+1 głos
odpowiedź 11 maja 2017 przez KubenQPL Maniak (62,820 p.)
wybrane 11 maja 2017 przez Dorota95
 
Najlepsza

-Zmienne które chcesz inicjalizować w pętli lepiej deklaruj przed pętlą.
-Nazwy klas zaczyna się z dużej litery a nazwy zmiennych z małych.
-Przed konstruktorem daj modyfikator dostępu (w tym przypadku public).
-Nie potrzebujesz osobnego scannera dla wczytania każdej zmiennej.

//przykład inicjowania zmiennej w pętli
String nazwa;
Scanner scanner;
for(int i =0; i < 15; i++){
scanner = new Scanner(System.in);
nazwa = scanner.nextLine();
}

Z błędów które tu widzę:
- Masz taką samą nazwę dla zmiennej wektora i stringa, daj stringowi np "nazwa" a wektorowi "w".
- Nie wiem co próbujesz zrobić tutaj :

wektor nObiektow.get(i) = new wektor(N,X,Y); // nie działa

jeśli chcesz dodać do listy wektory to zrób listę wektorów

ArrayList<Wektor> wektory;
Wektor w;
for(...){
...
w = new Wektor(nazwa, x, y);
wektory.add(w);
}

komentarz 11 maja 2017 przez Dorota95 Nowicjusz (210 p.)

Dziekuję za odpowiedź. W tym miejscu:

wektor nObiektow.get(i) = new wektor(N,X,Y);

próbowałam stworzyć nowy obiekt o nazwie pobranej z tablicy stringów, od razu go inicjalizując za pomocą konstruktora. Nie chciałabym tego robić 15 razy, wiec próbuje stworzyć te obiekty za pomocą pętli.

komentarz 11 maja 2017 przez KubenQPL Maniak (62,820 p.)
Nie można tak nadawać nazwy zmiennej, bo i po co? Jak chcesz stworzyć te 15 wektorów to zrób to tak jak pokazałem w ostatnim bloku kodu, po prostu dodawaj do listy wektorów.
komentarz 11 maja 2017 przez Dorota95 Nowicjusz (210 p.)
Dzięki jeszcze raz :) Zrobiłam jak mówiłeś i działa.

Podobne pytania

0 głosów
3 odpowiedzi 801 wizyt
pytanie zadane 5 marca 2016 w Java przez Mar Cin Dyskutant (8,900 p.)
0 głosów
2 odpowiedzi 1,474 wizyt
pytanie zadane 14 marca 2018 w Java przez mibdbz Gaduła (4,300 p.)
0 głosów
1 odpowiedź 417 wizyt
pytanie zadane 28 września 2018 w Java przez buczer Nowicjusz (120 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...