Difference between revisions of "6236 Programmering I Agenda/Constructors"
(Created page with "I klasse Konto gjorde vi følgende i main når vi skulle lave en ny klasse. Ulempen er at saldo skal være public for at det virker, hvilket gør at vi har mulighed for bagefter...") |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 17: | Line 17: | ||
{ | { | ||
public string ejer; | public string ejer; | ||
− | private double saldo; | + | //Her gøres saldo private |
+ | private double saldo; | ||
+ | //I konstruktøren overføres saldo som en parameter | ||
public Konto(double sal) | public Konto(double sal) | ||
{ | { | ||
+ | //Her gemmes den overførte sal i variablen saldo | ||
saldo = sal; | saldo = sal; | ||
+ | } | ||
+ | ....... | ||
+ | </source> | ||
+ | |||
+ | Når vi skal oprette en ny Konto skal vi nu også fortælle hvad saldoen er. | ||
+ | <source lang=csharp> | ||
+ | //Her kaldes konstruktøren for at lave en ny konto | ||
+ | Konto k = new Konto(25000); | ||
+ | </source> | ||
+ | |||
+ | Hvis man gerne vil have at parameteren i konstruktøren hedde det samme som de attributter værdien gemmes i kan man benytte "this". | ||
+ | |||
+ | <source lang=csharp> | ||
+ | class Konto | ||
+ | { | ||
+ | public string ejer; | ||
+ | private double saldo; | ||
+ | |||
+ | public Konto(double saldo) | ||
+ | { | ||
+ | //Her gemmes den overførte saldo i den interne this.saldo | ||
+ | this.saldo = saldo; | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | ==Opgave== | ||
+ | Lav en constructor på din bil klasse. Lad konstructoren tage mærke og ejer som parameter. | ||
+ | |||
+ | Hvis du har properties i din classe så gør efterfølgende ejer og mærke til readonly attributter. |
Latest revision as of 13:11, 30 November 2015
I klasse Konto gjorde vi følgende i main når vi skulle lave en ny klasse.
Ulempen er at saldo skal være public for at det virker, hvilket gør at vi har mulighed for bagefter at ændre saldo utilsigtet.
//Her oprette vi en konto
Konto k = new Konto() { ejer = "Jens", saldo = 25000 };
//Her laver vi saldo om
k.saldo = 1000;
Hvis vi i stedet gør saldo privat kan den ikke ændres fra main, men så er vi nødt til at lave en konstruktør.
Konstruktøren er en metode der hedder det samme som klassen.
class Konto
{
public string ejer;
//Her gøres saldo private
private double saldo;
//I konstruktøren overføres saldo som en parameter
public Konto(double sal)
{
//Her gemmes den overførte sal i variablen saldo
saldo = sal;
}
.......
Når vi skal oprette en ny Konto skal vi nu også fortælle hvad saldoen er.
//Her kaldes konstruktøren for at lave en ny konto
Konto k = new Konto(25000);
Hvis man gerne vil have at parameteren i konstruktøren hedde det samme som de attributter værdien gemmes i kan man benytte "this".
class Konto
{
public string ejer;
private double saldo;
public Konto(double saldo)
{
//Her gemmes den overførte saldo i den interne this.saldo
this.saldo = saldo;
}
Opgave
Lav en constructor på din bil klasse. Lad konstructoren tage mærke og ejer som parameter.
Hvis du har properties i din classe så gør efterfølgende ejer og mærke til readonly attributter.