Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-01-2009, 19:17   #1
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2683
[Java] Creare array di oggetti non primitivi...come?

ciao,
allora stò cercando di capire come poter creare array di oggetti non primitivi in Java...non ho problemi a creare un array di int ma se per esempio mi definissi un mio tipo di dato chiamato Coppie che semplicemente mi rappresenta oggetti formati da una coppia di interi (più qualche banale operazione su di essi...lo sò no è carino...dovrei fare una classe che rappresenta il tipo di dato e basta ed un'altra che mi rappresenta una lista di metodi utili ma questo è solo un esempio...)

Ora la mia classe Coppie è:

Codice:
/** Classe che rappresenta Coppie di interi */

public class Coppie{
	
	private int val1;
	private int val2;
	private int a;
	
	/** Costruttore: crea un nuovo oggetto Coppie e lo inizializza con i valori dei parametri a e b ricevuti 
		@param a valore 1
		@param b valore 2
	*/
	
	public Coppie(int a, int b){
		val1 = a;
		val2 = b;
	}
	
	public int getVal1(){
		return val1;
	}
	
	public int getVal2(){
		return val2;
	}
	
	
	public void scambia(){
		a = val1;
		val1 = val2;
		val2 = a;
	}
	
	public void somma(Coppie c){
		val1 += c.val1;
		val2 += c.val2;
	}
}
Quello che fà credo sia abbastanza intuitivo...

Poi creo un'altra classe che contiene il main dove vorrei poter creare un array di oggetti coppie (quindi credo che in ogni elemento dell'array ci debba essere il riferimento ad un oggetto di tipo Coppie presente nello heap)...io ho provato così ma non funziona:

Codice:
public class TestArrayCoppie{
	public static void main(String[] args){
		
		int a,b;
		
		Coppie coppia1 = new Coppie(1,2);
		Coppie coppia2 = new Coppie(7,8);
		Coppie coppia3 = new Coppie(1,1);
		
		Coppie [] = new Coppie[3];		// Creo un array di coppie
		
		
		a = coppia1.getVal1();
		b = coppia1.getVal2();
		
		System.out.print("Val1: " + a + " Val2: " + b);
		
	}
}
che c'è di sbagliato? Come posso creare un array di oggetti Coppie?

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 19:48   #2
Ken1986
Member
 
Iscritto dal: Nov 2007
Messaggi: 122
Codice:
Coppie [] coppie = new Coppie[3]
Ken1986 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 20:38   #3
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2683
Quote:
Originariamente inviato da Ken1986 Guarda i messaggi
Codice:
Coppie [] coppie = new Coppie[3]
Doh mi ero dimenticato di inserire il nome dell'array...ed adesso se voglio inizializzare l'array con i 3 oggetti di tipo Coppie che ho precedentemente creato?come fare?

Tnx
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 21:01   #4
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Codice:
coppie[0] = coppia1;
coppie[1] = coppia2;
coppie[2] = coppia3;
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 22:37   #5
Ken1986
Member
 
Iscritto dal: Nov 2007
Messaggi: 122
Oppure direttamente così:

Codice:
coppia[0] = new Coppie(1,2);
ecc..
Ken1986 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2009, 23:15   #6
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
O anche così:
Codice:
Coppie[] coppie = {new Coppie(1,2), new Coppie(7,8), new Coppie(1,1)};
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2009, 00:06   #7
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2683
Grazie...ora devo vedermi bene questo argomento...vi ringrazio per la disponibilità :-)
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2011, 16:58   #8
narutouzumaki
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 6
Array di oggetti,HELP ME

Dunque vi chiedo,anzi imploro il vostro aiuto
Ho scritto una classe ContoCor
class ContoCor{
private String nome;
private int conto;
private double ammontare;

//COSTRUTTORE
public ContoCor(String n,int c,double a){
this.nome = n;
this.conto = c;
this.ammontare = a;
}

//METODO
public String toString(){
String s = "Descrizione conto " + "\n";
s += "Nome intestatario conto " + this.nome + "\n";
s += "Numero conto " + this.conto + "\n";
s += "Ammontare conto " + this.ammontare + "\n";
return s;
}
//METODO
public void contiCritici(ContoCor[] v , double x){
for(int i=0;i<v.length;i++)
if(v[i].ammontare < x)
System.out.println(v[i]);
}
}


Ora devo scrivere la classe prova/test che mi chiede di inserire un array di inserire all’utente una sequenza a sua
scelta di conti correnti ed un double x, e che visualizza tutte le descrizioni complete dei
conti correnti inseriti che hanno un ammontare corrente inferiore ad x.
Io per ora ho scritto questa parte della classe prova/test ma non riesco a creare l'array di contoCor e quindi far girare il programma

class ProvaContoCor{
public static void main(String [] args){
InputWindow in = new InputWindow();
OutputWindow out = new OutputWindow("Conto Corrente");

int dim = in.readInt("Dimensione sequenza");
String [] nome = new String [dim];
int [] conto = new int [dim];
double [] ammontare = new double[dim];
double x = in.readDouble("Inserisci un valore");
ContoCor [] array = new ContoCor[dim];

for(int i=0;i<dim;i++){
nome[i] = in.readString("Inserisci il nome " + i);
conto [i] =in.readInt("Inserisci numero conto " + i);
ammontare [i] = in.readDouble("Inserisci ammontare del conto " + i);

ContoCor v = new ContoCor(nome[i],conto[i],ammontare[i]);
}


VI PREGO AIUTATEMI,è UNA COSA FACILE LO SO MA NON RIESCO STO IMPAZZENDO

}
}
narutouzumaki è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2011, 17:15   #9
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Codice:
class ProvaContoCor{
public static void main(String [] args){
InputWindow in = new InputWindow();
OutputWindow out = new OutputWindow("Conto Corrente");

int dim = in.readInt("Dimensione sequenza");
String [] nome = new String [dim];
int [] conto = new int [dim];
double [] ammontare = new double[dim];
double x = in.readDouble("Inserisci un valore");
ContoCor [] array = new ContoCor[dim];

for(int i=0;i<dim;i++){
nome[i] = in.readString("Inserisci il nome " + i);
conto [i] =in.readInt("Inserisci numero conto " + i);
ammontare [i] = in.readDouble("Inserisci ammontare del conto " + i);

ContoCor v = new ContoCor(nome[i],conto[i],ammontare[i]);
array[i] = v;
}

}
}
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2011, 18:14   #10
narutouzumaki
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 6
Cavolo Grazie veramente NDAKOTA sei stato velocissimo ed efficientissimo,un ultima cosa poi veramente non ti rompo più.
se voglio visualizzare tutti i contoCor che hanno un ammontare minore di "x" come faccio?
lo so sono un rompi*
narutouzumaki è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2011, 21:39   #11
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Puoi usare il tuo metodo contiCritici passando l'array e un certo valore x però quel metodo non è il massimo. Per come l'hai fatto avrebbe dovuto essere static, ti dice niente?

In ogni caso prova così

Codice:
for(int i=0;i<dim;i++) {
   nome[i] = in.readString("Inserisci il nome " + i);
   conto [i] =in.readInt("Inserisci numero conto " + i);
   ammontare [i] = in.readDouble("Inserisci ammontare del conto " + i);

   ContoCor v = new ContoCor(nome[i],conto[i],ammontare[i]);
   array[i] = v;
}

ContoCor.contiCritici(array, x);
Dove x è una variabile valorizzata come preferisci. Ciao
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 16-03-2011, 10:28   #12
narutouzumaki
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 6
Ndakota hai ragionissimo,anche io avrei usato il metodo static,mah lo scheletro della classe è definito dal mio professore,questi sono delle prove di esame alla programmazione.
Anche io per pura semplicità avrei usato un metodo static in modo tale da rendere le cose più semplice.
Proprio per questo ho chiesto il vostro aiuto per la visualizzazione,perchè purtroppo mettendo

ContoCor.contiCritici(array, x) non funziona

Ad ogni modo grazie per l'array di oggetti di tipo non primitivo,sei un cavolo di geniaccio.
narutouzumaki è offline   Rispondi citando il messaggio o parte di esso
Old 16-03-2011, 21:49   #13
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Se mi dici cosa non funziona vediamo di sistemare
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2011, 14:18   #14
narutouzumaki
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 6
Grazie grazie
narutouzumaki è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2011, 14:24   #15
narutouzumaki
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 6
Dunque dovrei visualizzare i conti critici,solo che con ContoCor.ContiCritici(array,x) non mi visualizza nulla purtroppo.
narutouzumaki è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Tory Bruno ha lasciato la società...
L'immagine di Natale del telescopio spaz...
STMicroelectronics e SpaceX proseguono l...
Numeri da record, Xiaomi distribuisce ol...
BitLocker accelerato via hardware: Micro...
Blue Origin prosegue lo sviluppo dei lan...
Moore Threads: nuove GPU 15 volte pi&ugr...
Steam diventa esclusivamente 64-bit: Val...
La Corte Suprema restituisce a Elon Musk...
X lancia Creator Studio su mobile: nuovi...
Dieci anni fa SpaceX fece atterrare per ...
POCO M8 e M8 Pro arriveranno nel 2026: e...
Caos Formula 1: il motore Mercedes &egra...
Tariffe nazionali per le chiamate e gli ...
Tassa chilometrica non solo per elettric...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v