mituri

[C#]Dziedziczenie, konstruktory(base), singleton, ArrayList

Oct 5th, 2015
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.98 KB | None | 0 0
  1. /*
  2. Stwórz klasę Person posiadające następujące dane:
  3. -name
  4. -surname
  5. -idNumer
  6. Oraz metodę
  7. printInformation() - drukującą informację o osobie.
  8. Dodaj konstruktory do danej klasy oraz odpowiednie gettery i settery.
  9. Stwórz klasę dziedziczącą po klasie Person Student posiadającą dodatkowe dane takie jak:
  10. -index
  11. -year
  12. -average
  13. Dodaj odpowiednie gettery i settery. Dodaj odpowiednie konstruktory ( użyj base).
  14. PrintInformation() - powinna zostać przesłonięta.
  15. Dodaj przykładowe tworzenie obiektów klasy.
  16. Stwórz klasę PersonManager, której możliwe jest wywołanie jednej instancji ( klasa powinna
  17. zawierać prywatny konstruktor, oraz metodę publiczną pobierającą instancje). Klasa powinna
  18. posiadać ArrayListe do , której możliwe jest dodawania kolejnych osób oraz ich wypisywanie.
  19. */
  20.  
  21. using System;
  22. using System.Collections.Generic;
  23. using System.Linq;
  24. using System.Text;
  25. using System.Threading.Tasks;
  26. using System.IO;
  27. using System.Collections;
  28.  
  29. public class Person {
  30. string name { get; set; }
  31. string surname { get; set; }
  32. int idNumer { get; set; }
  33.  
  34. public Person(string name, string surname, int idNumer){
  35. this.name = name;
  36. this.surname = surname;
  37. this.idNumer = idNumer;
  38. }
  39. Person(string name, string surname){
  40. this.name = name;
  41. this.surname = surname;
  42. }
  43. Person(int idNumer){
  44. this.idNumer = idNumer;
  45. }
  46.  
  47. public void printInfo() {
  48. Console.Write(name + " " + surname + " " + idNumer );
  49. }
  50. }
  51.  
  52. public class Student : Person {
  53.  
  54. int index { get; set; }
  55. int year { get; set; }
  56. double average { get; set; }
  57.  
  58. public Student(int index, int year, double average, string name, string surname, int idNumer) : base(name,surname,idNumer){
  59. this.index = index;
  60. this.year = year;
  61. this.average = average;
  62. }
  63. Student(int index, int year, string name, string surname, int idNumer) : base(name, surname, idNumer)
  64. {
  65. this.index = index;
  66. this.year = year;
  67. }
  68. Student(double average, string name, string surname, int idNumer) : base(name, surname, idNumer)
  69. {
  70. this.average = average;
  71. }
  72.  
  73. public new void printInfo(){
  74. base.printInfo();
  75. Console.WriteLine(" " + index + " " + year + " " + average);
  76. }
  77. }
  78.  
  79.  
  80. /*
  81. * Singleton – kreacyjny wzorzec projektowy, którego celem jest ograniczenie możliwości tworzenia obiektów dane
  82. * j klasy do jednej instancji oraz zapewnienie globalnego dostępu do stworzonego obiektu. Niekiedy wzorzec uogólnia
  83. * się do przypadku wprowadzenia pewnej maksymalnej liczby obiektów, jakie mogą istnieć w systemie
  84. */
  85. public class PersonManager {
  86.  
  87. private static readonly PersonManager instance = new PersonManager();
  88. public ArrayList list = new ArrayList();
  89.  
  90. private PersonManager(){}
  91. public static PersonManager Instance {
  92. get {
  93. return instance;
  94. }
  95. }
  96.  
  97. public void addPerson(Person tmpPerson) {
  98. list.Add(tmpPerson);
  99. }
  100.  
  101. public void PrintValues(IEnumerable myList)
  102. {
  103. /*
  104. foreach (Object obj in myList)
  105. Console.Write("{0}", obj);
  106. Console.WriteLine();
  107. **/
  108. foreach (Student p in myList) {
  109. p.printInfo();
  110. }
  111.  
  112. }
  113.  
  114. }
  115.  
  116.  
  117. namespace zad1{
  118. class Program{
  119. static void Main(string[] args){
  120.  
  121. Person p1 = new Person("adam", "malysz", 44);
  122. p1.printInfo();
  123. Console.WriteLine();
  124.  
  125. Student s1 = new Student(1, 2 , 3.5 , "bronislaw", "komorowski", 1);
  126. s1.printInfo();
  127. Student s2 = new Student(1, 2, 3.5, "aleksander", "kwasniewski", 1);
  128.  
  129.  
  130. PersonManager.Instance.addPerson(s1);
  131. PersonManager.Instance.addPerson(s2);
  132. PersonManager.Instance.PrintValues(PersonManager.Instance.list);
  133.  
  134. Console.ReadKey();
  135. }
  136. }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment