fbpx
Skip to main content
  1. SouldealeR
  2. Ingegneria Informatica - Triennale
  3. Venerdì, 24 Febbraio 2006
  4.  Subscribe via email
Qualcuno ha percaso qualche informazione su chi terrà il corso al quarto ciclo per quest'anno ? Magari qualcuno che ha avuto indiscrezioni da Pettorossi seguendo Automi oppue Cantone facendo l'appello fra poco...
Grazie.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Ho fatto il compito del bambino ragazzo:

package metamorfosipersona;


public class Persona {
private int anni;
private Classificazione classificazione;

public Persona() {
this.nasci();
}

public void nasci(){
classificazione = new Bambino();
}
public void giornoDiCompleanno(){
System.out.println("Tanti auguri!!! Ora hai "+(++anni)+" anni!!!";);
if (anni==14){
System.out.println("Ora sei un ragazzo!!!";);
this.diventaRagazzo();
}
}
public void diventaRagazzo(){
classificazione = new Ragazzo();
}
public int getAnni(){return anni;}

public void quantiAnniHai() {
System.out.println("Ho "+this.getAnni()+" anni";);
}
public void compraMotorino(){
classificazione.compraMotorino();
}
public void gatHaiMotorino(){
classificazione.getHaiMotorino();
}
public void parla(){
classificazione.parla();
}

}

FINE CLASSE PERSONA

package metamorfosipersona;


abstract public class Classificazione {
public void getHaiMotorino(){System.out.println("Non sei un ragazzo";);}
public void compraMotorino(){System.out.println("Non sei un ragazzo!!!";);}
public void parla(){}
/** Creates a new instance of Classificazione */
public Classificazione() {
}

}


FINE CLASSE CLASSIFICAZIONE

package metamorfosipersona;

public class Bambino extends Classificazione{
public void parla(){
System.out.println("Sono un bambino";);
}
public Bambino() {
}

}

FINE CLASSE BAMBINO

package metamorfosipersona;

public class Ragazzo extends Classificazione{
boolean haiMotorino=false;
public void getHaiMotorino(){
if (haiMotorino==false){
System.out.println("Non hai il motorino";);
}
else System.out.println("Hai il motorino";);
}
public void compraMotorino(){
if (haiMotorino==false){
haiMotorino=true;
System.out.println("Hai comprato un motorino";);
}
else System.out.println("Hai già un motorino!!!";);

}
public void parla(){
System.out.println("Sono un ragazzo";);
}

public Ragazzo() {
}

}


FINE CLASSE RAGAZZO

package metamorfosipersona;

public class SimulaVita {


public static void main(String[] args) {

Persona persona = new Persona();
for (int i=0; i<20;i++){
persona.quantiAnniHai();
persona.giornoDiCompleanno();
if(persona.getAnni()==10){
System.out.println("Eseguo un test, provo a comprare un motorino";);
persona.compraMotorino();
}
if(persona.getAnni()==15){
System.out.println("Eseguo un test, provo a comprare un motorino";);
persona.compraMotorino();
}
if(persona.getAnni()==18){
System.out.println("Eseguo un test, provo a comprare un motorino";);
persona.compraMotorino();
}
if(persona.getAnni()==3){
persona.parla();
}
if(persona.getAnni()==17){
persona.parla();
}

}

}

}

FINE CLASSE SIMULAVITA

Il programma compila perfettamente


levando vari public il programma compila
Comment
There are no comments made yet.
Accepted Answer Pending Moderation

levando vari public il programma compila


Se ogni classe la metti in un file diverso compila anche coi public ;)

Ciap
Comment
There are no comments made yet.
Accepted Answer Pending Moderation

levando vari public il programma compila


Se ogni classe la metti in un file diverso compila anche coi public ;)

Ciap


infatti il compilatore me lo ha detto :D
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
COMPOSIZIONE

public class X
{
public X()
{
ogg1 Y = new ogg1();
ogg2 Z new ogg2();
}
...
}


AGGREGAZIONE
public class X
{
public X(ogg1 a, ogg2 b)
{
ogg1 Y = a;
ogg2 Z = b;
}
...
}


allora non ha senso il codice scritto nella slide 91UML2Java.pdf a pag7.
che casino la parte sul java delle relazioni :?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
[code type="markup"]
public class X
{
public X()
{
Y ogg1 = new Y();
Z ogg2 = new Z();
}
...
}
[/code]
questa qui è composizione,infatti ogg1 e ogg2 vanno out of scope quando un oggetto di tipo X va out of scope.


[code type="markup"]
public class A {
public void fun1() { ... }
public void fun2() { ... }
public void fun3() { ... }
}

public class B {
private A a;
public void fun1() { a.fun1(); }
public void fun2() { a.fun2(); }
}

[/code]

questa qui è composizione con finalità perverse.Infatti se leggete il capitolo 4 di Effective Java ":Inheritance breaks Incapsulation:favor composition instead of inheritance" cioè evidentemente la classe B non si vuole accollare tutta l'interfaccia di A,cioè non vuole estenderla,ma solo usarne una parte.

[code type="markup"]
COMPOSIZIONE

public class X
{
public X()
{
ogg1 Y = new ogg1();
ogg2 Z =new ogg2();
}
...
}


AGGREGAZIONE
public class X
{
public X(ogg1 a, ogg2 b)
{
ogg1 Y = a;
ogg2 Z = b;
}
...
}
[/code]
Giustissimo,non fa una piega![/code]
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ho fatto l'esercizio sulla metamorfosi della rana e del girino.
Non so, sara' che sono bravo io, ma le slide mi sembravano chiare :shock: . cmq ecco qua:


package Metamorfosi;
public class Metamorfosi{
public static void main(String args[]){
Anfibio a1,a2,t;
Classification cg,cr;
Rana r=new Rana(34);
Girino g=new Girino(12);
cg=g;
a1=new Anfibio(cg);
for (int i=0;i<17;i++){
a1.cresci();
}
a1.muta(r);
a1.cresci();
a1.muta(r);
a1.gracchia();
}
};
class Anfibio{
private Classification c;
public void cresci(){c.setEta(c.getEta()+1);}
public void muta(Rana r){
if((c.getEta()==30)&&(c.getId()=="girino";)){
c=r;
}
else{
System.out.println("sono troppo giovane per mutare,sono un "+c.getId()+", ho ancora "+c.getEta()+" giorni.";);
}
}
Anfibio(Classification c){
this.c=c;
}
public void gracchia(){
c.gracchia();
}
}
abstract class Classification{
private String id;
private int eta;
public String getId(){return id;}
protected void setId(String s){id=s;}
protected void setEta(int e){eta=e;}
public int getEta(){return eta;}
public void gracchia(){};
}
class Girino extends Classification{
Girino(int e){
setEta(e);
setId("girino";);
}
public void nuota(){};//da implementare
}
class Rana extends Classification{
Rana(int e){
setEta(e);
setId("rana";);
}
public void salta(){}//da implementare
public void gracchia(){
System.out.println("crack!";);
}
}

che simpatico programma eh? :D
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
uff sono saltate tutte le rientranze, cosi' è piu' brutto.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation


ABBI FEDE :D

no scherzo cmq in composizione gli aggregati sono legati alla vista dell'aggregatore

viceversa per l'aggregazione (aggregazione by ref)


:?: :?: :?: :?: :?: :?: :?: :?:
ma che vuol dire questa frase!!!!!???????????????????????


vista = vita
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
fisicaccio scusa ma che hai scritto esattamente? E' un bel casino quel codice ;)

Ciap
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ho fatto l'esercizio sulla metamorfosi della rana e del girino.
Non so, sara' che sono bravo io, ma le slide mi sembravano chiare :shock: . cmq ecco qua:


package Metamorfosi;
public class Metamorfosi{
public static void main(String args[]){
Anfibio a1,a2,t;
Classification cg,cr;
Rana r=new Rana(34);
Girino g=new Girino(12);
cg=g;
a1=new Anfibio(cg);
for (int i=0;i<17;i++){
a1.cresci();
}
a1.muta(r);
a1.cresci();
a1.muta(r);
a1.gracchia();
}
};
class Anfibio{
private Classification c;
public void cresci(){c.setEta(c.getEta()+1);}
public void muta(Rana r){
if((c.getEta()==30)&&(c.getId()=="girino";)){
c=r;
}
else{
System.out.println("sono troppo giovane per mutare,sono un "+c.getId()+", ho ancora "+c.getEta()+" giorni.";);
}
}
Anfibio(Classification c){
this.c=c;
}
public void gracchia(){
c.gracchia();
}
}
abstract class Classification{
private String id;
private int eta;
public String getId(){return id;}
protected void setId(String s){id=s;}
protected void setEta(int e){eta=e;}
public int getEta(){return eta;}
public void gracchia(){};
}
class Girino extends Classification{
Girino(int e){
setEta(e);
setId("girino";);
}
public void nuota(){};//da implementare
}
class Rana extends Classification{
Rana(int e){
setEta(e);
setId("rana";);
}
public void salta(){}//da implementare
public void gracchia(){
System.out.println("crack!";);
}
}

che simpatico programma eh? :D


scusami ma nn capisco la presenza della classe Anfibio
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
fisicaccio scusa ma che hai scritto esattamente? E' un bel casino quel codice ;)

Ciap

a okkio io te e lui l'abbiamo fatto uguale
poi il suo è + gonfio
ma la base è la stessa
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Beh quello di fisicaccio secondo me non implementa bene la metamorfosi infatti istanzia nel main troppa roba, tra cui oggetti della classe classification.

Ciap
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
regà,

mancano 11 ore all'esame...

ABBASTA! :)
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
no infatti :wink:
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
a'nfatti ...
Comment
There are no comments made yet.
Accepted Answer Pending Moderation


P.S. = in Java c'è differenza tra Class e class... ;)


:shock: Sarebbe?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
nn ho parole, 4 ore di compito e ci ha fatto fare mezza slides...
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ridiamo tutti insieme? Dai!









Io lo prendo a testate....
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Purtroppo l'avevo previsto, in tempi non sospetti (vedi pag. 41 del thread):
PRIMA[/size] avremmo evitato di perdere tempo prezioso nel decifrare quel migliaio di dispense inutili!!!!! :evil: :evil: :evil: :evil: :evil: :evil: :evil:
E neanche possiamo bruciarle subito, perché non sappiamo ancora se serviranno per l'orale o se l'orale sarà ancora incentrato (come lo scritto di oggi) su UML e scrittura/interpretazione di classi JAVA! :evil: :evil: :evil: :evil:
La cosa positiva è che ora sappiamo con certezza che per superare lo scritto BASTA padroneggiare a livello pratico Java, UML e la programmazione a oggetti! :wink:
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Se qualcuno non ha ancora bruciato (come ho fatto io) la brutta copia dello svolgimento del suo compito, sarebbe bello se la potessimo mettere online, a beneficio dei posteri o di chi (saggia scelta!) stamattina era al mare con la ragazza! :lol:
Comment
There are no comments made yet.


There are no replies made for this post yet.
Be one of the first to reply to this post!