Est-ce que Java a un analogue d'un C++ struct
:
struct Member {
string FirstName;
string LastName;
int BirthYear;
};
Je dois utiliser mon propre type de données.
Java n'a définitivement pas de structure:) Mais ce que vous décrivez ici ressemble à un type de classe JavaBean.
L'équivalent en Java d'une structure serait
class Member
{
public String FirstName;
public String LastName;
public int BirthYear;
};
et il n'y a rien de mal à cela dans les bonnes circonstances. C'est un peu la même chose qu'en C++ en ce qui concerne le moment où vous utilisez une struct verse quand vous utilisez une classe avec des données encapsulées.
Java n'a pas d'analogue aux structures de C++, mais vous pouvez utiliser des classes avec tous les membres publics.
En réalité, une structure en C++ est une classe (par exemple, vous pouvez y définir des méthodes, elle peut être étendue, elle fonctionne exactement comme une classe), la seule différence est que les modfieurs d'accès par défaut sont définis sur public (pour les classes, ils sont définis sur privée) par défaut).
C’est vraiment la seule différence en C++, beaucoup de gens ne le savent pas. ; )
Oui, un cours est ce dont vous avez besoin. Une classe définit son propre type.
Les structures "vraiment" pures ne sont pas supportées en Java. Par exemple, C # prend en charge les définitions struct
qui représentent des valeurs et peuvent être attribuées à tout moment.
En Java, le moyen unique d'obtenir une approximation des structures C++
struct Token
{
TokenType type;
Stringp stringValue;
double mathValue;
}
// Instantiation
{
Token t = new Token;
}
sans utiliser (tampon statique ou liste) fait quelque chose comme
var type = /* TokenType */ ;
var stringValue = /* String */ ;
var mathValue = /* double */ ;
Il suffit donc d’allouer des variables ou de les définir de manière statique dans une classe.
Avec le projet JUnion, vous pouvez utiliser les structures en Java en annotant une classe avec l'annotation @Struct.
@Struct
class Member {
string FirstName;
string LastName;
int BirthYear;
}
Plus d'informations sur le site web du projet: https://tehleo.github.io/junion/
Oui, Java n'a pas encore de type struct/value. Mais, dans la prochaine version de Java, nous allons obtenir inline class
, qui est similaire à struct en C # et nous aidera à écrire du code sans allocation.
inline class point {
int x;
int y;
}