• 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

VPS Starter Arubacloud
0 głosów
163 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 790 wizyt
pytanie zadane 5 marca 2016 w Java przez Mar Cin Dyskutant (8,900 p.)
0 głosów
2 odpowiedzi 1,441 wizyt
pytanie zadane 14 marca 2018 w Java przez mibdbz Gaduła (4,300 p.)
0 głosów
1 odpowiedź 403 wizyt
pytanie zadane 28 września 2018 w Java przez buczer Nowicjusz (120 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...