Besoin d'aide programmation orientée objet

Fermé
Elia - 13 sept. 2014 à 19:32
 nifertari - 15 sept. 2014 à 17:40
Bonjour,
Suite à mes études en école de chimie, je me suis réorienté dans un nouvel établissement afin de poursuivre de mes études.
J'ai eu la semaine dernière un cours sur la programmation orienté objet (matière que je n'ai jamais vu durant ma scolarité) et j'ai pour cette semaine un exercice à résoudre... N'ayant pas du tout fait d'informatique du tout, je ne comprends absolument rien. Et pour le coup, ce n'est pas de la mauvaise foi, j'ai repris le cours à plusieurs reprise, je me suis penché dans des livres, et je ne sais toujours pas comment faire... Mon exercice est le suivant :

Réalisez la classe Car avec un changement de vitesse.
1) La classe Car possède un attribut speed de type entier.

Réalisez le constructeur de la classe Car
1) sans argument, qui initialise la vitesse à zéro,
2) puis surchargez-le si l'on connait la vitesse initiale.

Rajoutez deux méthodes speedUp et speedDown
1) ne retournant rien mais permettant l'une d'incrémenter la
vitesse, l'autre de la décrémenter,
2) puis surchargez ces méthodes pour prendre en argument le
nombre de vitesses à passer.

J'ai commencé par faire ceci, car je pense qu'il faut d'abord que la voiture démarre non?


public class Voiture {
public void demarrer()
}

Par la suite, je rajoute ça (pour la vitesse je ne sais pas comment l'indiqué, est-ce en km/h, en fonction du levier de vitesse ou autre?)



public int drive(int speed){
int speed = 1;


Ensuite, je ne comprend pas le thème "surcharger", d'apres mon cours "On parle de surcharge lorsque l'on écrit une deuxième méthode, de même nom mais de signature différente" ça ne n'aide pas trop...



Si une âme charitable à l'aise avec Java pouvait m'aider, ça serait vraiment grandiose !

Merci par avance de vos lectures et de vos réponses :)

Elia


2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
13 sept. 2014 à 20:08
Bonjour,

je pense qu'il faut d'abord que la voiture démarre non?
Pas forcément. Même éteinte ta voiture a une vitesse (normalement 0).
D'ailleurs c'est écrit dans ta question 2.1 "initialise la vitesse à zéro"

"public class Voiture"
Dans ton énoncé on te demande une classe "Car" pas "Voiture", prends l'habitude de tout nommer en anglais, surtout quand c'est écrit dans l'énoncé !

"est-ce en km/h"
Si on ne t'imposes rien c'est à toi de choisir ce qui te parait le mieux. Il n'y a pas de bonne réponse. La seule contrainte que tu as c'est que la vitesse est un entier, l'unité que tu choisiras pourra donc jouer sur la précision.

"en fonction du levier de vitesse"
Effectivement, l'accélération pourrait dépendre de la position de la boîte de vitesse, mais ici c'est une voiture simplifiée que l'on te demande, alors on se contentera de faire des additions ou des soustractions, pas de gros calculs de physique automobile.

"je ne comprend pas le thème "surcharger""
Dans ton code tu vas avoir plusieurs méthodes speedUp et speedDown, tu en auras sans argument pour incrémenter (+1) ou décrémenter (-1) la vitesse, mais tu auras également des méthodes de même nom (donc encore speedUp et speedDown) mais qui cette fois prendront un argument : le nombre de vitesse à passer.
Tu auras donc deux méthodes speedUp et deux méthodes speedDown, on dira donc qu'elles sont surchargés vu qu'elles ont le même nom, ce qui n'est possible que parce que les arguments vont être différents (une n'en aura pas, l'autre aura un entier)

public int drive(int speed){
int speed = 1;

Attention : ici speed est déclaré deux fois, une première fois comme argument de la méthode et une deuxième fois comme variable locale dans le code. Il faut que les noms soient différents ou Java ne saura pas lequel est lequel (et toi non plus d'ailleurs...)
1
bonjour,

je te passe un lien très intéressant, qui explique très bien les notions de base.

http://blog.paumard.org/cours/java/

Vas y doucement et ça ira :)

Bon courage!!
0