2012-11-24 10 views
6

Sono nuovo alla programmazione, mi dispiace se questo è uno stupido errore, ma continuo a ricevere questo errore "CompanyAddress.java:11: error: cannot find symbol System.out.println(testObject.getName(CompanyName));" Non so cosa sono fare sbagliatoNon riesco a far funzionare tutto questo, i metodi e le variabili di istanza

Il principale.

import java.util.Scanner; 
public class CompanyAddress 
{ 
    public static void main(String[] args) 
    { 
    Scanner scan = new Scanner(System.in); 
    test testObject = new test(); 
    System.out.println("Enter name: "); 
    String input = scan.nextLine(); 
    testObject.getName(input); 
    System.out.println(testObject.getName(CompanyName)); 
    } 
} 

mia test.java

import java.util.Scanner; 
public class test 
{ 
    String Name; 

    public String getName(String CompanyName) 
    { 
     Name = CompanyName; 
     return Name; 
    } 


} 
+6

Un commento lato. Una delle convenzioni di denominazione ampiamente utilizzata in Java è che i nomi delle variabili dovrebbero iniziare con un carattere minuscolo. – fivedigit

risposta

2

Prima di tutto è necessario dichiarare la variabile companyName, prima di passarlo al metodo.

In secondo luogo, il metodo di: -

public String getName(String CompanyName) 
{ 
    Name = CompanyName; 
    return Name; 
} 

Sembra strano per me. Stai utilizzando lo stesso metodo di getter and setter.

Si dovrebbe avere separate setter and getter: -

public void setName(String companyName) { 
    name = companyName; 
} 

public String getName() { 
    return name; 
} 

E li richiamare separatamente.

testObject.setName(companyName); 

System.out.println(testObject.getName()); 

Solo un suggerimento: -

Segui Java Naming Convention. I nomi dei campi e dei metodi dovrebbero iniziare con l'alfabeto minuscolo.

+0

@Downvoter .. Si prega di commentare, perché non penso qual è il tuo intento dietro downvoting. –

+0

Ho upvoted, perché questa è la migliore risposta finora. Oltre a rispondere alla domanda dell'OP, hai anche aggiunto dei buoni consigli, che servivano dagli esempi di codice dell'OP. –

+0

+1 mi hai battuto per minuti .. :-) risposta perfetta –

3

si deve dichiarare la variabile CompanyName. Qualcosa di simile a questo:

String CompanyName = "CompanyName1"; 
System.out.println(testObject.getName(CompanyName)); 

Dal momento che si sta modificando una variabile si dovrebbe fare:

public class test 
{ 
     String Name; 

     public void setName(String CompanyName) {this.Name = CompanyName;} 

     public String getName()     {return Name;} 

}

Il metodo getName restituirà il nome della "Società" e il setName modificherà il nome della "Compagnia". In questo modo è possibile risolvere diversi problemi.

Inoltre, è possibile chiamare in futuro il metodo getName senza modificare il nome effettivo dell'azienda.

3
System.out.println(testObject.getName(CompanyName)); 

Cosa CompanyName questo qui? Non è un simbolo noto. Potrebbe essere System.out.println(testObject.getName("CompanyName"));

o

String CompanyName ="name"; 
System.out.println(testObject.getName(CompanyName); 
+0

si prega di commentare per downvote ... –

0

Rinominare il "getName a "setName"(perché è un setter) e aggiungere un getter adeguato alla classe e l'uso che:

public class test 
{ 
    String Name; 

    public void setName(String CompanyName) 
    { 
     Name = CompanyName; 
    } 

    public String getName() { 
     return Name; 
    } 
} 

poi:

System.out.println(testObject.getName()); 


anche , ti aiuterà se segui le convenzioni di denominazione standard:

  • I nomi di classe iniziano con una lettera maiuscola
  • nomi di metodo, variabili e parametri iniziano con una lettera minuscola
1

Penso che wamt il programma per fare qualcosa di simile qui di seguito. Una funzione setName() che imposterà il valore passato al nome e uno getName() che restituirà il valore del nome.

import java.util.Scanner; 
public class test 
{ 
    String Name; 

    public String getName() 
    { 
     return Name; 
    } 

    public String setName(String companyName) 
    { 
     this.Name=companyName; 
    } 
} 

Ora

public class CompanyAddress 
{ 
    public static void main(String[] args) 
    { 
    Scanner scan = new Scanner(System.in); 
    test testObject = new test(); 
    System.out.println("Enter name: "); 
    String input = scan.nextLine(); 
    testObject.setName(input); 
    System.out.println(testObject.getName()); 
    } 
} 
+0

Chiunque, se pensi che sia meglio controllare la formattazione/ortografia. Sentiti libero di modificare. M su un telefono. Cand fa molto sulla formattazione. grazie in anticipo –

+0

È abbastanza decente :). – dreamcrash

+0

@dreamcrash grazie e grazie per la modifica (y) –

Problemi correlati