15.1.09

java suite par KC

Jeudi 8 janvier - Curé java suite par KC
 

UML - Programmation orient object POO

Si on demande de simuler un cours au niveau de l'abstraction , on sait ce que c'est donc la programmation va être simplifiée.

Le niveau de réutilisabilité va être plus facile.

Sureté : en programmation objet c'est plus simple de restreindre les personne qui ont accès à certaines variables (pas trop possible en c ou du moins plus difficile à mettre en œuvre).

Les données sont encapsulées dans le noyau , encapsulées dans les méthodes java , un utilisateur est obligé de passer par les méthodes pour avoir accès aux données.

Pas de possibilité d'avoir accès directement aux données.

Les objets ont :

-          Identité

-          Etat : des données

-          Comportements : méthodes / actions

Classes:

Définition d'un ensemble d'entités ayant les mêmes caractéristiques (c’est un type riche).

L'objet d'une classe est une instance d'une classe (ou occurrence).

Voir exercice

Constructeur  méthode pour construire une Personne

public Personne(){

}

Nouvelle classe PersonneTest

 public class PersonneTest {

      public static void main(String[] args) {

            // TODO Auto-generated method stub

            Personne P1 = new Personne ();

      }

}

 

public class PersonneTest {

      public static void main(String[] args) {

            // TODO Auto-generated method stub

            Personne p1 = new Personne ();

            System.out.println(p1.nom + " " + p1.age);

            System.out.println(p1.direBonjour());

            p1.age = 39;

            p1.nom = "karine";

            System.out.println(p1.nom + " " + p1.age + " ans");

      }

}

Dans cet exemple  la possibilité de pler age et noms à cet endroit n'est pas très conforme à la sécurité.

Destructeur c’est un « ramasse miette » dès que p1 ne pointe sur rien on récupère l'espace mémoire pour un autre objet.


Pour connaître la propriété couleur du vélo, il faut passer par la méthode « donne-moi la couleur du vélo »

 voir  Acces slide 17

public class Personne {

private String nom ;

private int age;

public Personne(){  

}

public String direBonjour(){

      return "Bonjour";

}

public String getNom(){

      return nom ;

}

public int getAge(){

      return age;

}

public void setAge(int nouveauAge){

      age =nouveauAge ;

}
public void setNom(String nouveauNom){  

      nom =nouveauNom ;

}

}

Tout le monde peut avoir accès à getNom/getAge mais nom age sont privés

public class PersonneTest {

      public static void main(String[] args) {

            // TODO Auto-generated method stub

            Personne p1 = new Personne ();

            System.out.println(p1.getNom()+ " " + p1.getAge());

// Ligne au dessus sert à dire qu'a ce moment l'age et nom n'est pas  instancié//

            System.out.println(p1.direBonjour());

            p1.setAge(39);

            p1.setNom("karine") ;

            System.out.println(p1.getNom() + " " + p1.getAge() + " ans");

      }
}

 

This c'est la personne du noyau

HERITAGE

Une classe peut profiter des caractéristiques d'une autre classe!

Jusqu'à présent on avait à faire à des classes concrètes, des classes que l'on peut instancier.

Classes abstraites : non instanciées (flou)

Relève de l'organisation

Pour qu'une classe devienne concrète, il faut qu'elle implémente toutes les méthodes des classes abstraites dont elle hérite.

 

A Class abstraite de niveau le plus haut : Méthode S1();

B Class abstraite qui hérite de A : Méthode S2();

C Class concrète qui hérite de B pour que la class C soit concrète, elle doit implémenter S1(); et S2();

 

Un méta modèle : modèle qui permet de définir des modèles.

Logiciel qui modélise des modèles

UML Plus riche que le modèle Entités/Associations

 Processus développement : slide 29

 

MVC : Les données sont stocker de façon indépendante.

Voir java spring et

java strocke

Pour réaliser le modèle MVC avec java

 

Diagramme de Class

UML : solution gratuite par contre le reverse ingeniering est souvent payant ! (créer un diagramme d'après du code)

Tous les diagrammes reposent sur le diagramme de classe

 

Pour voir si il y a une relation d'héritage, il convient de se poser la question : EST UN 

Un VTT est un vélo --> c'est bon

Un velo est une personne NON ! Une personne conduit un vélo.

Au début on a tendance a attribuer des relations d'héritage lorsqu'il y a simplement une relation entre deux classes.

Poséidon  plug in pour eclipse

http://omondo.com/

Quitter Eclipse avant d'installer tout plug in