Objektorienteret programmering - Darhaq/WikiOpgave GitHub Wiki
-
Eleven kan anvende et objektorienteret programmeringssprog til at udarbejde konsolprogrammer, der indeholder flere klasser og er i overensstemmelse med OOP konceptet.
-
Eleven har en grundlæggende viden om det valgte programmeringssprog/framework.
using System;
class Program
{
static void Main(string[] args)
{
// Declare and initialize variables
string greeting = "Hello, World!";
int num1 = 5;
int num2 = 3;
// Display a greeting
Console.WriteLine(greeting);
// Perform arithmetic operations
int sum = num1 + num2;
int product = num1 * num2;
// Display the results
Console.WriteLine("Sum: " + sum);
Console.WriteLine("Product: " + product);
}
}- Eleven kan definere og designe egne klasser.
using System;
class Person
{
//Fields
public int age; //Access modifier datatype Name;
// Properties
public string Name { get; set; } //Access modifier Datatype Name { get; set; }
public int Age { get; set; }
// Constructor
public Person(string name, int age) //Access modifier Name(input parameter)
{
Name = name;
Age = age;
}
// Method to introduce the person
public void Introduce() //Access modifier Return Type Method Name()
{
Console.WriteLine($"Hello, I am {Name}, and I am {Age} years old.");
}
}
class Program
{
static void Main(string[] args)
{
// Create an instance of the Person class
Person person1 = new Person("Alice", 30);
// Access properties and methods of the class
Console.WriteLine($"Name: {person1.Name}");
Console.WriteLine($"Age: {person1.Age}");
person1.Introduce();
}
}- Eleven kan erklære og instantiere objekter.
using System;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public void Introduce()
{
Console.WriteLine($"Hello, I am {Name}, and I am {Age} years old.");
}
}
class Program
{
static void Main(string[] args)
{
// Create instances of the Person class
Person person1 = new Person("Alice", 30);
Person person2 = new Person("Bob", 25);
Person person3 = new Person("Charlie", 35);
// Access properties and methods of the objects
Console.WriteLine($"Name: {person1.Name}, Age: {person1.Age}");
person1.Introduce();
Console.WriteLine($"Name: {person2.Name}, Age: {person2.Age}");
person2.Introduce();
Console.WriteLine($"Name: {person3.Name}, Age: {person3.Age}");
person3.Introduce();
}
}- Eleven kan redegøre for typer af collections og kan udpege hensigtmæssigt i forhold til et behov.
- Brug arrays, når du kender antallet af elementer på forhånd og ikke har brug for at ændre størrelsen.
int[] numbers = { 1, 2, 3, 4, 5 };- Brug lister, når du skal arbejde med et variabelt antal elementer.
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");- Der er også dictionary, sets og queues men de ikke så relevante atm.
- Eleven kan anvende en given kodestandard for det pågældende sprog.
- Brug meningsfulde og beskrivende navne til variabler, metoder og klasser.
// Good examples:
public class CustomerService { }
public int CalculateTotalPrice() { }
private string firstName;
// Avoid:
public class cs { }
public int calcTotPrice() { }
private string fn;- Brug konsekvent indrykning (f.eks. fire mellemrum eller en tabulator) for at forbedre kodens læsbarhed.
- Brug brackets til kodeblokke, selv til enkelte udsagn inden for kontrolstrukturer (if, for, while).
// Good example:
if (condition)
{
Console.WriteLine("True branch");
}
// Avoid:
if (condition)
Console.WriteLine("True branch");- Brug kommentarer til at forklare kompleks eller ikke-indlysende kode.
- Dokumenter offentlige metoder og klasser ved hjælp af XML-kommentarer til at generere dokumentation.
/// <summary>
/// This method calculates the total price.
/// </summary>
/// <returns>The total price.</returns>
public decimal CalculateTotalPrice()
{
// Code explanation here
}- Eleven kan håndtere "exception handling". A 'try' block is used by C# programmers to partition code that might be affected by an exception. Associated 'catch' blocks are used to handle any resulting exceptions. A 'finally' block contains code that is run whether or not an exception is thrown in the try block, such as releasing resources that are allocated in the try block. A try block requires one or more associated catch blocks, or a finally block, or both.
The following examples show a try-catch statement, a try-finally statement, and a try-catch-finally statement.
try
{
// Code to try goes here.
}
catch (SomeSpecificException ex)
{
// Code to handle the exception goes here.
// Only catch exceptions that you know how to handle.
// Never catch base class System.Exception without
// rethrowing it at the end of the catch block.
}try
{
// Code to try goes here.
}
finally
{
// Code to execute after the try block goes here.
}try
{
// Code to try goes here.
}
catch (SomeSpecificException ex)
{
// Code to handle the exception goes here.
}
finally
{
// Code to execute after the try (and possibly catch) blocks
// goes here.
}A try block without a catch or finally block causes a compiler error.
- Eleven kan redegøre for OOP konceptet såsom indkapsling, polymorfi og arv.
Indkapsling/Encapsulation:
Indkapsling bliver brugt gennem acces modifiers såsom "private", "protected" og "internal".
"private" - members af en klasse kan kun tilgås og kaldes inden for selve klassen
Eksempel:
Jeg har en fil kaldet Computer.cs og i den laver jeg en private access modifier
"protected" -
9. Eleven kan udarbejde en applikation som gør brug af OOP konceptet.
10. Eleven kan implementere abstrakte klasser og metoder.
11. Eleven kan skelne mellem override og overload af metoder.
12. Eleven kan skelne mellem valget af "access modifiers"/virkefelter.