Newsgroup: it.comp.java
Titolo: equivalente java della struct del C

Ciao a tutti. Ho questo esercizio dal risolvere:
Problema della banca
Creare un programma che permetta ad un cassiere di banca di gestire fino a 
100 conti correnti.
Si crei un menù che permetta al cassiere di avere 3 funzioni:
  1.. Inserire un nuovo cliente
  2.. Versamento su un conto già esistente
  3.. Prelevamento su un conto già esistente
  4.. Visualizzazione del saldo di un cliente
  5.. Visualizzazione tabellare di tutti i clienti con i loro saldi
  6.. Trovare il cliente che ha più soldoni
  7.. Visualizzare tutti i clienti che sono in rosso
Note:
  a.. è possibile un fido di max 1000 euro (non andare oltre)
  b.. all'inizio del programma nessun conto è aperto
  c.. l'identificativo del cliente è il nome (non è il caso di mettere anche 
il cognome)
  d.. tenere sempre conto del numero di conti correnti attivati
Se dovessi farlo in linguaggio C dichiarerei un array di strutture, nel 
quale ogni struttura rappresenta un conto corrente: esiste qualcosa di 
equivalente alle struct anche in Java? Non voglio la soluzione di tutto, mi 
servirebbe giusto questa dritta per poter almeno iniziare. Grazie in 
anticipo.

 anticipo.
In Java non esiste formalmente una struct del C. Puoi però ricorrere
ad una classe con tutti gli attributi pubblici per emularla. Meglio sarebbe,
però, creare oggetti propri Conto, Cliente ed una struttura dati atta a 
manipolare
l'associazione 1:N Cliente -> Conto.
Saluti,
Scorpio. 

la classe con tutti gli attributi pubblici č una soluzione corretta.
Una soluzione piů corretta dal punto di vista del programmatore Java č
quella di usare i cosiddetti Java Bean.
Un bean č semplicemente una classe che rappresenta un concetto del tuo
dominio di interesse.
Grammaticalmente un Bean č composto da campi privati contenenti le
informazioni che ti servono e poi per ogni campo un 'getter' e un
'setter', semplicemente dei metodi pubblici con il nome: "getCampo" e
"setCampo" che permettono di leggere o cambiare il valore del campo.
avere i campi privati ti permette di salvarti su uno dei principi
fondamentali dell'OOP. Secondo il quale un oggetto incapsula i dati e i
metodi per modificarli e gestirli.
Per esempio il seguente č un bean per una ipotetica persona nota i nomi
dei metodi e il fatto che tutte le classi citate iniziano con lettera
maiuscola mentre i nomi delle variabili con minuscola:
package org.wikijava.basic;
import java.util.Date;
public class Person {
    private String name;
    private String lastName;
    private Date birthDate;
    private Address address;
    public String getName() {
	return name;
    }
    public void setName(String name) {
 
this.name
 = name;
    }
    public String getLastName() {
	return lastName;
    }
    public void setLastName(String lastName) {
	this.lastName = lastName;
    }
    public Date getBirthDate() {
	return birthDate;
    }
    public void setBirthDate(Date birthDate) {
	this.birthDate = birthDate;
    }
    public Address getAddress() {
	return address;
    }
    public void setAddress(Address address) {
	this.address = address;
    }
}
in bocca al lupo
-- 
Giulio
http://www.wikijava.org/

 quella di usare i cosiddetti Java Bean.
Proseguendo potresti dare alla ipotetica classe Cliente una proprietà 
Conto con un costruttore che accetti il numero di conto del cliente 
preso dall'anagrafica immagino:
private Conto conto = new Conto(this.numeroDiConto);
e dei metodi get/set che vadano ad operare sui metodi get/set 
dell'oggetto Conto
se poi alla singola anagrafica tu volessi associare più conti correnti 
potresti dichiarare un array di conti, ma per esperienza mia 
nell'assicurativo/bancario non conviene (basta che pensi ai conti 
cointestati)

esattamente,
Pensa anche al caso di una persona con due conti.
La richiesta di avere 100 conti correnti immagino dipenda dal fatto che
il prof non ha spiegato le collections. o magari dal fatto che lui vuole
che si usino gli array.
Alla fine secondo me è sempre meglio fare esercizi da cui si possa
trarre una qualche utilità pratica. Non si impara molto a programmare
cose fini a se stesse.
Saluti e buon anno,
Giulio
-- 
Giulio
http://www.wikijava.org/

 che si usino gli array.
Beh, sarebbe stato interessante allora limitare a 2 o 3 i conti correnti, 
tanto per vedere
come ci si ingegnava a gestire le eccezioni  a sforamento di tal limite...
Scorpio.

 anticipo.
Un array di classi java?