|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
[JAVA] chiarimenti su linguaggio!
ciao a tutti, quest anno frequento il IV anno del corso commerciale programmatori, l'anno scorso abbiamo fatto il C mentre quest anno stiamo facendo il JAVA... mi servirebbero alcun chiarimenti su un programma che abbiamo fatto in classe, che so rifare ma meccanicamente
il programma si compono di due classi: DVD e DVDTest Codice:
package dvd;
/**
*
* @author andrea
*/
public class Dvd {
/*****************************VARIABILI****************************/
private String Titolo;
private String Casa;
private String Autore;
private String Genere;
private short Durata;
/*****************************COSTRUTTORE*******************************/
public Dvd (String Titolo, String Casa, String Autore, String Genere, short Durata) {
this.Titolo = Titolo;
this.Casa = Casa;
this.Autore = Autore;
this.Genere = Genere;
this.Durata = Durata;
}
/******************************GETTER***************************/
public String getTitolo(){
return Titolo;
}
public String getCasa(){
return Casa;
}
public String getAutore(){
return Autore;
}
public String getGenere(){
return Genere;
}
public short getDurata(){
return Durata;
}
/********************************SETTER****************************/
public void setTitolo (String Titolo) {
this.Titolo = Titolo;
}
public void setCasa (String Casa) {
this.Casa = Casa;
}
public void setAutore (String Autore) {
this.Autore = Autore;
}
public void setGenere (String Genere) {
this.Genere = Genere;
}
public void setDurata (short Durata) {
this.Durata = Durata;
}
/******************************UTILITY***************************/
public String toString () {
String s = "Titolo: " + Titolo + "\n"
+ "Casa: " + Casa + "\n"
+ "Autore: " + Autore + "\n"
+ "Genere: " + Genere + "\n"
+ "Durata: " + Durata;
return s;
}
}
package dvd;
import javax.swing.JOptionPane;
/**
*
* @author andrea
*/
public class DvdTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Dvd d1;
d1 = new Dvd ("2012", "Centropolis Entertainmen", "Roland Emmerich",
"Catastrofico, Azione", (short)158);
JOptionPane.showMessageDialog(null, d1.toString());
}
}
a cosa servono tutti quei + che ci sono nel toString? scusate per la confusione che ho in testa e grazie anticipatamente a tutti quelli che vorranno aiutare un totale niubbo xD =)
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Se tu dichiarassi le variabili membro della tua classe public anzichè private, potresti accedervi dall'esterno e non avresti bisogno dei metodi setter e getter. Ma questo è sconsigliato: l'incapsulamento è uno dei pilastri su cui si basa la programmazione ad oggetti.
Il + in java, se usato tra una stringa e un qualsiasi altro tipo assume ruolo di 'operatore di concatenazione'. Non stai facendo altro che comporre una stringa in quel metodo, usando le variabili membro della tua classe. |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
Quote:
(non ci sarebbe bisogno di tutto questo impostando le variabili friendly o public)
__________________
ho concluso positivamente con: PianoMagic0 Ultima modifica di Lo ScArSe : 19-10-2010 alle 22:25. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Esatto, se pensi che le tue variabili membro ti servano anche all'esterno ci farai un metodo getter. Altrimenti, potrebbe benissimo darsi che ti servano solo per elaborazioni interne alla tua classe e quindi non ci farai metodi getter.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
invece il setter serve nel caso in cui debba modificare il valore delle variabili in altre classi?
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Esatto
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
rieccomi ragazzi... stiamo facendo un programma sul fantacalcio, ci vorrà tutto l anno e 10000 righe di codice ha detto il prof... bene xD... questo è lo scheletro delle prime 2 classi che sto costruendo: Giocatore e Portiere (dove vedete /*****/ manca il codice che ancora non studiamo.
Comunque il problema è che nella classe Portiere all ultima riga "return Voto;" mi da il seguente errore: Voto has private access in FantaCalcio.Giocatore... e tutto il discorso dei metodi setter di ieri... come risolvo? Quote:
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
Voto è un campo di Giocatore, ma non di Portiere
estendendo Giocatore, Portiere eredita metodi e campi protected e public dunque puoi sostituire Codice:
return Voto; Codice:
return getVoto(); |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
grazie mille cosi l'errore è scomparso... ma scusa... a cosa servono i setter se poi bisogna comunque usare un metodo getter?
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
ragazzi scusate un altro carico di domande :S... spiegazione sugli array e problemi nella compilazione con vari errori...
Codice:
import javax.swing.JOptionPane;
public class Array {
private float voto[];
voto = new float [5];
public void inserisciValore (int I) {
String s = JOptionPane.showInputDialog(null, "inserisci il"+I+" numero ");
float x = float.parsefloat (s);
voto[i] = x;
}
public void inserisciValori(){
for(int I=0;I<voto.length;I++) {
inserisciValore (I);
}
}
public void visualizzaValore (int I) {
JOptionPane.showMessageDialog(null, "il " +I+"° Voto è" +voto[i]);
}
public void visualizzaValori () {
for(int I=0;I<voto.length;I++) {
visualizzaValore(I);
}
}
public int ricercaValori (float x) {
int posizione = -1;
for (int I=0;I<voto.length;I++) {
if (voto[i] == x) {
posizione = I;
I = voto.length;
}
}
return posizione;
}
}
"float x = float.parsefloat (s);" float cannot be dereferenced - class expected - ';' exprected - not a statement - ';' expected -
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Primo errore: dichiarazione dell'array. Anche il private è fuori luogo.
Secondo errore: occhio alla differenza tra il tipo float a la classe Float.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
public void ordinaValori () {
for (int I=0;I<nominativo.length-1;I++) { for (int J=1;J<nominativo.length;J++) { if (nominativo[i].compareTo(nominativo[J]) = 1) { scambia(nominativo[i], nominativo[J]); } } } } } ragazzi e qui? unexpected type.. required: variable... found: value (tutto questo nell'if)
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
2) nell'if esegui una assegnazione perchè stai usando l'operatore di assegnamento '=' invece devi usare '=='...
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 10-11-2010 alle 16:50. |
|
|
|
|
|
|
#16 | |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
Quote:
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
|
#17 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
rieccoci
Codice:
public void scambia (String nominativo[i], nominativo[J]){
String a= nominativo[J];
String b= nominativo[i];
nominativo [i] = a;
nominativo[J] =b;
}
}
e poi mi fa storie che J e I non sono dichiarate... questa è la prima volta che invio un array in altri metodi quindi se ho fatto qualcosa di assurdo scusatemi xD
__________________
ho concluso positivamente con: PianoMagic0 Ultima modifica di Lo ScArSe : 10-11-2010 alle 19:36. |
|
|
|
|
|
#18 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
alla fine l ho risolta cosi
Codice:
public void ordinaValori () {
for (int I=0;I<nominativo.length-1;I++) {
for (int J=1;J<nominativo.length;J++) {
if (nominativo[i].compareTo(nominativo[J]) == 1)
scambia(nominativo, I, J);
}
}
}
/********************Scambiare************************/
public void scambia (String nominativo[], int I, int J){
String a= nominativo[J];
String b= nominativo[i];
nominativo [i] = a;
nominativo[J] =b;
}
edit... compila ma non ordina :S provato anche cosi... niente (anche mettendo void senza return) Codice:
public void ordinaValori () {
for (int I=0;I<nominativo.length-1;I++) {
for (int J=1;J<nominativo.length;J++) {
if (nominativo[i].compareTo(nominativo[J]) == 1)
scambia(I, J);
}
}
}
/********************Scambiare************************/
public String scambia (int I, int J){
String a= nominativo[J];
String b= nominativo[i];
nominativo [i] = a;
nominativo[J] =b;
return nominativo[i];
}
__________________
ho concluso positivamente con: PianoMagic0 Ultima modifica di Lo ScArSe : 10-11-2010 alle 21:55. |
|
|
|
|
|
#19 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
up
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
|
#20 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 77
|
niente?? scusate l insistenza ma mi serve per domani :S
__________________
ho concluso positivamente con: PianoMagic0 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:25.




















