Advertisement
1_rinkana

Лаб. 2. Класи та об'єкти

Sep 19th, 2023 (edited)
1,462
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.67 KB | None | 0 0
  1. //Циганій Максим
  2. //Лабораторна робота №2 (Класи та об'єкти)
  3.  
  4. class UniversityTeacher(            //Викладачі вузу
  5.     private val nameInfo: NameInfo,
  6.     private val scientificDegreeInfo: ScientificDegreeInfo,
  7.     private val contactInfo: ContactInfo,
  8.     private val maritalStatus: MaritalStatus,
  9.     private val workInfo: WorkInfo,
  10.     private val departmentInfo: DepartmentInfo,
  11.     private val managerInfo: ManagerInfo,
  12. ) {
  13.  
  14.     fun classInfo() = println("Цей клас містить всю інформацію про викладача.")
  15.  
  16.     fun getNameInfo(teacher: UniversityTeacher) {
  17.         val info = teacher.nameInfo
  18.         println("${info.firstName} ${info.surname} ${info.patronymicName}")
  19.     }
  20.  
  21.     fun scientificDegreeInfo(teacher: UniversityTeacher) {
  22.         val info = teacher.scientificDegreeInfo
  23.         println("Науковий ступінь: ${info.scientificDegree}, вчене звання: ${info.scientificTitle}")
  24.     }
  25.  
  26.     fun contactInfo(teacher: UniversityTeacher) {
  27.         val info = teacher.contactInfo
  28.         println("Телефон: ${info.phone}, адреса: ${info.address}")
  29.     }
  30.  
  31.     fun maritalStatusInfo(teacher: UniversityTeacher) {
  32.         val info = teacher.maritalStatus
  33.         println("Cімейний стан: ${info.maritalStatus}, кількість дітей: ${info.numberOfChildren}")
  34.     }
  35.  
  36.     fun workInfo(teacher: UniversityTeacher) {
  37.         val info = teacher.workInfo
  38.         println("Посада: ${info.position}, табельний номер: ${info.rollNumber}, оклад: ${info.salary}, дата прийому на роботу:${info.dateOfEmployment}")
  39.     }
  40.  
  41.     fun departmentInfo(teacher: UniversityTeacher) {
  42.         val info = teacher.departmentInfo
  43.         println("Назва кафедри: ${info.nameOfTheDepartment}, кількість викладачів: ${info.numberOfTeachers}")
  44.     }
  45.  
  46.     fun managerInfo(teacher: UniversityTeacher) {
  47.         teacher.managerInfo.getManagerNameInfo()
  48.         teacher.managerInfo.managerContactInfo()
  49.     }
  50. }
  51.  
  52. class ScientificDegreeInfo(
  53.     val scientificDegree: String,    //науковий ступінь
  54.     val scientificTitle: String,     //вчене звання
  55. )
  56.  
  57. class NameInfo(
  58.     val surname: String,             //прізвище
  59.     val firstName: String,           //ім’я
  60.     val patronymicName: String,      //по-батькові
  61. )
  62.  
  63. class ContactInfo(
  64.     val phone: String,               //телефон
  65.     val address: String,             //адреса
  66. )
  67.  
  68. class MaritalStatus(
  69.     val maritalStatus: String,       //сімейний стан
  70.     val numberOfChildren: Int,       //кількість дітей
  71. )
  72.  
  73. class WorkInfo(
  74.     val position: String,            //посада
  75.     val rollNumber: Int,             //табельний номер
  76.     val salary: Double,              //оклад
  77.     val dateOfEmployment: String,    //дата прийому на роботу
  78. )
  79.  
  80. class DepartmentInfo(
  81.     val nameOfTheDepartment: String, //назва кафедри
  82.     val numberOfTeachers: Int,       //кількість викладачів
  83. )
  84.  
  85. class ManagerInfo(
  86.     private val nameInfo: NameInfo,
  87.     private val contactInfo: ContactInfo,
  88.     private val workPhone: String,   //робочий телефон
  89. ) {
  90.     fun getManagerNameInfo() {
  91.         println("${nameInfo.firstName} ${nameInfo.surname} ${nameInfo.patronymicName}")
  92.     }
  93.  
  94.     fun managerContactInfo() {
  95.         println("Телефон: ${contactInfo.phone}, адреса: ${contactInfo.address}, робочий телефон: $workPhone")
  96.     }
  97. }
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement