¿Cómo puedo acceder a un objeto definido en otra clase?

yeri123:

Tengo una clase llamada submarino, tiene un objeto de la clase del motor de la siguiente manera. Por supuesto, esto no es todo el código, sólo estoy tratando de entender el concepto. Quiero usar el obj motor en la clase de usuario que tiene obj clase ShipStorage creado. La clase ShipStorage es el que tiene el obj clase de motor en el mismo. Sólo he hecho asociaciones hasta ahora no la herencia lo que las soluciones relacionadas con las asociaciones serán útiles.

Clas de submarinos s

public class Submarine
{
     private Engine eng;
     public void Submarine()
     {
         eng = new Engine();
     }

}

barco de la clase de almacenamiento

public class ShipStorage
{
    private Submarine[] submarine = new Submarine();
}

clase de usuario

public class User
{
   ShipStorage store = new ShipStorage();
  //want to access engine object here

}
Arvind Kumar Avinash:

Es necesario tener publicdescriptores de acceso (getters) para los privatemiembros que se accede en otras clases.

Hacerlo de la siguiente manera:

import java.util.Scanner;

class Engine {
    String name;
    int year;
    String manufacturer;

    public Engine() {
    }

    public Engine(String name, int year, String manufacturer) {
        this.name = name;
        this.year = year;
        this.manufacturer = manufacturer;
    }

    // getters and setters of instance variables

    @Override
    public String toString() {
        return "Engine [name=" + name + ", year=" + year + ", manufacturer=" + manufacturer + "]";
    }
}

class Submarine {
    private String id;
    private Engine engine;

    public Submarine(String id, Engine engine) {
        this.id = id;
        this.engine = engine;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setEngine(Engine engine) {
        this.engine = engine;
    }

    public Engine getEngine() {
        return engine;
    }

    @Override
    public String toString() {
        return "Submarine [id=" + id + ", engine=" + engine + "]";
    }
}

class ShipStorage {
    private Submarine submarine;
    private Submarine[] submarines;

    public void setSubmarine(Submarine submarine) {
        this.submarine = submarine;
    }

    public Submarine getSubmarine() {
        return submarine;
    }

    public void setSubmarines(Submarine[] submarines) {
        this.submarines = submarines;
    }

    public Submarine[] getSubmarines() {
        return submarines;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ShipStorage store = new ShipStorage();

        // Input submarines
        Submarine[] submarines = new Submarine[3];
        String id, name, manufacturer;
        int year;
        for (int i = 0; i < submarines.length; i++) {
            System.out.print("Enter the ID of the sumarine: ");
            id = in.nextLine();
            System.out.print("Enter the name of its engine: ");
            name = in.nextLine();
            System.out.print("Enter the manufacturing year of its engine: ");
            year = Integer.parseInt(in.nextLine());
            System.out.print("Enter the manufacturer's name of its engine: ");
            manufacturer = in.nextLine();

            submarines[i] = new Submarine(id, new Engine(name, year, manufacturer));
        }

        // Store submarines to ShipStorage
        store.setSubmarines(submarines);

        // Display submarines
        System.out.println("Displaying the data: ");
        for (Submarine submarine : store.getSubmarines()) {
            System.out.println(submarine);
        }
    }
}

Un análisis de la muestra:

Enter the ID of the sumarine: 1
Enter the name of its engine: A
Enter the manufacturing year of its engine: 2010
Enter the manufacturer's name of its engine: X
Enter the ID of the sumarine: 2
Enter the name of its engine: B
Enter the manufacturing year of its engine: 2011
Enter the manufacturer's name of its engine: Y
Enter the ID of the sumarine: 3
Enter the name of its engine: C
Enter the manufacturing year of its engine: 2018
Enter the manufacturer's name of its engine: Z
Displaying the data: 
Submarine [id=1, engine=Engine [name=A, year=2010, manufacturer=X]]
Submarine [id=2, engine=Engine [name=B, year=2011, manufacturer=Y]]
Submarine [id=3, engine=Engine [name=C, year=2018, manufacturer=Z]]

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=282044&siteId=1
Recomendado
Clasificación