F15 - konstruktorer, metoder och enum Flashcards
Vad består en klass av i praktiken?
Data (instansvariabler) och metoder (operationer)
Vilka sorters metoder finns det?
- Speciella metoder (0-flera konstruktorer)
- Standard metoder (med eller utan parameterar, med returtyp eller void)
Nämn tre metoder med standarddefinitioner
- Gettermetod
- Settermetod
- toString()
Vad är en konstruktor?
Metod som används för att initiera instansvariablerna (skapa ett objekt)
Hur anropas en konstruktor?
När ett objekt av klassen skapas med nyckelordet new
Vad händer om det en klass saknar en konstruktor?
Default-konstruktor skapa, den saknar parametrar
Vad är en default-konstruktor?
En konstruktor som skapas om ingen annan konstruktor finns
Vilket namn har en konstruktor?
Samma som klassen
Vad måste en variabel ha innan den används?
Ett värde
Vad kallas det när man ger en variabel ett värde från start?
Att initiera
Dessa kan inte vara “null”
Värdetyper
Vad är null?
Ingenting
Är 0 och null samma sak?
Nej, 0 är ett värde men null är att värde saknas
Vad betyder det om en referensvariabel är null?
Att inget objekt tilldelats referensvariabeln
Vad är garbage collector?
En funktion att ta bort objekt som saknar referens
Vem ansvarar för att ta bort objekt som saknar referens?
JVM (java virtual machine)
Hur kan man påskynda borttagning av objekt som saknar referens?
Genom att sätta referensvariabler till null
Varför är garbage collector en viktig funktion?
För varje gång ett objekt skapas med new reserveras minne, som snabbt tar slut om man inte rensar upp
Vad är en lokal variabel?
Variabel som initieras i en metod
Vad händer om en lokal variabel inte har fått ett värde
Kompilatorn ger felmeddelande
Vad innebär overloading (överlagring)?
När två eller fler metoder har samma namn med olika parametrar
På vilket sätt kan parametrar vara olika?
- Olika typer av parametrar
- Olika ordning på parametrarna
- Olika antal parametrar
Vad är poängen med konstruktor med paramterar?
Att kunna transportera värden till objekt vid skapandet
Var väljs vilken konstruktor som används?
Kompilatorn väljer den som passaar bäst utifrån vilka som finns, och skapar en default om konstruktor saknas
Vad är kedjenanrop?
När metoder anropar varandra
Vad betyder nyckelordet ‘this’?
Jag
Vad refererar ‘this’ till?
refererar till den aktuella instansen av en klass
Hur anropar man konstruktor med this från en annan konstruktor?
Genom att sätta this-anropet i första raden i konstruktorn
Vad innebär ‘this’ vid namnkonflikt? t ex om metodparameter och lokal variabel delar namn
Vid namnkonflikt avser ‘this’ instansvariabeln
Vad gör metoden toString( )?
Ger strängrepresentation av aktuell instans (värder sparade i objektets instansvariabler)
Hur formaterar toString( )?
Genom att String.format(‘Strängformatering’, ‘berörda variabler’) sparas till en variabel metoden returnerar, såhär:
public String toString( )
{
String textOut = String.format(“Name: %s Price:%f”, name, price);
return textOut;
}
Hur formaterar toString( ) String?
%s
Hur formaterar toString( ) double?
%d
Hur formaterar toString( ) float?
%f
Vad är en konstant?
Variabel vars värde aldrig ändras
Hur deklareras konstanter?
med nyckelordet ‘final’
Varför är konstanter att föredra över fasta värden?
- Gör koden mer läsbart
- Ändringar för på ett ställe
Hur grupperar men enklast konstanter?
Med klasstypen “enum”
Vad är enum?
En klasstyp som grupperar konstanter
Vad står enum för?
Enumeration
Kan enum instansieras?
Nej, enum kan inte skapa objekt med nyckelordet new
Vilken default datatyp har enum?
int