View Full Version : [Java] dubbi teorici
Ho iniziato da poco lo studio di java, xò conosco già il C (basi).
Ho dei dubbi su:che cos'è il pattern?
Un'alto dubbio è: un listener si implementa con l'interfaccia Actionlistener. Però ho letto che un listener lo si può usare su più bottoni. Con la classe anonima questo non è possibile. Giusto?
Spero di aver descritto bene i miei dubbi :)
devbeginner
11-07-2011, 10:27
Ho iniziato da poco lo studio di java, xò conosco già il C (basi).
Ho dei dubbi su:che cos'è il pattern?
Un'alto dubbio è: un listener si implementa con l'interfaccia Actionlistener. Però ho letto che un listener lo si può usare su più bottoni. Con la classe anonima questo non è possibile. Giusto?
Spero di aver descritto bene i miei dubbi :)
perdona la franchezza ma...tu conosci le basi di C e sai ragionare e scrivere codice con un approccio orientato agli oggetti?
Perché senza un solido background di quel tipo (che non si ottiene scrivendo un po' di righe in C), mi sembra superfluo studiare i design pattern o addentrarsi in questione tecniche di quel tipo...
L'anno scorso ho studiato il C che è un linguaggio di programmazione strutturale.
Quest'anno sempre per motivi didattici ho dovuto imparare il java che è un linguaggio OOP.
Quindi al momento so ragionare + o - sia in oggetti che non :)
questo volevi sapere?
wingman87
11-07-2011, 10:47
Ho iniziato da poco lo studio di java, xò conosco già il C (basi).
Ho dei dubbi su:che cos'è il pattern?
Un'alto dubbio è: un listener si implementa con l'interfaccia Actionlistener. Però ho letto che un listener lo si può usare su più bottoni. Con la classe anonima questo non è possibile. Giusto?
Spero di aver descritto bene i miei dubbi :)
Un pattern è una coppia problema-soluzione dove però il problema e la soluzione sono di tipo progettuale, non algoritmico.
Dire che un listener si implementa con l'interfaccia ActionListener non è corretto, nel senso che si deve implementare il Listener adatto al tipo di evento che si vuole "ascoltare". Ad esempio ActionListener va bene per "ascoltare" l'evento di pressione di un pulsante, ma esistono anche altri tipi di eventi.
Detto questo, se vuoi usare la stessa classe anonima come listener per più eventi puoi assegnarne il riferimento ad una variabile:
ActionListener listener = new ActionListener(){...};
button1.addActionListener(listener);
button2.addActionListener(listener);
EDIT: dimenticavo di dire che in questo modo però condividi tra i vari button la stessa istanza di ActionListener. Non è detto che questo vada sempre bene
banryu79
11-07-2011, 10:48
Ho iniziato da poco lo studio di java, xò conosco già il C (basi).
Ho dei dubbi su:che cos'è il pattern?
Un'alto dubbio è: un listener si implementa con l'interfaccia Actionlistener. Però ho letto che un listener lo si può usare su più bottoni. Con la classe anonima questo non è possibile. Giusto?
Spero di aver descritto bene i miei dubbi :)
Qui trovi una spiegazione (http://it.wikipedia.org/wiki/Design_pattern) su cosa sia un (design) pattern. E qui un sito interessante (http://sourcemaking.com/), in materia.
Per quanto riguarda un listener implementato con una classe anonima: sì, lo puoi usare su più bottoni, ad esempio:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class MainFrame
{
public static void main(String[] args) {
MainFrame f = new MainFrame();
f.show();
}
private final JFrame frame;
public MainFrame() {
frame = new JFrame("MainFrame");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// init button listener
ActionListener listener = new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "You just clicked a button -_-'");
}
};
// init buttons
JButton[] buttons = new JButton[3];
for (int i=0; i<3; i++) {
buttons[i] = new JButton("Button" + i);
buttons[i].addActionListener(listener);
}
// add components
JPanel panel = new JPanel();
Box box = Box.createVerticalBox();
for (JButton b : buttons) {
box.add(Box.createVerticalStrut(10));
box.add(b);
}
panel.add(box);
frame.add(panel);
}
private void show() {
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
ok! ho capito!
ricapitolando
io negli appunti avevo scritto:
Pattern: nella OOP rappresenta una schema progettuale che fornisce una soluzione ad un problema ricorrente.
E l'avete confermato.
Per quanto riguarda la classe anonima e l'action listener mi avete fatto vedere come si implementa ma wingman87 ha specificato che in questo modo però condividi tra i vari button la stessa istanza di ActionListener. Non è detto che questo vada sempre bene
ok grazie. Visto che sto studiando da autodidatta sarebbe meglio lasciare il topic aperto tanto fino a stasera ne sorgo di altri dubbi
devbeginner
11-07-2011, 11:03
L'anno scorso ho studiato il C che è un linguaggio di programmazione strutturale.
Quest'anno sempre per motivi didattici ho dovuto imparare il java che è un linguaggio OOP.
ehm sì lo so anche io che paradigmi supportano C e Java :D
Quindi al momento so ragionare + o - sia in oggetti che non :)
questo volevi sapere?
Diciamo di sì...scrivendo che hai studiato le basi di C ed hai iniziato da poco Java mi sembrano sia affermazioni un po' in contrasto con solide basi OOP comunque ok può essere mi sbagli.
Se ti chiedo di darmi la definizione e scrivere un esempio di polimorfismo lo sapresti ad occhi chiusi giusto?
Per farla molto terra terra un pattern è la soluzione ad un problema ricorrente nel software design.
Nell'introduzione della Gang of Four, il libro che chiunque legge quando si addentra in queste tematiche, si scrive come gli sviluppatori si siano accorti ad un certo punto che durante la loro esperienza di lavoro ci fossero dei problemi che si ripresentavano schematicamente più o meno nella medesima forma.
Sono stati enucleati, divisi per categoria ed i design pattern sono le soluzioni, di fatto, a quei problemi.
Listener, che nel libro viene chiamato Observer (anche se presenta qualche differenza) è un esempio abbastanza tipico.
C'è un oggetto che scatena un evento/invia un messaggio ed uno/n che si preoccupano di riceverlo, trapparlo ecc e per farlo implementano un'interfaccia.
Una spiegazione (http://www.softwareengineer.me/softwareengineering/event-listener-pattern) abbastanza buona dell'event-listener pattern
Peccato che io quel libro non l'abbia letto. E che nn ho fatto neanche ingegneria del software:mad:
devbeginner
11-07-2011, 11:26
Peccato che io quel libro non l'abbia letto. E che nn ho fatto neanche ingegneria del software:mad:
le prime 30 pagine sono tutte dedicate alla spiegazione del paradigma OO e poi entra nello specifico.
Io ti consiglio di leggerlo bene, 3, 4 volte.
Online si trova ;)
ho un dubbio per l'esame:
l'incapsulamento è una
1)proprietà..
2)caratteristica..
3)una tecnica...
..del java
su wikipedia di che è una tecnica xò visto che è uno dei pilastri della OOP potrebbe anche essere una caratteristica
khelidan1980
16-07-2011, 21:33
io a questa domanda risponderei C, in quanto, se siamo d'accordo che na caratteristica è una proprietà che definisce, caratterizza una determinata cosa, l'incapsulamento non caratterizza Java,tu puoi scrivere un programma intero senza incapsulare un bel niente, non è una caratteristica del linguaggio ma è una tecnica che puoi intraprendere utilizzando java
io a questa domanda risponderei C, in quanto, se siamo d'accordo che na caratteristica è una proprietà che definisce, caratterizza una determinata cosa, l'incapsulamento non caratterizza Java,tu puoi scrivere un programma intero senza incapsulare un bel niente, non è una caratteristica del linguaggio ma è una tecnica che puoi intraprendere utilizzando java
il tuo ragionamento non fa una piega.
allora riepilogando:
1)incapsulamento = tecnica del java
2)ereditarietà = caratteristica del java
3)polimorfismo= tecnica del java
poi è vero che l'ovveriding e l'overloading sono proprietà del java o devo dargli un'altra definizione?
devbeginner
18-07-2011, 00:03
ho un dubbio per l'esame:
l'incapsulamento è una
1)proprietà..
2)caratteristica..
3)una tecnica...
..del java
su wikipedia di che è una tecnica xò visto che è uno dei pilastri della OOP potrebbe anche essere una caratteristica
il tuo ragionamento non fa una piega.
allora riepilogando:
1)incapsulamento = tecnica del java
2)ereditarietà = caratteristica del java
3)polimorfismo= tecnica del java
abbi pazienza, non vorrei essere pedante, ma nel momento in cui affermi che sai scrivere codice nel paradigma OOP ed imperativo/procedurale su queste domande non dovresti avere alcun dubbio.
Cioè se sai scrivere codice OOP non puoi avere dubbi sulla teoria OOP.
Sarebbe come dire che sei in grado di costruire o riparare un motore ma non conosci i principi che lo governano.
Un po' dura...
Detto questo, incapsulamento ereditarietà e polimorfismo sono i 3 pilastri su cui si basano il paradigma orientato agli oggetti.
Non vedo per quale motivo 2 dovrebbero essere tecniche di Java mentre la seconda una caratteristica.
Se un linguaggio (tra cui Java) supporta l'OOP ovviamente supporta tutti e 3 quelle proprietà.
La domanda poi è piuttosto confusa, cosa si intende per proprietà, caratteristica o tecnica?
oi è vero che l'ovveriding e l'overloading sono proprietà del java o devo dargli un'altra definizione?
anche questa è una domanda malposta.
L'override va di pari passo con l'ereditarietà.
Ovviamente non sei obbligato ad usarlo nel momento in cui fai discendere da una classe una sottoclasse (e quindi erediti i suoi membri), ma puoi voler cambiare l'implementazione e quindi la firma del metodo.
idem l'overloading...
ma sono domande del tuo professore, per curiosità?
khelidan1980
18-07-2011, 08:40
credo che con caratteristica si intenda qualcosa di intrinseco di java, come può essere l'overriding, con tecnica è un qualcosa che tu metti in atto usando java, ma non è un qualcosa che fa parte del linguaggio,almeno io lo capita così, indi per cui l'incapsulamento lo vedo come una tecnica, ma come la stessa OOP, nulla ti vieta(tralasciando il fatto che le librerie sono comunque scritte OOP) di scrivere dei programmmi procedurali in Java, anzi guardando il codice legacy che ho trovato in giro al lavoro è più il java procedurale o la finta OOP che la vero programmazione ad oggetti che c'è in giro.
La verità è che pochi sanno programmare davvero ad oggetti, e Java non è che ti ci forzi più di quel tanto.
L'unica cosa è che io caratteristica e propietà li vedo come sinonimi.
Comunque in effetti è ben confusa la domanda, credo che neanche chi la posta abbia le idee chiare sulla OOP ma non me ne meraviglio.
devbeginner
18-07-2011, 10:04
credo che con caratteristica si intenda qualcosa di intrinseco di java, come può essere l'overriding, con tecnica è un qualcosa che tu metti in atto usando java, ma non è un qualcosa che fa parte del linguaggio,almeno io lo capita così, indi per cui l'incapsulamento lo vedo come una tecnica, ma come la stessa OOP, nulla ti vieta(tralasciando il fatto che le librerie sono comunque scritte OOP) di scrivere dei programmmi procedurali in Java, anzi guardando il codice legacy che ho trovato in giro al lavoro è più il java procedurale o la finta OOP che la vero programmazione ad oggetti che c'è in giro.
La verità è che pochi sanno programmare davvero ad oggetti, e Java non è che ti ci forzi più di quel tanto.
L'unica cosa è che io caratteristica e propietà li vedo come sinonimi.
Sinceramente, continuo a non capire la differenza tra proprietà, caratteristica o tecnica.
Polimorfismo, ereditarietà, overloading, overriding, incapsulamento sono tutte che fanno parte dei vari paradigmi di programmazione.
Quel che distingue l'OOP nell'uso dei concetti sopra esposti è che sono i fondamenti attraverso il quale uno sviluppatore dovrebbe scrivere il proprio codice.
E' la loro interazione a fare la differenza.
Tenicamente però io potrei scrivere un sorgente funzionante in Java senza fare uso di nessuno dei 5.
Ed allora che significa che l'overriding è una caratteristica intrinseca del linguaggio? Perché lo è l'overriding e non piuttosto l'incapsulamento per esempio?
Comunque in effetti è ben confusa la domanda, credo che neanche chi la posta abbia le idee chiare sulla OOP ma non me ne meraviglio.
Se fosse un professore di istituto tecnico/liceo passi anche, ma se fosse universitario allora ci sarebbe da preoccuparsi (non che non ci siano docenti universitari che non hanno mai lavorato nel settore eh...anzi)
ma sono domande del tuo professore, per curiosità?
si, all'esame fa domande facili ma risposte generiche come ti sei accorto.
Visto che ogni domande sbagliata è 0,5 non posso rischiare.
I dubbi nascono quando tu la impari in un modo ed il prof. la intende in un'altro.
Un sacco di miei colleghi sono stati bocciati proprio per queste cavolate.
Mo io dovrei stampare questo topic ed il giorno dell'esame farlo vedere al prof.:read:
Ora voi mi potete definire "asino","che non so programmare" va be non mi offendo. Però essere bocciato alla fine x queste cavolate non mi va. Per questo chiedo aiuto ad una comunità di sicuro più esperta di me.
devbeginner
18-07-2011, 11:51
si, all'esame fa domande facili ma risposte generiche come ti sei accorto.
Visto che ogni domande sbagliata è 0,5 non posso rischiare.
I dubbi nascono quando tu la impari in un modo ed il prof. la intende in un'altro.
Un sacco di miei colleghi sono stati bocciati proprio per queste cavolate.
Mo io dovrei stampare questo topic ed il giorno dell'esame farlo vedere al prof.:read:
Meglio domande difficili ma che prevedono una risposta chiara e precisa piuttosto che quisiti aleatori e che sono alla mercé di chi li può intendere come vuole.
Io in ogni caso il thread lo stamperei prima dell'esame ;)
Ma poi scusa, non puoi contattarlo via mail in qualche modo?
Gli chiedi "salve prof, mi sto esercitando sui vecchi compiti (ipotesi mia), ma non riesco a capire quale sia la differenza tra caratteristica ecc. ecc."
Così risolvi i tuoi dubbi ed anche i nostri a questo punto :D
Ora voi mi potete definire "asino","che non so programmare" va be non mi offendo. Però essere bocciato alla fine x queste cavolate non mi va. Per questo chiedo aiuto ad una comunità di sicuro più esperta di me.
No no alt, io non ti definisco in alcun modo, non mi permetterei mai :)
nessuno nasce "imparato". Però se scrivi che sai programmare in OOP allora quei dubbi non li dovresti avere.
Il problema nasce dal fatto però che chi ti insegna fa delle domande, su cui vieni giudicato, che sono boh per me senza alcun senso (e mi viene il dubbio quindi che le idee non le abbia chiare nemmeno lui).
Magari lo fa per aiutarvi, in realtà è il contrario.
chiccokb24
18-07-2011, 12:02
Andate a chiedere a un programmatore Java se i paradigmi che avete citato sono proprietà caratteristiche o chissà che!!
Non capisco tutta questa teoria che chiedono i prof.. A cosa serve??
Se sai i concetti e li sai applicare programmando cosa ti interessa sapere in che "categoria" rientrano??!
khelidan1980
18-07-2011, 14:20
si, all'esame fa domande facili ma risposte generiche come ti sei accorto.
Queste non sono domande difficili, sono domande poste in modo assolutamente confuso.
Tenicamente però io potrei scrivere un sorgente funzionante in Java senza fare uso di nessuno dei 5.
Ed allora che significa che l'overriding è una caratteristica intrinseca del linguaggio? Perché lo è l'overriding e non piuttosto l'incapsulamento per esempio?
L'overriding deve essere il linguaggio che lo permette, tecnicamente intendo, e ho inteso questo come caratteristica, mentre l'incapsulamento no, sei tu che lo applichi, utlizzi java e programmi in modo che il tuo codice sia incapsulato, e questa la vedo come una tecnica.. my 2 cents
Andate a chiedere a un programmatore Java se i paradigmi che avete citato sono proprietà caratteristiche o chissà che!!
Non capisco tutta questa teoria che chiedono i prof.. A cosa serve??
Se sai i concetti e li sai applicare programmando cosa ti interessa sapere in che "categoria" rientrano??!
La teoria OOP imho è ben importante ed è assolutamente necessaria fanno bene i prof a insistere su questa, ma ho visto in giro che ben pochi la sanno
@devbeginner
se che ti sembra che lui è fesso a darmi la soluzione.
E poi nota dolente al primo appello non ho preso parte. Ho sentito annotato le testimonianze dei miei colleghi, x questo sto girando mezzo internet per trovare le risposte.
Cmq io resto dell'opinione che l'incapsulamento e il polimorfismo sono tecniche xkè uno può programma in java facendo a meno di esse.
Per l'overloading e l'overriding mi hanno detto che il prof lo intende come una proprietà :confused:
devbeginner
18-07-2011, 16:42
Andate a chiedere a un programmatore Java se i paradigmi che avete citato sono proprietà caratteristiche o chissà che!!
Non capisco tutta questa teoria che chiedono i prof.. A cosa serve??
Se sai i concetti e li sai applicare programmando cosa ti interessa sapere in che "categoria" rientrano??!
C'entra perché se conosci i concetti li sai anche categorizzare.
Il fatto che siano malposte non mi da un'impressione molto favorevole su chi li ha poste.
Poi magari dal punto di vista tecnico è un fenomeno e semplicemente non si sa spiegare...cosa che, essendo un docente, sarebbe comunque un aspetto molto negativo (alla fine viene pagato per insegnare...).
Queste non sono domande difficili, sono domande poste in modo assolutamente confuso.
E se tanto mi da tanto...
L'overriding deve essere il linguaggio che lo permette, tecnicamente intendo, e ho inteso questo come caratteristica, mentre l'incapsulamento no, sei tu che lo applichi, utlizzi java e programmi in modo che il tuo codice sia incapsulato, e questa la vedo come una tecnica.. my 2 cents
sì beh ma se supporti l'ereditarietà supporti anche l'override dei membri.
Tra l'altro molti confondono il motivo per cui l'ereditarietà sia uno dei punti cardine dell'OOP.
Non è tanto il poter risparmiare sulle righe di codice perché, quanto la possibilità di poter cambiare implementazione mantenendo lo stesso contratto (interfaccia).
E quindi come faresti senza override?
Sono caratteristiche, proprietà, chiamatele come preferite, di tutti i linguaggi che supportano il paradigma OO, Java compreso.
E nel momento in cui vuoi nascondere l'implementazione e proteggerne lo stato usi l'incapsulamento.
Ancora, sono elementi tutti legati tra loro.
Non è pensabile scrivere codice minimamente complesso ed OO senza uno di questi elementi.
La teoria OOP imho è ben importante ed è assolutamente necessaria fanno bene i prof a insistere su questa, ma ho visto in giro che ben pochi la sanno
assolutamente
@devbeginner
se che ti sembra che lui è fesso a darmi la soluzione.
Non ho capito scusami :D
E poi nota dolente al primo appello non ho preso parte. Ho sentito annotato le testimonianze dei miei colleghi, x questo sto girando mezzo internet per trovare le risposte.
Se sei in grado di motivare le risposte (ed ancora, devi avere ben presente la teoria dietro il paradigma OO), puoi benissimo scrivere secondo me a margine di eventuali domande poco chiare.
Tanto poi negli esami di programmazione c'è sempre una parte scritta ed una orale.
Io comunque eviterei di rischiare presentandomi là con dubbi amletici e chiederei prima.
Per esperienza, i colleghi valgono come testimonianza ma fino ad un certo punto.
A volte montano leggende su come passare esami ecc. che poi si rilevano infondate. L'unica è studiare, capire e conoscere gli argomenti. Fine :)
Cmq io resto dell'opinione che l'incapsulamento e il polimorfismo sono tecniche xkè uno può programma in java facendo a meno di esse.
Anche l'ereditarietà.
Ti scrivo un pezzo di codice con una classe che all'interno ha 50 metodi che fanno qualcosa.
Sostanzialmente è il concetto della funzione dei linguaggi procedurali. Magari funziona ma ti perdi tutta la forza del paradigma OO.
Quindi, come vedi, non cambia nulla rispetto ad incapsulamento e polimorfismo.
Per l'overloading e l'overriding mi hanno detto che il prof lo intende come una proprietà :confused:
Ok ma sto uomo benedetto avrà dato una spiegazione di queste definizioni, o no? :D
Ok ma sto uomo benedetto avrà dato una spiegazione di queste definizioni, o no? :D
si ecco:
overloading: la possibilità di definire, all’interno di una classe, più volte lo stesso metodo ma con lo stesso tipo di ritorno e con differente numero e tipo di parametri
overriding: la possibilità di ridefinire (comportamento) un metodo dichiarato nella superclasse
stop. Ho fatto copia-incolla dalle slide.:D
il tuo ragionamento non fa una piega.
allora riepilogando:
1)incapsulamento = tecnica del java
2)ereditarietà = caratteristica del java
3)polimorfismo= tecnica del java
poi è vero che l'ovveriding e l'overloading sono proprietà del java o devo dargli un'altra definizione?
Da Wikipedia
In object-oriented programming (OOP), inheritance is a way to compartmentalize etc etc..
is a way to = è un modo per = tecnica.
Secondo me sono un po' tutte tecniche. Per me una tecnica in questo caso è un modo di fare qualcosa, e mi sembrano un po' tutte tali.
Comunque quoto un po' tutti, queste domande sono ridicole.
Ma poi cosa intende per caratteristiche? Compilato in bytecode, fortemente tipizzato, gira su VM, ecc? E proprietà?
chiccokb24
18-07-2011, 19:07
La teoria OOP imho è ben importante ed è assolutamente necessaria fanno bene i prof a insistere su questa, ma ho visto in giro che ben pochi la sanno
La teoria è fondamentale per capire come progettare e programmare un software.
Sapere cos'è l'incapsulamento è fondamentale, ma è totalmente inutile ricordarsi se l'incapsulamento è una proprietà, una caratteristica o una tecnica.... :mbe:
Le risposte alle domande sono del tipo:
- Una caratteristica del Java;
- Una tecnica di programmazione;
- Nessuna delle 2.
:muro:
devbeginner
19-07-2011, 10:50
si ecco:
overloading: la possibilità di definire, all’interno di una classe, più volte lo stesso metodo ma con lo stesso tipo di ritorno e con differente numero e tipo di parametri
Sì, quindi all'interno dello stesso scope di una classe, ci possono essere più metodi con identico nome e tipo ma cui vengono passati parametri in numero e tipo differente dal primo, in sostanza cambiare la firma di un metodo.
Occhio perché per metodo si intende anche il costruttore.
overriding: la possibilità di ridefinire (comportamento) un metodo dichiarato nella superclasse
stop. Ho fatto copia-incolla dalle slide.:D
E cambiarne implementazione, nell'ottica del Polimorfismo...
Mi aspetto anche che spieghi da qualche parte cosa sia il comportamento di un metodo, che in Java di base i metodi siano virtuali e quindi supportino l'override (mentre in C# dev'essere esplicitato) mentre con final questo sia inibito ecc. ecc. ecc.
nessuna vaccata ma un filo troppo stringate come spiegazioni :D
devbeginner
19-07-2011, 10:52
Le risposte alle domande sono del tipo:
:muro:
risposte a quali domande?
Comunque quando vedo scritto "del Java", "del C++" ecc. mi sale un brivido sulla schiena perché di solito sono particelle usate da chi di programmazione ne capisce poco. :mbe:
"di Java" o "del linguaggio Java"....
devbeginner
19-07-2011, 10:54
La teoria è fondamentale per capire come progettare e programmare un software.
Sapere cos'è l'incapsulamento è fondamentale, ma è totalmente inutile ricordarsi se l'incapsulamento è una proprietà, una caratteristica o una tecnica.... :mbe:
sicuramente sono seghe mentali.
Ma dato che viene giudicato anche su quei quesiti, tanto vale mettersi ad un tavolo e cercare di capire sulla base di cosa dia delle nomenclature.
In particolare mi si deve spiegare, dizionario di Italiano alla mano (e quindi di rimando in Java), cosa ci sia di differente tra "proprietà" e "caratteristica".
il tuo ragionamento non fa una piega.
allora riepilogando:
1)incapsulamento = tecnica del java
2)ereditarietà = caratteristica del java
3)polimorfismo= tecnica del java
poi è vero che l'ovveriding e l'overloading sono proprietà del java o devo dargli un'altra definizione?
LOL!
Ma è l'università questa? :help:
devbeginner
19-07-2011, 11:38
LOL!
Ma è l'università questa? :help:
Mboh ancora non s'è capito...ma spererei di no...vero che non è un'Università? :stordita:
se lo fosse voglio almeno l'ateneo ma se possibile anche il corso. Poi una mail sulla differenza tra le nomenclature gliela mando io :asd:
banryu79
19-07-2011, 11:43
LOL!
Ma è l'università questa? :help:
Più che LOL direi SIGH! :cry:
devbeginner
19-07-2011, 14:41
VO-GLIA-MO IL NOME!
VO-GLIA-MO IL NOME!
Oppure chiamo lui
http://a2.sphotos.ak.fbcdn.net/hphotos-ak-snc3/26278_327551403731_312559053731_3622303_6993320_n.jpg
:asd:
Noi all'esame di programmazione non avevamo domande del genere. Università degli studi di Milano :O
chiccokb24
19-07-2011, 17:31
Io ho finito da poco il terzo anno di Ing Informatica e ho fatto due settimane fa l'esame di Ingegneria del Software. Al Politecnico di Milano. Grazie a Dio il mio prof non era uno che si faceva queste seghe mentali... :D
evitiamo di andare off topic. Io ho fatto una o più domande su dei dubbi che avevo. Dubbi che si sono creati ascoltando più voci.
Adesso ognuno dice la sua,tutti credono di sapere la risposta ma vedo solo risposte discordanti.
Io devo fare l'esame per necessità (xkè senza questa materia non mi posso iscrivere al terzo anno)
Ora chi pensa che la teoria sia fondamentale, chi pensa il contrario.
Io penso che se non si fa pratica non si impara mai.
Se io ho parlato ieri con un collega che ha fatto esame e mi ha detto che il prof nel compito gli ha scritto che il polimorfismo ed ereditarietà sono proprietà del java; è logico che a me sorgono dubbi. Ed è per questo che ho scritto qui.
Studiando studiando ho capito cosa sono l'ereditarietà,incapsulamento ecc. ma a quanto pare il giorno dell'esame dovrò dire al prof che cavolo vuole xkè la sua logica e al diversa dalla vostra. Io non metto in dubbio le vostre conoscenze o le sue ma,purtroppo mi devo adeguare a quello che dice lui xkè sarà lui a giudicarmi e a mettermi il voto
devbeginner
20-07-2011, 10:10
evitiamo di andare off topic. Io ho fatto una o più domande su dei dubbi che avevo. Dubbi che si sono creati ascoltando più voci.
Adesso ognuno dice la sua,tutti credono di sapere la risposta ma vedo solo risposte discordanti.
Io devo fare l'esame per necessità (xkè senza questa materia non mi posso iscrivere al terzo anno)
Ora chi pensa che la teoria sia fondamentale, chi pensa il contrario.
Io penso che se non si fa pratica non si impara mai.
Se io ho parlato ieri con un collega che ha fatto esame e mi ha detto che il prof nel compito gli ha scritto che il polimorfismo ed ereditarietà sono proprietà del java; è logico che a me sorgono dubbi. Ed è per questo che ho scritto qui.
Studiando studiando ho capito cosa sono l'ereditarietà,incapsulamento ecc. ma a quanto pare il giorno dell'esame dovrò dire al prof che cavolo vuole xkè la sua logica e al diversa dalla vostra. Io non metto in dubbio le vostre conoscenze o le sue ma,purtroppo mi devo adeguare a quello che dice lui xkè sarà lui a giudicarmi e a mettermi il voto
per carità, nessuno mette in dubbio il fatto che sia l'obiettivo al momento più importante quello di passare l'esame (ma solo al secondo anno fate sto esame? :mbe: ) e che polimorfismo o ereditarietà vogliano significare tot (e sono caratteristiche non solo di Java ma di tutti i linguaggi OO), al di là di come lui li voglia chiamare.
Io comunque ti rinnovo il consiglio: se quelle domande sembrano confuse (e lo sono) e su quelle verrai giudicato non c'è modo migliore per chiarirtelo che non chiedere a lui.
Per esperienza personale poi ti posso dire che il professore apprezza l'iniziativa ed il fatto che tu chieda dei chiarimenti o ti voglia confrontare.
Viceversa quando poi ti trovi lì di fronte al fatto compiuto non puoi dire "eh ma non avevo capito" perché a quel punto lui si aspetta che tu abbia le idee chiare o comunque sufficientemente chiare per sostenere l'esame.
;)
per carità, nessuno mette in dubbio il fatto che sia l'obiettivo al momento più importante quello di passare l'esame (ma solo al secondo anno fate sto esame? :mbe: ) e che polimorfismo o ereditarietà vogliano significare tot (e sono caratteristiche non solo di Java ma di tutti i linguaggi OO), al di là di come lui li voglia chiamare.
Io comunque ti rinnovo il consiglio: se quelle domande sembrano confuse (e lo sono) e su quelle verrai giudicato non c'è modo migliore per chiarirtelo che non chiedere a lui.
Per esperienza personale poi ti posso dire che il professore apprezza l'iniziativa ed il fatto che tu chieda dei chiarimenti o ti voglia confrontare.
Viceversa quando poi ti trovi lì di fronte al fatto compiuto non puoi dire "eh ma non avevo capito" perché a quel punto lui si aspetta che tu abbia le idee chiare o comunque sufficientemente chiare per sostenere l'esame.
;)
si al I° anno abbiamo fatto C , mo quest'anno java e poi in un'altra materia facciamo python. Guarda uno schifo non si capisce niente. Alla fine finisci di confonderti solamente. Xkè è vero che un buon informatico deve conoscere più cose possibili però iniziare a fare teoria e programmazione in C e poi passare all'OOP è un pò traumatico a mio avviso:)
Cmq domani mi bisticcerò con il prof. vediamo che cacchio vuole ;)
grazie a tutti
devbeginner
20-07-2011, 10:39
si al I° anno abbiamo fatto C , mo quest'anno java e poi in un'altra materia facciamo python. Guarda uno schifo non si capisce niente. Alla fine finisci di confonderti solamente. Xkè è vero che un buon informatico deve conoscere più cose possibili
Non è così. Un buon informatico deve riuscire ad analizzare un problema, stimarlo e risolverlo.
E questo è in grado di farlo a prescindere da quel che utilizzi.
Non conosco il tuo piano di studi, ma ho il vago timore che si dia troppa importanza all'aspetto tecnico e meno a quello teorico da applicare poi concretamente.
Occorrerebbe scegliere una tecnologia (linguaggio, tool ecc.) e poi attraverso questa insegnare i fondamenti dell'OOP.
Non sei una spugna che va infarcita di mille nozioni diverse.
però iniziare a fare teoria e programmazione in C e poi passare all'OOP è un pò traumatico a mio avviso:)
assolutamente. E viste il panorama lavorativo (anche italiano) piuttosto inutile.
Avere un forte background OO è il minimo sindacabile.
Se e quando ti troverai a sviluppare su dispositivi embedded affronterai in quel momento il problema.
Cmq domani mi bisticcerò con il prof. vediamo che cacchio vuole ;)
grazie a tutti
Tatto mi raccomando, non aggredirlo :D
Però facci sapere (magari tirati giù qualche appunto) sulle differenze tra proprietà, caratteristica ecc.
Io perlomeno sono davvero curioso.
Non è così. Un buon informatico deve riuscire ad analizzare un problema, stimarlo e risolverlo.
E questo è in grado di farlo a prescindere da quel che utilizzi.
Non conosco il tuo piano di studi, ma ho il vago timore che si dia troppa importanza all'aspetto tecnico e meno a quello teorico da applicare poi concretamente.
Occorrerebbe scegliere una tecnologia (linguaggio, tool ecc.) e poi attraverso questa insegnare i fondamenti dell'OOP.
Non sei una spugna che va infarcita di mille nozioni diverse.
assolutamente. E viste il panorama lavorativo (anche italiano) piuttosto inutile.
Avere un forte background OO è il minimo sindacabile.
Se e quando ti troverai a sviluppare su dispositivi embedded affronterai in quel momento il problema.
Tatto mi raccomando, non aggredirlo :D
Però facci sapere (magari tirati giù qualche appunto) sulle differenze tra proprietà, caratteristica ecc.
Io perlomeno sono davvero curioso.
nono domani ti faccio sapere se l'ho passato. xkè è il giorno dell'esame :D :D
OT infatti negli annunci di lavoro cercano tanti programmatori in java. OT
devbeginner
20-07-2011, 13:11
nono domani ti faccio sapere se l'ho passato. xkè è il giorno dell'esame :D :D
OT infatti negli annunci di lavoro cercano tanti programmatori in java. OT
azz! :oink:
In bocca al lupo :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.