View Full Version : Si può utilizzare l'istruzione new anche così?
:muro:
Ciao a tutti.
Naturalmente ho un problema: sto creando una chat in java e non so se questa istruzione è sbagliata o no, visto che l'ho trovata su una pagina web che spiega come si crea una chat:
(new ThreadServer(chatIn,chatOut,str)).start();
chatIn, chatOut e str sono delle variabili che dovrei passare al costruttore.
Ma dove mi salva la variabile nuova creata se la crea?
Si si può usare...nei casi in cui non ti serva un riferimento alla zona di memoria creata. La new crea una locazione di memoria . Quando tu scrivi
MyClass class = new MyClass().
crei una locazione di memoria e dici alla variabile (puntatore) class di mantenervi un riferimento. MA se non ti serve riferirti nel codice a class, è inutile dichiararlo.
Grazie per la tua esauriente risposta, ma perchè allora netbeans me lo segna come errore?
ProvaChat/ChatServer.java [29:1] cannot resolve symbol
symbol : method start ()
location: class ProvaChat.ThreadServer
ThreadServer threadServer=new ThreadServer(chatIn,chatOut,str).start();
No no attenzione tu dichiari
ThreadServer threadServer=new ThreadServer(chatIn,chatOut,str).start();
Non puoi!! start() è un metodo!
dovrai fare:
ThreadServer threadServer=new ThreadServer(chatIn,chatOut,str) ;
e poi chiamare il metodo start()
threadServer.start()
:D
Grazie mille...adesso provo a vedere se funziona...ma l'istruzione l'avevo già trovata così come te l'avevo scritta, e anche a me sembrava un po strano che il metodo start venisse applica subito.
grazie ancora...
Tu avevi trovato
(new ThreadServer(chatIn,chatOut,str)).start();
che è un altra cosa... questa è lecita, la dichiarazione no ;)
Ok, ma anche se è lecita mi da un errore e questo è l'errore:
ProvaChat/ChatServer.java [29:1] cannot resolve symbol
symbol : method start ()
location: class ProvaChat.ThreadServer
(new ThreadServer(chatIn,chatOut,str)).start();
^
Note: C:\ChatJava\src\NewChat\ProvaChat\ChatServer.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
1 error
Errors compiling ChatServer.
Quindi ricapitolando come faccio?
Perchè ogni volta che rispondi in questo 3d mi arriva un messaggio privato con lo stesso testo??
Comunque, appurato che sintatticamente è corretto scrivere
(new ThreadServer(chatIn,chatOut,str)).start();
l'unico motivo è che la classe ThreadServer non abbia il metodo start().
Io immagino che sia una tua classe, che dovrebbe estendere Thread (che ha il metodo start()) ma non lo fa .
Perchè non ho ancora capito come faccio a risponderti, visto che mi sono iscritta oggi.
Sì la classe ThreadServer l'ho creata io, e di fatti non ha il metodo start.
Lo creo e guardo se funziona, altrimenti chiederò ancora una volta il tuo aiuto.
Grazie
Basta premere il tasto RISPONDI ;)
Resto a disposizione, ma fra poco dovrò allontanarmi dal pc. Al limite ti rispondo domani mattina.
Comunque non ho capito ancora perchè non funziona l'istruzione contenente il new.
Mi potresti scrivere un esempio per capirne il funzionamento?
Devi postare il codice delle classi altrimenti non ci capiamo...Hai fatto estendere Thread alla tua classe??
Sto cercando di realizzare una chat in java. Ho realizzato 5 classi: chatserver, chatclient, threadServer, finestra e finestrachat. La chatserver è il programma che controlla se qualche client gli spedisce un user id cosicchè da utilizzare l'istruzione con il new. Chatclient sarebbe il programma che ogni utente che vuole connettersi alla chat deve aprire.Finestra e finestrachat sono le parti grafiche.Threadserver è la famosa classe che deve essere instanzioata con il new.
Per potermi aiutare hai compreso il mio lavoro o preferisci che ti invio gli allegati delle classi?
Ma ho paura che qualcuno potrebbe fregarmeli e utilizzarmeli...
Ma perchè devi venderli?:confused:
Ma no non dovrei venderli o almeno non ci ricaverei nulla io, visto che sto facendo lo stage.
Ho paura che qualcuno me li potrebbe utilizzare e quindi la mia fitica andrebbe sfruttata.
Hai capito cosa intendo?
Al limite saresti di aiuto a qualcuno ;)
class ServerThread extends Thread {
public ServerThread() {
//costruttore in cui passare chatin, chatout, str
}
public void run(){
System.out.println("Server started...");
}
}
public class Server {
public static void main(String[] args){
new ServerThread().start();
}
}
;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.