L?sningforslag 7: 3.10 - 9.10 (INF1000 - H?st 2013)

M?l: Trening i bruk av klasser, objekter og pekere. Bruk av lokale metoder og objektvariable.

 Oppgave merket med n?kkelsymbol er plukket ut som spesielt representativ for de viktigste temaene fra ukens forelesning, og alle b?r ha som minimumsm?l ? l?se denne selvstendig.

 

Oppgave 1

Lag et program hvor main ligger i en klasse "Prog1", og deklarer en annen klasse "ABC" med et heltall (int i) deklarert inne i klassen "ABC" p? samme fil (Prog1.java).

a) Deklarer en peker pek til ABC-klassen i main.

class Prog1{
   public static void main(String[] args){
      ABC pek;
   }
}

class ABC{
   int i;
}

b) Lag et objekt av klassen ABC, og la pek peke p? det objektet.

class Prog1{
   public static void main(String[] args){
      ABC pek = new ABC();
   }
}

class ABC{
   int i;
}

c) Sett verdien av i til 14 i dette objektet.

class Prog1{
   public static void main(String[] args){
      ABC pek = new ABC(); 
      
      pek.i = 14;
   }
}

class ABC{
   int i;
}

d) Skriv ut p? skjermen verdien av i fra main.

class Prog1{
   public static void main(String[] args){
      ABC pek = new ABC(); 
      pek.i = 14;
 
      System.out.println(pek.i); 
   }
}

class ABC{
   int i;
}

e) Deklarer en metode dobbelt() i ABC som dobler verdien av i.

class Prog1{
   public static void main(String[] args){
      ABC pek = new ABC(); 
      pek.i = 14;
      System.out.println(pek.i); 
   }
}

class ABC{
   int i;

   
   void dobbelt(){
      i = i*2;
   }
}

f) Kall denne metoden fra main to ganger, og skriv s? ut fra main verdien av i i objektet.

class Prog1{
   public static void main(String[] args){
      ABC pek = new ABC(); 
      pek.i = 14;
      System.out.println(pek.i); 
   
      pek.dobbelt(); 
      pek.dobbelt(); 
      int nyVerdi = pek.i; 
      System.out.println(nyVerdi);
      
   }
}

class ABC{
   int i;

   void dobbelt(){
      i = i*2;
   }
}

 

Oppgave 4 - En mobil-klasse

a) Programmer en klasse Mobil og gi den variabler for merke, eier, og telefonnummer. Opprett et objekt av klassen i en annen klasse som inneholder main-metoden.

class Hovedmetode{
   public static void main(String[] args){

   }
}

class Mobil
   String merke; 
   String eier; 
   String telefonnummer; 

}

b) Programmer en klasse Person som inneholder variabler for navn, alder og bosted.

class Person{
   String navn; 
   int alder; 
   String bosted; 
}

c) Opprett et objekt av klassen Person i main-metoden, og sett passende verdier for navn, alder og bosted fra main-metoden.

class Hovedmetode{
   public static void main(String[] args){
      Person p = new Person();
      p.navn="Espen Askeladd"; 
      p.alder=15; 
      p.bosted="Hjemme"; 
   }
}

d) Opprett et nytt objekt av klassen Person, men sett denne gangen passende verdier for navn, alder og boksted ved hjelp av en metoder i klassen Person.

// I main-metoden skriver man
Person p = new Person(); 
p.settNavn("Espen Askeladd"); 
p.settAlder(15); 
p.settBosted("Hjemme");

// Utvider Person-klassen
class Person{
   String navn; 
   int alder; 
   String bosted; 
   
   void settNavn(String nyttNavn){
      navn = nyttNavn; 
   }

   void settAlder(int nyAlder){
      alder = nyAlder; 
   }

   void settBosted(String sted){
      bosted = sted;
   }
   
}

e) Endre klassen Person slik at klassern har en konstrukt?r som tar imot og setter alder og navnet, og endre samtidig hvordan du opprettet objektet i oppgave b.

// I main-metoden skriver man
Person p = new Person("Espen Askeladd", 15, "Hjemme");
// Utvider Person-klassen
class Person{
   String navn; 
   int alder; 
   String bosted; 
   
   Person(String navn, int alder, String bosted){
     this.navn = navn; 
     this.alder = alder; 
     this.bosted = bosted; 
   }
   
}

f) Endre n? klassen Person slik at personen f?r en mobiltelefon dersom personen er over 14 ?r. Hint: Husk ? lage et objekt av klassen Mobil f?r du gir den til personen.

class Person{
   String navn; 
   int alder; 
   String bosted; 
   Mobil mobiltelefon; 
   
   Person(String navn, int alder, String bosted){
     this.navn = navn; 
     this.alder = alder; 
     this.bosted = bosted; 
     if (alder > 14){
       mobiltelefon = new Mobil(); 
       mobiltelefon.merke = "Samsung"; 
       mobiltelefon.eier = "Espen Askeladd"; 
       mobiltelefon.telefonnummer = "12345678";
     }
   }
   
}

 

Tibakemelding om dette l?sningsforslaget kan du sende p? mail til ingridgg [a] ifi.uio.no

Publisert 11. okt. 2013 16:58 - Sist endret 11. okt. 2013 16:58