Java Constructeurs
Je suis en train d'apprendre comment spécifier les constructeurs de classe en Java. Je commence à comprendre qu'ils spécifier les types des variables d'instance des objets fabriqués à partir de cette classe. Ils peuvent aussi être utilisés pour définir la variable d'instance valeurs initiales. L'exemple suivant est de Java tutoriel sur le site de Sun:
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
Où dans vos cours de code source devrait vous mettre le constructeur(s)?
Sont ces arguments que les noms de variables?: (int startCadence, int startSpeed, int startGear) ou sont vitesse, de cadence et de vitesse les noms des variables?
Quelle est la différence entre (int startCadence, int startSpeed, int startGear) et de l'engrenage, de cadence et de vitesse?
Dans le cas peu probable que mon instructeur ou de tout administrateur de Salt Lake Community College vient jamais à travers cette question, permettez-moi de faire mes intentions claires. Cette question est affiché dans le plus grand esprit de l'intégrité en milieu scolaire. Je pose cette question pour demander des conseils généraux et de les aider dans la compréhension de la façon appropriée d'utiliser le langage de programmation Java. J'ai en aucune façon d'utiliser le travail des autres et de la représenter comme mon propre travail. J'utilise les réponses fournies ici comme un général de l'aide dans ma compréhension. Je fais tout mon propre travail et ne pas copier le travail fourni par les gens de répondre à ma question.
Vous devez vous connecter pour publier un commentaire.
Les constructeurs peuvent apparaître n'importe où dans le code de la classe. Toutefois, par convention, la plupart des gens mettent leur avant toutes autres fonctions qui ne sont pas des constructeurs.
Comme pour les noms de variable, tous les 6 sont en fait les noms de variables, mais la portée est differnet. Ceux spécifiés comme paramètres au constructeur (startCadence, startSpeed, startGear) ne sont disponibles que dans le constructeur. Les 3 autres (équipement, de cadence, de vitesse) sont probablement l'ensemble des variables, disponible pour toutes les méthodes. Toutefois, la définition n'est pas indiqué dans votre extrait de code. La classe aurait l'air de manière plus comme:
Espère que ça aide!
engins, de cadence et de vitesse sont variables membres de la classe (classé ailleurs) et startCadence, startSpeed, et startGear sont les paramètres de la fonction.
J'utilise la suite:
Mais ils peuvent aller n'importe où. Je pense qu'il est mieux yo remettre les choses dans l'ordre de la visibilité. Par exemple, j'ai plutôt les méthodes publiques avant les méthodes privées ( donc, si je suis à la recherche d'un public spécifique méthode je sais que c'est en haut de la fiche ) Pour la même raison, j'ai l'habitude de mettre le constructeur en haut.
Pas nécessaire, vous pouvez les nommer comme vous le souhaitez. J'ai l'habitude d'utiliser le même nom.
Ils sont les instance les noms de variables
Les premiers sont les noms de paramètre pour le constructeur et l'ancien sont les noms des attributs de l'objet lui-même.
Cet autre exemple:
Comme vous le voyez, lorsque vous passez une valeur pour le constructeur, vous êtes à l'aide d'un argument, et quand vous voyez le code du constructeur, vous voyez le nom du paramètre ( qui reçoit cet argument ) et puis il est affecté à l'instance de l'attribut.
En général, je mets ma constructeurs près du haut de mon fichier, après le forfait, l'importation, la Javadoc, et statique/variable d'instance de la déclaration de sections.
engins, de cadence et de vitesse sont les variables de classe, sans doute définies à l'extérieur de l'constructeur de quelque part. startCadence, startSpeed, et startGear sont également des variables, mais ils sont les paramètres passés au constructeur.
Vous pouvez également voir quelque chose comme ceci:
qui définit la classe des variables à partir des paramètres du même nom.
gear
,cadence
, etspeed
sont les variables.ints
du constructeur. Les noms (startCadence
,startSpeed
, etstartGear
sont appelés les paramètres formels, et ils sont la façon dont vous pouvez identifier les arguments. Voir http://en.wikipedia.org/wiki/Parameter_(computer_science).gear
,cadence
, etspeed
sont définis ailleurs dans la classe. N'importe quelle méthode de la classe peut s'y référer.Ne vous inquiétez pas: si vous travaillez à lui, ce genre de chose sera une seconde nature très bientôt.
Oh, et je suggère que vous obtenez une bonne IDE? BlueJ est censé être bon pour les débutants, et NetBeans et Eclipse pour les programmeurs plus expérimentés. Le code Source de la surbrillance peut être inestimable.
Vous avez vraiment besoin d'une copie de La Tête La Première, Java
En fait, les arguments pour un constructeur de ne pas avoir à stockée en tant qu'objet de variables membres. Voici un exemple:
Dans cet exemple, l'argument du constructeur n'est pas réellement stocké n'importe où, mais sa valeur est nécessaire pour le calcul d'un ou de plusieurs membres de valeurs de la variable.
Le comportement que vous avez vu, où tous les arguments sont directement stockés en tant que variables membres, est assez commun. En particulier pour certains types de classes qui fournissent simplement "getter" et "setter" des méthodes pour les variables de membre (sans calcul ou les fonctions de transformation). Dans le monde java, ces types de cours sont communément appelés "les haricots". (Qui, oui, est un nom stupide.)
La différence fondamentale entre les int startCadence et la cadence n'est pas dans les variables, mais dans leur champ d'application. Si une variable est définie à l'intérieur d'une méthode, comme un constructeur, il ne pourra exister à l'intérieur de cette méthode, mais pas à l'extérieur. Si une variable est définie dans une classe, il existent partout dans la classe, une telle variable a une portée globale.
La variable startCadence wll n'existent que dans le constructeur, donc si vous voulez utiliser la valeur d'ailleurs, vous pouvez passer à une autre variable de portée mondiale. C'est ce qui se passe ici: cadence = startCadence;
1) l'emplacement de L'constructeur n'a pas d'importance dans le moindre. En passant par convention, cependant, je tiens à personnellement lieu comme suit:
2) engin, de cadence et de vitesse sont variables membres de la classe; ils appartiennent à chaque Vélo, et sont des variables différentes pour chaque Vélo. startCadence, startSpeed, et startGear, cependant, sont des variables locales, qui n'appartiennent à cette fonction. Quand j'appelle pour un
startCadence est défini sur 10, startSpeed est fixé à 15, et startGear est réglé à 5. Ensuite, le constructeur initialise les variables de membre de à leur "démarrer" variables correspondantes.
La
(int startCadence, int startSpeed, int startGear)
paramètres sont les arguments du constructeur et ils seront mis en Vélo champscadence
,speed
, etgear
. Ils sont disponibles uniquement dans le constructeur.gear
,cadence
, etspeed
sont variables d'instance unique pour chaque Vélo instance et referencable à d'autres méthodes.Les arguments du constructeur vous permettent de fournir des paramètres pour l'initialisation d'un objet. Dans cet exemple, vous pouvez créer un Vélo d'objet avec une vitesse de 1, cadence de 0, et une vitesse de 0 comme suit:
Ou vous pouvez en créer un en se déplaçant à Vélo où la cadence est de 60 tr /min, et la vitesse de 10 km /h, au 3ème vitesse comme suit:
Le placement du constructeur n'est pas pertinent, mais, habituellement, les constructeurs sont placées au début de la définition de la classe.