j ai un code conposer de 4 classes et je voudrait declarer chaque classe public mais quand je le fait il me retourne une erreur disant que je doit enregistrer le ficher sous le non de 3 differente autre classe.
Comment faire ????
ensuite j aimerais acceder a un parametre (capaciteMegaOctet) qui est calculer dans la sous classe DisqueDur pour l utiliser dans la sous classe CDRW
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132 public abstract class Support{ // quantité de données contenues sur le disque protected int occupation; // constructor public Support(){ occupation = 0; } // la capacité du support public abstract int capacite(); // sauvegarde de données, s'il y a suffisamment d'espace public boolean sauvegarder(int taille){ if (capacite() - occupation >= taille){ occupation += taille; return true; } return false; } // affichage de l'espace disponible public String toString(){ int cap = capacite(); return (cap - occupation) + " MB libres sur un total de " + cap + " MB libres"; } } class DVDR extends Support{ // nombre de layers du DVD private boolean doubleCouche; // constructor public DVDR(boolean doubleCouche){ this.doubleCouche = doubleCouche; } // 4.7GB par layer public int capacite(){ return 4489 * (doubleCouche ? 2 : 1); } // affichage public String toString(){ return "DVD-R " + (doubleCouche ? "Dual Layer" : "")+ "\n\t" + super.toString(); } } public class DisqueDur extends Support{ // nombre de piste, de plateau et de cylindre private int nbPiste, nbPlateau, nbCylindre; //constructeur public DisqueDur(int nbPiste, int nbPlateau, int nbCylindre){ this.nbPiste = nbPiste; this.nbPlateau = nbPlateau; this.nbCylindre = nbCylindre; } // capacite du disque dur en mega octet public int capacite(){ int capaciteMegaOctet = nbPiste * nbPlateau * nbCylindre / 1024 ; return capaciteMegaOctet ; } // redefinition de toString pour l affichage public String toString(){ return "DisqueDur " + "\n\t" + super.toString(); } } public class CDRW extends Support { // nombre de minute private int nbMinutes; //constructor public CDRW(int nbMinutes){ this.nbMinutes = nbMinutes; } // capacite du cd-rw en minutes public int capacite(){ return (capaciteMegaOctet )/ 8.75; } // redefinition de la methode toString pour l affichage public String toString(){ return "CR-RW " + "\n\t" + super.toString(); } } public class Sauvegarde{ public static void main(String[] args) { Support[] supports = { new DVDR(false), new DisqueDur(427, 4, 32767), new CDRW(74), new DisqueDur(383, 3, 28671), new DVDR(true), new CDRW(80) }; for (int i = 0; i < 10; i++) for (int j = 0; j < supports.length; j++) supports[j].sauvegarder((int) (Math.random() * 300) + 200); System.out.println("Les supports apres quelques ecritures:\n"); for (int j = 0; j < supports.length; j++) System.out.println(supports[j]); } }
C:\Documents and Settings\Comps\My Documents\1170-tp3\exo2\Sauvegarde.java:19: class Support is public, should be declared in a file named Support.java
public abstract class Support{
^
C:\Documents and Settings\Comps\My Documents\1170-tp3\exo2\Sauvegarde.java:74: class DisqueDur is public, should be declared in a file named DisqueDur.java
public class DisqueDur extends Support{
^
C:\Documents and Settings\Comps\My Documents\1170-tp3\exo2\Sauvegarde.java:103: class CDRW is public, should be declared in a file named CDRW.java
public class CDRW extends Support {
^
C:\Documents and Settings\Comps\My Documents\1170-tp3\exo2\Sauvegarde.java:116: cannot resolve symbol
symbol : variable capaciteMegaOctet
location: class CDRW
return (capaciteMegaOctet )/ 8.75;
^
C:\Documents and Settings\Comps\My Documents\1170-tp3\exo2\Sauvegarde.java:116: possible loss of precision
found : double
required: int
return (capaciteMegaOctet )/ 8.75;
Partager