Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


klasser

Postades av 2003-07-16 13:04:42 - Jennie Blomgren, i forum java, Tråden har 8 Kommentarer och lästs av 1625 personer

Jag ska göra följande uppgift:

Skriv en klass Person som innehåller följande instansvariabler, deklarera med passande datatyper:

namn, personnummer, adress, ålder.

I klassen ska följande metoder ingå:

§ konstruktorn Person, som initierar samtliga instansvariabler.
§ byterNamn, en metod som via parameter ändrar namnet.
§ byterAdress, en metod som via parameter ändrar adressen.
§ fyllerÅr, en metod som lägger till 1 till åldern.
§ hamtaNamn, en metod som returnerar namnet.
§ hamtaPersnr, en metod som returnerar personnumret.
§ hamtaÅlder, en metod som returnerar åldern.
§ hamtaAdress, en metod som returnerar adressen.
§ toString, en metod som i en snyggt formaterad sträng returnerar ett Person-objekts samtliga data. Metoden anropas genom att skriva objektets (referensens) namn.


Skriv ett testprogram som testar samtliga metoder i klassen Person. Programmet ska i tur och ordning utföra följande:

§ Skapa två Person-objekt, person1 och person2. Den som kör ditt program ska mata in startvärden till de båda objektens samtliga data (instansvariabler).
§ Skriv ut de båda objektens samtliga data.
§ Låt den som kör ditt program byta namn och adress på person1.
§ Låt person2 fylla år.
§ Skriv ut namnet, personnr och adressen på person1 (skriv alltså inte ut åldern).
§ Skriv ut namnet, personnr och åldern på person2 (skriv alltså inte ut adressen).

Jag vet hur man deklarerar variablerna, men min fråga är hur jag går till väga med en sådan här uppgift. Ska man göra två filer?? En som heter Person.java och en som heter t.ex. PersonTest.java?? Jag vet inte riktigt vad som ska skrivas var.
Jag vet inte om följande kod är på rätt väg...?

public class Labb2_8
{
public static void main(String[] args)
{
String namn = "Kalle Knopp",
personnummer = "7777777777", adress = "Kyrkogatan 6";
int age = 25;

Person P1 = new Person(namn, personnummer, adress, age);
}
}

Jag förstår att det är lite för mkt att svara på, men jag skulle bli jätteglad över bara en spark i rumpan åt rätt håll. Jag sitter nämligen helt fast på denna uppgift!!

/Jennie


Svara

Sv: klasser

Postades av 2003-07-16 13:26:50 - Johan Segolsson

I det här fallet behöver du inte skapa två filer, det räcker med 1 fil (Person.java) och testprogrammet kan du lägga i main satsen precis som du har gjort. Ungefär så här skulle Person.java kunna se ut (kommer inte skriva hela koden, lite får du göra själv ;-) )

<code>
class Person
{
private String namn;
private String personnummer;
private String adress;
private int alder;

Person() { namn=""; personnummer=""; adress=""; alder=0; }
Person(String namn, String pnummer, String adress, int alder) { ... }
public void byterNamn(String nyttNamn) { ... }
public void byterAdress(String nyAdress) { ... }
public void fyllerAr() { .. }
public String hamtaNamn() { ... }
public String hamtaPersnr() { ... }
public String hamtaAdress() { ... }
public int hamtaAlder() { ... }
public String toString() { ... }

public static void main(String[] args)
{
// Här skriver du testprogrammet...
}
}
</code>

Skrev säkert lite för mycket nu :-(


Svara

Sv: klasser

Postades av 2003-07-16 13:35:16 - Jennie Blomgren

Tusen tack för hjälpen!

Skulle det nu vara så att jag tvunget skulle vilja ha det i två filer så är det bara testkörningen som ska vara i den andra filen eller?
När vet man om man ska använda 1 eller 2 filer??

/Jennie


Svara

Sv: klasser

Postades av 2003-07-16 13:49:37 - Johan Segolsson

>Skulle det nu vara så att jag tvunget skulle vilja ha det i två filer så är det bara testkörningen som ska vara i den andra filen eller?

Om du måste ha två klasser (två filer) så ska bara testprogrammet ligga i den andra filen...

>När vet man om man ska använda 1 eller 2 filer??

I princip om man använder fler än en klass (en klass i varje fil, finns några undantag från det men det tar vi inte här), samt om en klass (fil) innehåller mer än 2000 rader så ska man försöka dela upp den...


Svara

Sv: klasser

Postades av 2003-07-16 15:43:13 - Jan Arenö

Du ska tänka modulärt...

I ditt fall är din klass en person. Om det börjar dyka upp variabler i din klass som har med andra saker o göra, t.ex. en cykel, så kan man börja fundera på om man inte ska skapa en cykel klass...
Detta ska man definitivt göra då man ska kunna flytta en cykel från en person till en annan...

Det med 2000 rader vet jag inte om det är en bra tumstock o använda. Börja tänk modulärt istället och bryt upp det i bra storlekar. Det kommer av sig själv efter ett tag.

T.ex i ditt person fall. Det är ju ganska ofta man har med personer o göra i olika applikationer. Om du göra Personer.java på ett bra sätt kan du alltid utgå ifrån den senare i dina projekt/arbeten och på så vis spara mängder med tid och knapptryckningar :)


Svara

Sv: klasser

Postades av 2003-07-16 23:12:59 - Jennie Blomgren

jag får inte rätt på uppgiften ändå, den klagar på att jag börjar med private...
private String _namn;
private String _adress;
private String _personnr;
private int _alder;

Varför tycker den inte om det???

/Jennie


Svara

Sv: klasser

Postades av 2003-07-17 08:03:16 - Johan Segolsson

Jag antar att du försöker komma åt variablerna direkt från main satsen? Det fungerar inte när en variabel eller en function för den delen är private, om du måste komma åt dom direkt byt ut private mot public.

Dock så tycker jag du ska använda funktionerna hamtaNamn och byterNamn osv. för att komma åt variablerna.


Svara

Sv: klasser

Postades av 2003-07-17 22:25:09 - Jennie Blomgren

Nu har jag skrivit som koden nedan! Jag får felmeddelande på public static void main, den tycker inte om starten alltså public. Och att det någonstans behövs ; men det stämmer inte med den raden som står i kommandotolken. Sedan säger den att den saknar method body or declare abstract på raden Person(String namn, String personnummer, String adress, int alder);

Hjälp hjälp hjälp =) Är det jag som är trög eller är det en svår uppgift??


import cs1.Keyboard;

class Person
{
private String namn;
private String personnummer;
private String adress;
private int alder;

Person() { namn=""; personnummer=""; adress=""; alder=0; }
Person(String namn, String personnummer, String adress, int alder);
public void byterNamn(String nyttNamn) { namn=nyttNamn; }
public void byterAdress(String nyAdress) { adress=nyAdress; }
public void fyllerAr() { alder++; }
//public String hamtaNamn() { ... } vad ska skrivas här??
//public String hamtaPersnr() { ... }
//public String hamtaAdress() { ... }
//public int hamtaAlder() { ... }
public String toString() { String info = new String();
info = "Namn=" + namn + " Adress=" + adress;

return info;



public static void main(String[] args)
{
System.out.println( "Mata in namn:" );
String namn = Keyboard.readString();

System.out.println( "Mata in adress:" );
String adress = Keyboard.readString();

System.out.println( "Mata in ålder:" );
Integer alder = new Integer(); alder.parseInt( Keyboard.readint() );

System.out.println( "Mata in personnummer:" );
String personnr = Keyboard.readString();

Person snubbe1 = new Person( namn, adress, alder, personnr );

// Skriv ut information om personen..
System.out.println( snubbe1.toString() );

// Modifiera personen lite
System.out.println( "Mata nytt namn för person1:" );
namn = Keyboard.readString();
snubbe1.byterNamn( namn );
snubbe1.fyllerAr();

// Skriv ut den nya information om personen..
System.out.println( snubbe1.toString() );
}

}


}

/Jennie


Svara

Sv: klasser

Postades av 2003-07-18 02:39:56 - Josef

Här får du lite kod att utforska och bygga vidare på...

<code>
public class Person
{
private String namn;
private String personnummer;
private String adress;
private int alder;

public Person(String _namn, String _pnummer, String _adress, int _alder)
{
namn = _namn;
personnummer = _pnummer;
adress = _adress;
alder = _alder;
}

public void byterNamn(String _namn)
{
namn = _namn;
}

public void byterAdress(String _adress)
{
adress = _adress;
}

public void fyllerAr()
{
alder = alder + 1;
}

public String hamtaNamn()
{
return namn;
}

public String hamtaPersnr()
{
return personnummer;
}

public String hamtaAdress()
{
return adress;
}

public int hamtaAlder()
{
return alder;
}

public String toString()
{
String _toString;
_toString = "Namn: " + namn + "\nÅlder: " + alder;
_toString = _toString + "\nPersonnummer: " + personnummer + "\nAdress: " + adress;
System.out.print(_toString);
return _toString;
}

public static void main(String[] args)
{
System.out.println("Mata in namn: ");
namn = Keyboard.readString();
osv...
Person person1 = new Person(namn, pnummer, adress, alder);
person1.toString();
}
}
</code>



Svara

Nyligen

  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 845
27 961
271 763
636
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies