Autore Topic: Problemi con le classi java  (Letto 1236 volte)

Offline lupin0734

  • Nuovo arrivato
  • *
  • Post: 20
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note II - GT-N7100
  • Sistema operativo:
    Mac OS X 10.9
Problemi con le classi java
« il: 13 Ottobre 2014, 10:41:49 CEST »
0
Buongiorno ragazzi,
Sono alle primissime armi col Java e i linguaggi ad oggetti. Quello che avrei intenzione di fare è una classe java pubblica che contenga dei dati. Ad esempio ... Ho la mia classe persona e dentro ho nome, cognome ed età. Ho visto un pò qua e là su internet ma ho ancora dei dubbi. Il mio caso è questo qui: leggo dei tag da XML di alcuni luoghi quindi, nome, indirizzo, telefono ecc... quindi ho pensato di fare questa classe qui:

Codice (Java): [Seleziona]
package com.example.findmyclients;

public class PointOfInterest {
        private String title;
        private String address;
        private String telephone;
        private String email;
        private String description;
        private String facebook;
        private String twitter;
        private String website;
       
        public void AnyPoint(String nome, String indirizzo, String telefono, String email, String description, String facebook, String twitter, String website){
                //super();
                this.title = nome;
                this.address = indirizzo;
                this.telephone = telefono;
                this.email = email;
                this.description = description;
                this.facebook = facebook;
                this.twitter = twitter;
                this.website = website;
        }
}

e per riempirli nella mia Activity dopo aver letto l'xml e riempito delle variabili faccio questa chiamata e fin qui dovrebbe funzionare (spero):

Codice (Java): [Seleziona]
PointOfInterest p = new PointOfInterest();
                            p.AnyPoint(name,address,tel,email,desc,facebook,twitter,web);

Il problema è quando vado a rileggerlo...nel senso, provenendo dal C e C++ farei molto semplicemente una matrice che scorrerei con due for concatenati (per il momento questo programma funziona proprio così), ma siccome android usa java che è un linguaggio ad oggetti avrei il piacere di imparare ad usarli questi maledetti o benedetti oggetti...quindi non so ad esempio se faccio un metodo che mi fa il return del nome e dell'indirizzo, l'indirizzo che mi estrae è poi veramente associato al nome? Se gli passo come parametro un nome esempio: "Arredamenti Garavini" lui mi trova nella classe questo posto e ci associa il giusto indirizzo? Grazie a tutti quelli che risponderanno :)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problemi con le classi java
« Risposta #1 il: 13 Ottobre 2014, 10:57:20 CEST »
0
Non capisco la domanda. La classe che hai scritto e che hai usato nella riga di codice è la classe del singolo oggetto. Dato un oggetto di tipo PointOfInterest, c'è poco da cercare, è già esso stesso un singolo oggetto PointOfInterest. Anche perchè la "classe" non è un elemento in cui si ricerca. La "classe" è in pratica il "modello" su cui costruisci gli oggetti di quel tipo.

Forse fai confusione con i "container", dove accumuli oggetti del tipo della tua classe e nei quali ha senso fare una ricerca.

PS: per concetti di questo genere ti merita studiare un po' di java da un manuale, perchè impararli cercando di scrivere codice è come l'assedio di stalingrado.

PS2: il C++ per certi versi è molto più "ad oggetti" del Java.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline lupin0734

  • Nuovo arrivato
  • *
  • Post: 20
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note II - GT-N7100
  • Sistema operativo:
    Mac OS X 10.9
Re:Problemi con le classi java
« Risposta #2 il: 13 Ottobre 2014, 11:06:35 CEST »
0
Intanto bradipao grazie per la risposta...il problema è che non lo so nemmeno io bene spiegartelo XD. Praticamente in primo luogo vorrei fare, come se fosse un array, nel senso: io gli passo dei valori diversi alla classe e lei si riempe piano piano. Poi man mano che mi servono li vado a ritirare fuori. E penso che siccome è una roba dinamica ci saranno dei puntatore tra le varie istanze...però il fatto è che non so come si fa...né ad inserire ne ... a "rileggere" i dati. Ti dico se fossimo stati in un array avrai incrementato l'indice, con gli oggetti delle classi come dovrei fare??

Post unito: 13 Ottobre 2014, 11:09:24 CEST
Dovrei per caso fare due metodi "getter" and "setter" possiamo dire... all'interno della classe?
« Ultima modifica: 13 Ottobre 2014, 11:09:24 CEST da lupin0734, Reason: Merged DoublePost »

Offline tonno16

  • Utente storico
  • *****
  • Post: 1231
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problemi con le classi java
« Risposta #3 il: 13 Ottobre 2014, 11:44:18 CEST »
0
Puoi fare un getter per ogni campo. Se usi il costruttore puoi fare a meno dei setters

Offline lupin0734

  • Nuovo arrivato
  • *
  • Post: 20
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note II - GT-N7100
  • Sistema operativo:
    Mac OS X 10.9
Re:Problemi con le classi java
« Risposta #4 il: 13 Ottobre 2014, 11:46:42 CEST »
0
tonno16 ecco...mi serve un costruttore...e non so come farlo :/ e poi mi serve anche una roba che faccia l'inverso...cioè vada a leggere tra gli elementi e mi restituisca i campi che mi interessano...

Offline tonno16

  • Utente storico
  • *****
  • Post: 1231
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problemi con le classi java
« Risposta #5 il: 13 Ottobre 2014, 11:48:57 CEST »
0
Quel void any point non ha senso. Il costruttore è un "metodo" che ha lo stesso nome della classe. Un po come il tuo AnyPoint però togliendo void.

Studia java un po

Offline lupin0734

  • Nuovo arrivato
  • *
  • Post: 20
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note II - GT-N7100
  • Sistema operativo:
    Mac OS X 10.9
Re:Problemi con le classi java
« Risposta #6 il: 13 Ottobre 2014, 11:58:53 CEST »
0
Ok tonno16 ci sono riuscito :) però adesso ho un altra storia... nel senso...ho messo questo metodo, nella classe, che mi restituisce, passando il nome del posto, il suo indirizzo:

Codice (Java): [Seleziona]
public String getName(String nome){
                if(this.title.equals(nome)){
                        return this.address;
                }
                return this.title;
        }

lui funziona però, per richiamarlo dovrei ogni volta, siccome ora la classe ha il costruttore, dichiarare nomeclasse p = new nomeclasse(qui 8 parametri che dovrei passare solamente quando riempo tutti i campi);


Offline tonno16

  • Utente storico
  • *****
  • Post: 1231
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problemi con le classi java
« Risposta #7 il: 13 Ottobre 2014, 12:36:01 CEST »
0
Studia le collection

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Problemi con le classi java
« Risposta #8 il: 13 Ottobre 2014, 14:45:34 CEST »
0
PS: per concetti di questo genere ti merita studiare un po' di java da un manuale, perchè impararli cercando di scrivere codice è come l'assedio di stalingrado.

Quoto questo PS di bradipao e aggiungo: "impararli cercando di scrivere codice è come l'assedio di stalingrado" stando pure dalla parte dei tedeschi.
Se si è totalmente a digiuno di programmazione ad oggetti non è proprio il caso di imbarcarsi a scrivere codice modificando "fino a che non funziona... o almeno che sembra funzionare".
E' evidente da quello che scrivi che non hai ancora fatto tuoi dei concetti che per la programmazione OO sono alla base di tutto.
Ti invito caldamente a ricominciare studiando prima come si programma in OOP e assicurarti di aver capito bene le basi, questo prima anche solo di pensare di aprire un IDE.