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

Java - ArrayList zwraca adres w pamięci

VPS Starter Arubacloud
0 głosów
382 wizyt
pytanie zadane 11 grudnia 2018 w Java przez tiesto.ulic Obywatel (1,010 p.)

Witajcie!

Klasa Car_Zad1, z której są tworzone obiekty.

package Lab5;

public class Car_Zad1 {
	private String make;
	private String model;
	private double cubicCapacity;
	private String type;
	private String engineType;
	private int productionDate;
	private int firstRegistrationDate;
	private double price;
	
	// Settery
	public void setMake(String make) {
		this.make=make;
	}
	
	public void setModel(String model) {
		this.model=model;
	}
	
	public void setCubicCapacity(double cubicCapacity) {
		this.cubicCapacity=cubicCapacity;
	}
	
	public void setType(String type) {
		this.type=type;
	}
	
	public void setEngineType(String engineType) {
		this.engineType=engineType;
	}
	
	public void setProductionDate(int productionDate) {
		this.productionDate=productionDate;
	}
	
	public void setFirstRegistrationDate(int firstRegistrationDate) {
		this.firstRegistrationDate=firstRegistrationDate;
	}
	
	public void setPrice(double price) {
		this.price=price;
	}
	
	
	// Gettery
	public String getMake() {
		return this.make;
	}
	
	public String getModel() {
		return this.model;
	}
	
	public double getCubicCapacity() {
		return this.cubicCapacity;
	}
	
	public String getType() {
		return this.type;
	}
	
	public String getEngineType() {
		return this.engineType;
	}
	
	public int getProductionDate() {
		return this.productionDate;
	}
	
	public int getFirstRegistrationDate(){
		return this.firstRegistrationDate;
	}
	
	public double getPrice() {
		return this.price;
	}
	
	//czy posiada jeszcze gwarancje ZAD2
	public String carHaveGuarantee() {
		if((2018-firstRegistrationDate)>3) {
			return "Auto nie ma gwarancji!";
		} else {
			return "Auto ma gwarancję!";
		}
	}
	
	//konstruktor ZAD3
	public Car_Zad1(String make, String model, double cubicCapacity, String type, String engineType, int productionDate, int firstRegistrationDate, double price) {
		setMake(make);
		setModel(model);
		setCubicCapacity(cubicCapacity);
		setType(type);
		setEngineType(engineType);
		setProductionDate(productionDate);
		setFirstRegistrationDate(firstRegistrationDate);
		setPrice(price);
				
		/*
		System.out.println(this.getMake());
		System.out.println(this.getModel());
		System.out.println(this.getCubicCapacity());
		System.out.println(this.getType());
		System.out.println(this.getEngineType());
		System.out.println(this.getProductionDate());
		System.out.println(this.getFirstRegistrationDate());
		System.out.println(this.getPrice());
		System.out.println(this.carHaveGuarantee());*/
	}
	
	public Car_Zad1() {
		
	}
}


Klasa Autokomis, w której tworzone są obiekty klasy Car_Zad1
 

package Lab5;
import java.util.ArrayList;

public class AutoKomis {
	//stworzyc liste obiektow klasy samochod ;; ArrayList<Samochod> listaSamochodow = new Samochod;
	//dodanie elementu do listy ;; listaSamochodów(new Samochod("Opel", "Astra", ...));
	private ArrayList<Car_Zad1> carList;
	
	public AutoKomis() {
		carList = new ArrayList<Car_Zad1>();
		
		carList.add(new Car_Zad1("Renault", "Clio", 1.6, "Hatchback", "PB + LPG", 2006, 2006, 10000));
		//System.out.println("\r\n");
		carList.add(new Car_Zad1("Volkswagen", "Golf", 1.9, "Kombi", "ON", 2008, 2008, 14000));
		//System.out.println("\r\n");
		carList.add(new Car_Zad1("Ford", "Focus", 2.0, "Hatchback", "PB", 2005, 2006, 9000));
		//System.out.println("\r\n");
		carList.add(new Car_Zad1("Seat", "Leon", 1.6, "Hatchback", "PB + LPG", 2005, 2006, 9000));
		//System.out.println("\r\n");
	}
	
	public ArrayList<Car_Zad1> getList() {
		return this.carList;
	}
	
	public Car_Zad1 getSpecificElement(int number) {
		return carList.get(number);
	}
}

 

Klasa Main, w której próbuję zwrócić ArrayList z klasy Autokomis

package Lab5;

public class Main {
	public static void main(String args[]) {		
		AutoKomis car = new AutoKomis();
		System.out.println(car.getSpecificElement(0));
	}
}


Chcę otrzymać obiekt 0 ArrayList (czyli obiekt klasy Car_Zad1), lecz zamiast tego otrzymuję Lab5.Car_Zad1@15db9742, czyli adres w pamięci, gdzie jest przetrzymywana moja Renówka.

Jak poprawnie zwrócić za pomocą ArrayList przykładowo samą markę, model lub cały obiekt? Uprzedzając pytania, Pan prowadzący zajęcia zażyczył sobie ArrayList. Ktoś przy okazji mógłby wytłumaczyć dlaczego powinienem skorzystać z ArrayList?

1 odpowiedź

+3 głosów
odpowiedź 11 grudnia 2018 przez Mateusz51 Nałogowiec (28,180 p.)
Nie nadpisales metody toString dla car_zad1. To nie winna array list. Nawet jak bys utworzyl goly obiekt to rowniez wyswietlil by Ci sie taki skrót klasy.
komentarz 11 grudnia 2018 przez tiesto.ulic Obywatel (1,010 p.)
Wygląda na to, że mam braki, bo nie wiem jak nadpisać tę metodę albo po prostu nie wiem, co masz na myśli. Naprowadzisz proszę na problem? :)
1
komentarz 12 grudnia 2018 przez miro Pasjonat (23,870 p.)

    @Override
    public String toString() {
        return "Example{" +
            "id=" + getId() +
            ", exampleText='" + getExampleText() + "'" +
            "}";
    }

Zamiast tych geterów użyj własnych. Zobacz czy twoje IDE nie może wygenerować toString()

1
komentarz 12 grudnia 2018 przez Mateusz51 Nałogowiec (28,180 p.)
ToString jest metoda ktora posiada kazdy obiekt i wywolywana jest np gdy korzystasz z println. Zamienia ona obiekt w jego reprezentacje tekstowa. Domyslnie kazda klasa dziedziczy toString po klasie object, ktora to printuje taki krzaczek jak wkleiles.

Komentarz wyzej masz jak nadpisac domyslna reprezentacje swoja

Podobne pytania

+1 głos
1 odpowiedź 509 wizyt
0 głosów
1 odpowiedź 112 wizyt
pytanie zadane 20 grudnia 2020 w Java przez T100 Obywatel (1,450 p.)
0 głosów
2 odpowiedzi 159 wizyt
pytanie zadane 5 grudnia 2020 w Java przez T100 Obywatel (1,450 p.)

92,455 zapytań

141,263 odpowiedzi

319,100 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!

...