JavascriptProva

sabato 11 febbraio 2012

Classe in Java e C++

Continuiamo a rivangare un po' di Java...

Ecco:
class Persona{
    String nome;
    String cognome;
    int altezza;     
}

public class Main {
    
    public Main() {
    }
    
    public static void main(String[] args) {
        Persona Mario=new Persona();
        Mario.nome="Mario";
        Mario.cognome="Rossi";
        Mario.altezza=177;       
    }  
}
Ho creato un'istanza della classe Persona, chiamata Mario.
Una volta creata l'istanza, manipolo le sue proprietà.

Adesso ripassiamo la sintassi C++...
Vediamo piano piano come si dichiarano le classi...
class Persona{
public:
 char* nome;
 char* cognome;
 int altezza;
};
void main(){
 Persona Mario;
 Mario.nome="Mario";
 Mario.cognome="Rossi";
 Mario.altezza=176;
 printf(Mario.nome);
 printf(Mario.cognome);
 getchar();
}
Bene.
Confronto:

In Java sembrerebbe che i membri della classe vengano ritenuti di base pubblici, mentre in Cpp verrebbero ritenuti di base privati. Infatti se io faccio questo in Java:
class Persona{
    private String nome;
    String cognome;
    int altezza;    
}

public class Main {
    
   
    public Main() {
    }
    
   
    public static void main(String[] args) {
        Persona Mario=new Persona();
        Mario.nome="Mario";
        Mario.cognome="Rossi";
        Mario.altezza=177;
        
    } 
}
ottengo questo messaggio di errore:
C:\Users\Io\JavaApplication1\src\javaapplication1\Main.java:34: nome has private access in javaapplication1.Persona


In Cpp, invece, se faccio questo:
class Persona{

 char* nome;
public:
 char* cognome;
 int altezza;
};
void main(){
 Persona Mario;
 Mario.nome="Mario";
 Mario.cognome="Rossi";
 Mario.altezza=176;
 printf(Mario.nome);
 printf(Mario.cognome);
 getchar();
}
ottengo questo:
1>c:\users\io\documents\visual studio 2010\projects\progetto\progetto\uno.cpp(12): error C2248: 'Persona::nome': impossibile accedere a private membro dichiarato nella classe 'Persona'
E questa è una delle differenze...
private, in ambedue i linguaggi, significa che il membro può essere visto solo all'interno della classe stessa.
Almeno credo...

Nessun commento:

Posta un commento