ДороботайКонечно, давайте добавим методы для задания новых значений номера паспорта, ФИО владельца и даты выдачи в класс "Заграничный паспорт". Вот обновленный пример кода на C#:
C#:using System; class Passport { private string passportNumber; private string ownerFullName; private DateTime issueDate; public Passport(string passportNumber, string ownerFullName, DateTime issueDate) { if (string.IsNullOrEmpty(passportNumber)) { throw new ArgumentException("Номер паспорта не может быть пустым"); } if (string.IsNullOrEmpty(ownerFullName)) { throw new ArgumentException("ФИО владельца не может быть пустым"); } if (issueDate > DateTime.Now) { throw new ArgumentException("Дата выдачи не может быть в будущем"); } this.passportNumber = passportNumber; this.ownerFullName = ownerFullName; this.issueDate = issueDate; } public string GetPassportNumber() { return passportNumber; } public string GetOwnerFullName() { return ownerFullName; } public DateTime GetIssueDate() { return issueDate; } public void SetPassportNumber(string newPassportNumber) { if (string.IsNullOrEmpty(newPassportNumber)) { throw new ArgumentException("Номер паспорта не может быть пустым"); } passportNumber = newPassportNumber; } public void SetOwnerFullName(string newOwnerFullName) { if (string.IsNullOrEmpty(newOwnerFullName)) { throw new ArgumentException("ФИО владельца не может быть пустым"); } ownerFullName = newOwnerFullName; } public void SetIssueDate(DateTime newIssueDate) { if (newIssueDate > DateTime.Now) { throw new ArgumentException("Дата выдачи не может быть в будущем"); } issueDate = newIssueDate; } } class Program { static void Main() { try { Passport passport = new Passport("AB123456", "Иванов Иван Иванович", new DateTime(2022, 1, 1)); Console.WriteLine("Паспорт успешно создан."); Console.WriteLine("Номер паспорта: " + passport.GetPassportNumber()); Console.WriteLine("ФИО владельца: " + passport.GetOwnerFullName()); Console.WriteLine("Дата выдачи: " + passport.GetIssueDate()); passport.SetPassportNumber("CD654321"); passport.SetOwnerFullName("Петров Петр Петрович"); passport.SetIssueDate(new DateTime(2023, 2, 15)); Console.WriteLine("Обновленные данные паспорта:"); Console.WriteLine("Номер паспорта: " + passport.GetPassportNumber()); Console.WriteLine("ФИО владельца: " + passport.GetOwnerFullName()); Console.WriteLine("Дата выдачи: " + passport.GetIssueDate()); } catch (ArgumentException ex) { Console.WriteLine("Ошибка: " + ex.Message); } } }
В этом обновленном коде добавлены методыSetPassportNumber
,SetOwnerFullName
иSetIssueDate
для установки новых значений для номера паспорта, ФИО владельца и даты выдачи соответственно. После создания объекта паспорта выводится информация о нем, затем меняются значения полей паспорта и выводится обновленная информация.
Надеюсь, этот пример соответствует вашим ожиданиям. Если у вас есть еще какие-либо вопросы или запросы, пожалуйста, не стесняйтесь обращаться!