Partage
  • Partager sur Facebook
  • Partager sur Twitter

class java

Anonyme
    18 février 2020 à 14:09:07

     bonjour à tous , svp aidez moi j'ai l'exercicec i joint en photo , pour ce faire j'ai créer les classes suivnates mais j'ai quelques problèmes::

    dans ma classe File , en exécutant dans le main pour quoi   :

     System.out.println(pix.grayleveldiff(pix2));//renvoie 0 au lieu de15 et System.out.println(pix.equals(pix2));//renvoie true au lieu de False.

    dans ImageMain , pour quoi    System.out.println(pix.grayleveldiff(pix2));// renvoie 0 au lieu.

    dans PixelMain pourquo

     System.out.println(pix.grayleveldiff(pix2));//renvoie 0 au lieu de15

     System.out.println(pix.equals(pix2));//renvoie true au lieu de False..

    je sais que j'ai pas fait le paquetage comme demandé en exercice , j'ai tout fait dans un seul dossier, chaque main dans un fichier et classe aussi , pour que ca soit plus simple pour moi.

    Merci à toute personne qui prend de son temps pour me lire .

    Ps : j'ai essayé de faire plus beau en partageant , et je voulais mettre chaque classe dans un commentaire , mais comme c'est pas autorisé , désolée de mettre toute les classess ainsi .sachant que ses classes n'ont aucun problème de compilation



    • public class File{
      	public String chemin;
      	public Image photo; //chaque fichier a une image
      	
      	public File(String chem){
      		this.chemin=chem;}
      
      	public String getchemain(){return this.chemin;}
      	public Image getimage(){return this.photo;}
      
      	public String toString(){
      	   return "le chemin est:"+ this.chemin + "d'image"+this.getimage();}
      
      
      
      
      	
      		}
      
      // javac FileMain.java
      // java FileMain
      
      public class FileMain{
      
        public static void main(String[] args){
      	File fichier=new File("path1");
      	System.out.println(fichier.getchemain());
      	System.out.println(fichier.toString());
      	Image im=new Image(4,4);
      	System.out.println(im.initimagefromfile(fichier));///renvoie null
      }}
      	
      
      public class Image{
      	
      	public int hauteur;
      	public int largeur;
      	public Pixel tab [][]; 
      					
      
      	public Image(int h,int l){
      	
      	this.hauteur=h;	
      	this.largeur=l;
      	this.tab=new Pixel[Pixel.graylevel][Pixel.graylevel];
      
      
      				}
      
      	
      	public int gethauteur(){return this.hauteur;}
      	public int getlargeur(){return this.largeur;}
              
      /**renvoie le nombre de pixel dans une image*/
      	public int getnombrepixelimage(){
      		return this.tab.length; }
      
      
      
      	//pas de length(tab) sur les tableaux attention!
      	public Image initimagefromfile(File f){
      		return f.getimage();}
      
      
      	
      	public boolean equals(Object o){
      	if (o instanceof Image){Image other= (Image)o;return this.hauteur==other.hauteur&& this.largeur==other.largeur;}
      	else{return false;}}
      
      
      
      	
      
      	/*fonctionne pas **/
      	public int numberoftodiffpix(Image other){
      	if (this.equals(other)==true){
      	int n=this.getnombrepixelimage()-other.getnombrepixelimage();
      
      	return n;	}
      	else {return 0;}					
      						}
      
      			
      
      
      						 
      
      
      
      		} 
      
      
      
      // javac ImageMain.java
      // java ImageMain
      public class ImageMain{
      
        public static void main(String[] args){
      	Pixel pix= new Pixel(20);
      	System.out.println(pix.getgraylevel()); //20
      	Pixel pix2= new Pixel(5);
      	System.out.println(pix.getgraylevel());//05
      	System.out.println(pix.grayleveldiff(pix2));// renvoie 0 au lieu de 15
      	System.out.println(pix.toString());
      	
      	
      	
      
      
      /**
      	File fichier=new File("path1");
      	Image im=new Image(4,4);
      	System.out.println(im.gethauteur());
      	System.out.println(im.getlargeur());
      	System.out.println(im.getnombrepixelimage());
      	
      	System.out.println(im.initimagefromfile(fichier));//renvoie nul au lieu de im**/
      	
      					}
      
      
      
      }
      
      public class Pixel {	
      	 public static int  graylevel=255; /**piwel estt identité par niveaugray*/
      	
      
      	public Pixel(int i){ //constructeur 
      		 this.graylevel=i;}
      
      	/*renvoie niveau de gris d'un pixel*/
      	public int getgraylevel(){return this.graylevel;} 
      
      
      	/*renvoie lla différences entre 2pix*/
      	/**mais fonctionne pas*/
      
      	public int grayleveldiff(Pixel other){
      	int diff=this.getgraylevel()-other.getgraylevel();		
      System.out.println(diff);
      	
      
      
      	return diff;
      						}
      	
      	
      
      
      	
      
      
      	public String toString(){
      return "le pixel est :" + this.graylevel;}
      	/**fonctionne pas aussi*/
      	public boolean equals(Object o) {
      
      		if (o instanceof Pixel) {
      			Pixel other = (Pixel) o;
      			return this.graylevel==other.graylevel ;}
      		else {
      			return false;
      		     }
      					}
      	
      
      
      
      
      }
      
      // javac PixelMain.java
      // java PixelMain
      
      public class PixelMain{
      
        public static void main(String[] args){
      	
      
      	
      	Pixel pix= new Pixel(20);
      	//System.out.println(pix.getgraylevel()); //20
      	Pixel pix2= new Pixel(5);
      	//System.out.println(pix.getgraylevel());//05
      	System.out.println(pix.grayleveldiff(pix2));//renvoie 0 au lieu de15
      	//System.out.println(pix.toString());
      	System.out.println(pix.equals(pix2));//renvoie true au lieu de False
      
      
      					}
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      			}
      
      
      
      
      
      
      

      Bonjour à tous, j'ai l'exercice ci joint dans la photo

    -
    Edité par Anonyme 18 février 2020 à 14:23:27

    • Partager sur Facebook
    • Partager sur Twitter
      18 février 2020 à 16:22:57

      Je n'ai pas tout lu et il y a beaucoup, beaucoup d'erreurs dans ton code.

      • L'énoncé ne te demande pas d'écrire une classe File, mais suppose que quelqu'un d'autre l'a écrite.
        Bon, si tu veux tester ton code, tu es en effet obligé de l'écrire toi-même... mais tu te compliques la vie, d'autant que vu ton niveau tu ne sauras pas écrire une classe qui lit une image depuis un fichier.

      • Dans ta classe File, aucune valeur n'est jamais attribuée à la variable photo.
        Donc elle est null, et getimage() renvoie toujours null.

      • Dans ta classe Pixel, la variable graylevel est déclarée static. Ca veut dire que c'est la même pour toutes les photos.
        Donc évidemment, quand grayleveldiff() compare la variable graylevel depuis deux pixels différents, il compare en fait deux fois la même variable... donc la différence fait toujours 0.
        Enlève le mot-clé static et ça ira déjà un peu mieux.

      • Dans la classe Image :
        this.tab=new Pixel[Pixel.graylevel][Pixel.graylevel];
        Cette ligne signifie que tu crées un tableau de largeur 255 et de longueur 255 (puisque Pixel.graylevel vaut 255). Il faut que tu indiques plutôt la largeur et la longueur que tu veux.
        Dans un deuxième temps, après avoir créé un tableau vide avec les dimensions que tu veux, il faut le remplir avec les valeurs 255. Je te laisse trouver...

      • Java ne connaît que des tableaux à 1 dimension.
        Un tableau à 2 dimensions, ce sont en fait des tableaux imbriqués dans un grand tableau.
        Donc quand tu écris ça :
        this.tab.length
        Tu obtiens la longueur du "grand" tableau, c'est-à-dire le nombre de lignes (ou de colonnes, ça dépend dans quel sens tu l'as défini). Ce n'est pas le nombre de pixels !

      • Je te lis ce que fait la méthode numberoftodiffpix :
        Si les deux tableaux sont égaux (c'est-à-dire, si j'en crois la méthode equals : s'ils ont la même hauteur et la même largeur), alors on renvoie la différence entre le nombre de pixels de celui-ci et le nombre de pixels de l'autre.
        Ce n'est pas la réponse que j'attendrais de cette méthode.

      -
      Edité par Zachee54 18 février 2020 à 16:24:00

      • Partager sur Facebook
      • Partager sur Twitter

      class java

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown