2009
Objektum Orientált Programozás (kód elmélet)
Filed Under (elmélet, kód) by nameless on 16-07-2009
Tagged Under : Objektum orientál programozás, oop, set get, tulajdonságok
Objektum Orientált Programozás (kód elmélet):
using System;
namespace Program
{
sealed class Radio
{
public void Power(bool turnOn)
{
Console.WriteLine("Radio on: {0}", turnOn);
}
}
class Car
{
// az autónak van egy rádiója
private Radio myRadio = new Radio();
public void TurnOnRadio(bool onOff)
{
//Hívás továbbítása a belső objektumnak
myRadio.Power(onOff);
}
}
class MainClass
{
public static void Main()
{
//A hívás belső továbbítása a Radio osztáklynak
Car viper = new Car();
viper.TurnOnRadio(true);
Console.ReadKey();
}
}
}A Rádiót külön osztályba soroljuk, mert semmi köze sincs az autóhoz, csak annyi, hogy benne van…
Most írunk egy olyan programot, ami lemodellezi egy dolgos dolgozó munkáját:
Először hozzunk létre egy új alkalmazást EmployeeApp néven, és szúrjunk be egy új osztályt a Project -> Add class menüelemmel.
Módosítsuk az Employee osztályt a következő mezőkkel, metódusokkal és konstruktorokkal:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EmployeeApp
{
class Employee
{
//mezőadatok
private string empName;
private int empID;
private float currPay;
//lekérdező get metódus
public string GetName()
{
return empName;
}
//Módosító set metódus
public void SetName(string name)
{
empName = name;
}
//Konstruktorok
public Employee() { }
public Employee(string name, int id, float pay)
{
empName = name;
empID = id;
currPay = pay;
}
public void GiveBonus(float amount)
{
currPay += amount;
}
public void DisplayStats()
{
Console.WriteLine("Name: {0}",empName);
Console.WriteLine("ID: {0}", empID);
Console.WriteLine("Pay: {0}", currPay);
}
}
}Main() rész:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EmployeeApp
{
class Program
{
static void Main(string[] args)
{
Employee emp = new Employee("Marvin", 436, 3000);
emp.GiveBonus(1000);
emp.DisplayStats();
//munka az objektum nevével a get/set módosítók segítségével
emp.SetName("Marv");
Console.WriteLine("Employee is named: {0}", emp.GetName());
Console.ReadKey();
}
}
}Egységbe zárás propertykkel: (property, tulajdonságok, set, get)
Main rész:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EmployeeApp
{
class Program
{
static void Main(string[] args)
{
Employee emp = new Employee("Marvin", 436, 3000);
emp.GiveBonus(1000);
emp.DisplayStats();
//a Name tulajdonságok beolvasása és beállítása
emp.Name = "Marv";
Console.WriteLine("Employee is named: {0}", emp.Name);
Console.ReadKey();
}
}
}A hozzáadott osztály:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EmployeeApp
{
class Employee
{
//mezőadatok
private string empName;
private int empID;
private float currPay;
//tulajdonságok
public string Name
{
get { return empName; }
set { empName = value; }
}
public float pay
{
get { return currPay; }
set { currPay = value; }
}
//Konstruktorok
public Employee() { }
public Employee(string name, int id, float pay)
{
empName = name;
empID = id;
currPay = pay;
}
public void GiveBonus(float amount)
{
currPay += amount;
}
public void DisplayStats()
{
Console.WriteLine("Name: {0}",empName);
Console.WriteLine("ID: {0}", empID);
Console.WriteLine("Pay: {0}", currPay);
}
}
}Statikus tulajdonságok, statikus probertyk:
using System;
namespace Program
{
class MainClass
{
public static void Main()
{
WebSite.WebName = "www.csharpkodok.atw.hu";
Console.WriteLine(WebSite.WebName);
Console.ReadKey();
}
}
class WebSite
{
//statikus tulajdonsághoz a mezőnek is statikusnak kell lennie...
private static string WebsiteName;
public static string WebName
{
get { return WebsiteName; }
set { WebsiteName = value; }
}
}
}
