Какие типы свойств может содержать объект

Прошу, проверьте тест, ответы я выделила, только большая просьба сильно не ругаться и тапками не кидать, практически сплю уже за компом. Соображалка уже плохо работает У меня плохо с учебной литературой, а точнее ее практически отсутствием. Поэтому и прошу помощи. Буду очень признательна вам.

Вопрос 1
Какие типы свойств может содержать объект
1.основные стандартные базовые типы
2.структурированные свойства-массивы
3.объектные свойства

4.программные свойства

Вопрос 2
Какие заголовки методов класса MyClass при их программной реализации являются правильными в языке Delphi Pascal
1.constructor MyClass.Create
2.procedure MyClass.MyMethod(ax : real);

3.constructor MyClass:Create
4.constructor Create

Вопрос 3
Что определяет принцип инкапсуляции
объединение в рамках класса данных и программного кода обработки 1.этих данных
2.ограничение доступа к элементам класса

3.механизм взаимодействия объектов
4.правила обработки ошибочных ситуаций

Вопрос 4
Какие объявления пары перегруженных методов в языках С++ /Java/C# являются правильными
1.SomeMethod(int a); override;
SomeMethod(float a); override
2.SomeMethod( );
SomeMethod(int a)
3.SomeMethod(int a);
SomeMethod(float a)
4.SomeMethod(int a);
SomeMethod(int b)

Вопрос 5
Какие утверждения относительно понятия “перегрузка методов” являются правильными
1.перегрузка методов – это наличие в классе нескольких одноименных методов
2.перегруженные методы должны отличаться друг от друга числом или типом формальных параметров
3.перегружать разрешается только конструкторы

4.перегрузка методов реализована только в языке С++

Вопрос 6
Какие объявления объектов класса MyClass в языке Delphi Pascal являются правильными
1.var MyObj : MyClass;
2.var MyObjs : array [1 . . 100] of MyClass

3.var MyObj = MyClass
4.var MyObj is object of MyClass

Вопрос 7
Какие объявления конструкторов класса MyClass являются правильными в языке Delphi Pascal
1.constructor MyClass (ai : integer)
2.Create (ax : string); constructor
3.MyClass
4.constructor Create

Вопрос 8
Как реализуется создание объектов класса MyClass в языке Java
1.MyClass MyObject; MyObject = new MyClass( )
2.MyClass MyObject = new MyClass( )

3.MyClass *MyObject( )
4.MyClass *MyObject = new MyClass( )

Вопрос 9
Какие утверждения относительно методов-деструкторов являются правильными
1.деструктор отвечает за освобождение памяти, выделенной объекту
2.деструкторы реализованы не во всех объектных языках

3.класс может иметь несколько деструкторов
4.класс обязательно должен иметь деструктор

Вопрос 10
Какие утверждения относительно закрытых элементов класса являются правильными
1.закрытые элементы доступны только внутри класса
2.закрытые элементы задаются директивой private

3.закрытыми элементами обычно являются свойства класса
4.закрытыми элементами являются все методы класса

Вопрос 11
Какие утверждения относительно дочерних классов являются правильными
1.дочерний класс можно создавать на основе одного или нескольких родителей
2.на основе дочернего класса можно создавать свои дочерние классы
3.дочерние классы являются более функциональными, чем их родители

4.дочерние классы могут не включать в себя некоторые методы родителей

Вопрос 12
Какие уровни доступа могут иметь элементы классов
1.открытый (public)
2.защищенный (protected)
3.закрытый (private)

4.привилегированный (privileged)

Вопрос 13
Какое правило используется для установления наследственной связи между объектами
1.объект А есть разновидность объекта В
2.объект А есть часть объекта В
3.объекты А и В являются экземплярами одного и того же класса
4.объект А имеет право вызывать методы объекта В

Источник

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 28 февраля 2014; проверки требуют 11 правок.

Свойство — способ доступа к внутреннему состоянию объекта, имитирующий переменную некоторого типа. Обращение к свойству объекта выглядит так же, как и обращение к структурному полю (в структурном программировании), но, в действительности, реализовано через вызов функции. При попытке задать значение данного свойства вызывается один метод, а при попытке получить значение данного свойства — другой.

При применении свойств

  • можно задать значение по умолчанию, которое будет храниться в данном свойстве (или указать, что никакого значения по умолчанию не предполагается);
  • можно указать, что это свойство только для чтения.

Как правило, свойство связано с некоторым внутренним полем объекта. Но свойству вообще может не быть сопоставлена ни одна переменная объекта, хотя пользователь данного объекта имеет дело с ним так, как если бы это было настоящее поле.

Свойства повышают гибкость и безопасность программирования, поскольку, являясь частью (открытого) интерфейса, позволяют менять внутреннюю реализацию объекта без изменения его полей. Свойства значительно облегчают модификацию программы в тех случаях, когда класс изначально был реализован с нарушением инкапсуляции, а в дальнейшем потребовалось изменить способ доступа к полю. При отсутствии в языке механизма свойств потребовалось бы искать и заменять обращения к полям на методы доступа.

Методы свойств[править | править код]

Во многих языках программирования свойства реализуются в виде пары методов: метод, получающий текущее значение свойства, называется акцессор (accessor); метод, задающий новое значение свойства, — мутатор (mutator).[источник не указан 1680 дней] В языках программирования, не поддерживающих свойства, например, C++ и Java, пара из акцессора и мутатора является общепринятым суррогатом для их замены.

Читайте также:  Какими свойствами обладают кости

Принято называть методы свойств именем свойства с приставками get и set: например, для свойства Xyzzy — get_Xyzzy и set_Xyzzy (традиционный стиль Си) либо GetXyzzy и SetXyzzy (стиль CamelCase). В связи с этой схемой наименования за методами свойств закрепились жаргонные названия getter и setter.

Примеры[править | править код]

Свойства в C#[править | править код]

Свойства в C# — поля с логическим блоком, в котором есть ключевые слова get и set.

Пример класса со свойством:

class MyClass
{
private int p_field;
public int Field
{
get
{
return p_field;
}
private set
{
p_field = value;
}
}
}

Свойства в VB.NET[править | править код]

Пример реализации в VB.NET. Если нужно реализовать свойство только для чтения или только для записи, применяются модификаторы ReadOnly и WriteOnly. Свойство может быть параметризованным. Также может быть свойством по умолчанию, для этого необходимо добавить модификатор Default

Sub Main
Dim F As New Foo

F.Data = 5
F.Item(0) = 5
F(0) = 5 ‘Запись в свойство
Console.WriteLine(F(0)) ‘Чтение свойства
End Sub

Public Class Foo
Private m_Data As Integer
Private m_Arr() As Integer = {1, 2, 3, 4, 5}

Public Property Data As Integer
Set(Value As Integer) ‘Сеттер
m_Data = Value
End Set
Get
Return m_Data ‘Геттер
End Get
End Property

Public Default Property Item(Param As Integer) As Integer ‘Параметризованное свойство по умолчанию
Set(Value As Integer)
m_Arr(Param) = Value
End Set
Get
Return m_Arr(Param)
End Get
End Property
End Class

Свойства в Delphi[править | править код]

Для описания свойства в Delphi служит слово property.

Пример класса со свойством:

TMyClass = class
private
FMyField: Integer;
procedure SetMyField(const Value: Integer);
function GetMyField: Integer;
public
property MyField: Integer read GetMyField write SetMyField;
end;

function TMyClass.GetMyField: Integer;
begin
Result := FMyField;
end;

procedure TMyClass.SetMyField(const Value: Integer);
begin
FMyField := Value;
end;

Свойства в ActionScript[править | править код]

class MyClass
{
private _foo : int;

public function get foo () : int {
return _foo;
}
public function set foo (foo : int) : void {
_foo = foo;
}

}

Свойства в Objective C[править | править код]

@interface Company : NSObject
{
NSString *var_name;
}

@property(retain) NSString *var_name;

@end

@implementation Company

@synthesize var_name;

@end

Свойства в Ruby[править | править код]

Описания свойства в Ruby ничем не отличается от описания метода. Например, для создания свойства duration у класса Song нужно описать методы duration и duration=(value)

class Song
def duration
@duration
end
def duration=(value)
@duration = value
end
end

Однако простое обращение к внутренней переменной объекта может быть заменено на вызов метода attr_accessor :duration

class Song
attr_accessor :duration
end

Более интересным будет пример создания свойства duration_in_minutes, которое будет возвращать или устанавливать время длительности в минутах:

class Song
def duration_in_minutes
@duration/60.0
end
def duration_in_minutes=(value)
@duration = (value*60).to_i
end
end

При этом изменение свойства duration_in_minutes повлияет на свойство duration. Например

song = Song.new
song.duration_in_minutes = 1.2
print song.duration # напечатает 72

Свойства в Python[править | править код]

Набор методов с декораторами определяет способы работы со свойством (чтение, запись, удаление). Если какой-то из методов убрать (за исключением @property), теряется возможность работать со свойством соответствующим образом.

Пример класса со свойством:

class A:
def __init__(self):
self.__x = None

@property
def x(self):
return self.__x

@x.setter
def x(self, value):
self.__x = value

@x.deleter
def x(self):
self.__x = None

>>> a = A()
>>> a.x
>>> a.x = 2
>>> a.x
2
>>> del a.x
>>> a.x
>>>

См. также[править | править код]

  • Событие
  • Метод

Источник

        2. Объекты: свойства и методы.

Объекты (Objects). Как конструирование графического интерфейса, так и
разработка программного кода базируется на использовании программных объектов.
Каждый объект обладает определенным набором свойств и может использо­вать определенные
методы обработки данных. Если гово­рить образно, то объекты — это существительные,
свойства объекта — это прилагательные, а методы объекта — это гла­голы.

Программные объекты обладают свойствами и могут использовать методы обработки данных.

Классы объектов являются «шаблонами», определяю­щими наборы свойств,
методов и событий, по которым со­здаются объекты. Основными классами объектов
являют­ся объекты, реализующие графический интерфейс проектов.

Объект, созданный по «шаблону» класса объектов, явля­ется экземпляром класса и наследует весь
набор свойств, методов и событий данного класса. Каждый экземпляр клас­са
объектов имеет уникальное для данного класса имя.

 

Основой для создания графи­ческого интерфейса проекта явля­ется объект «форма» (рис.).

Какие типы свойств может содержать объектНа основании класса объек­тов Form можно создавать эк­земпляры
объектов «форма», ко­торые получают имена Form1, Form2 и т. д.    

Свойства объекта (Properties). Каждый класс объектов обладает определенным набором свойств. Так,
например, класс объектов Form обладает
несколькими десятками раз­личных свойств, которые определяют размеры объекта
«форма», цвет формы, положение на экране монитора и т. д. (табл.).

Читайте также:  Какое свойство воздуха благодаря которым мы его не видим

 

Таблица. Некоторые свойства
объекта «форма»

Свойство

Значение
по умолчанию

Комментарий

Name

Form1

Имя
объекта, используется в программ­ном коде для обращения к объекту

Text

Form1

Текст
в левом верхнем углу формы

BackColor

Control

Серый
цвет фона формы

Font

MS Sans Serif, обычный, 8

Шрифт,
его начертание и размер

Различные экземпляры
класса объектов обладают одина­ковым набором свойств, однако значения свойств у
них могут отличаться. Первоначальные значения свойств объектов можно установить
с использованием диалогового окна Свой­ства
(Properties) системы программирования.

Какие типы свойств может содержать объект

Так, для объекта
«форма» Form1 можно установить тре­буемое
значение любого свойства. Для этого необходимо вы­брать свойство из списка и
изменить его значение.

Значения свойств
объектов можно изменять в программ­ном коде. Для присваивания свойству объекта
нового значе­ния в левой части строки программного кода необходимо указать имя
объекта и затем — название свойства, которые в соответствии с правилами
точечной нотации разделяются между собой точкой. В правой части строки необходимо
за­писать конкретное значение свойства:

Объект.Свойство
= ЗначениеСвойства

Например, новая
надпись «Первый проект» в левом верх­нем углу объекта Form1 (значение свойства Text) появится в результате выполнения программного кода:

Form1.Text = “Первый  
проект”

Методы объекта (Methods). Объекты могут использовать различные методы обработки
данных. Методы имеют аргу­менты, которые позволяют задать значения параметров
вы­полняемых действий.

Для использования
метода в строке программного кода необходимо указать имя объекта и затем метод,
которые в соответствии с правилами точечной нотации разделяются между собой
точкой. В скобках при необходимости записы­ваются аргументы метода, разделяемые
запятыми:

Объект.Метод (apr1,
арг2)

Например, с помощью
метода Scale (х, у) можно изме­нить
размеры формы или элемента управления. Аргументы метода x и y являются коэффициентами масштабирования по
горизонтали и вертикали, т. е. позволяют увеличить или уменьшить ширину и
высоту элемента управления. Напри­мер, можно в два раза увеличить размер объекта
по оси X и в
два раза его уменьшить по оси Y:

Me.Scale(2,0.5)

Если производятся операции над самой формой,
то  вместо ее имени (например, Form1) в программном коде используется имя  Me.

Источник

Наиболее важная часть объекта – его свойства. Объект представляет из себя набор свойств, и каждое свойство состоит из имени и значения, ассоциированного с этим именем. Именем свойства (ключом) может быть только строка, а вот значением – любой тип данных. Если значением свойства является функция, то её можно назвать методом объекта.

Свойства объектов в JavaScript являются теми же самыми переменными, за тем исключением, что они закреплены за объектом. Как и все переменные JavaScript, имя объекта (которое тоже может быть переменной) и имя свойства чуствительны к регистру. Свойства объекта определяют его индивидуальные характеристики.

Получить значение свойства можно с помощью операторов точки (.) или квадратных скобок ([]). Значение в левой части оператора должно быть ссылкой на объект, обычно это просто имя переменной, содержащей ссылку на объект, но это может быть любое допустимое в JavaScript выражение, являющееся объектом.

Значение в правой части оператора должно быть именем свойства. При использовании оператора точка (.) справа должен находиться простой идентификатор, соответствующий имени свойства. Доступ к любому имени свойства, которое содержит невалидный JavaScript идентификатор (например, имя свойства содержит в себе пробел, тире или начинается с цифры), может быть получен с использованием квадратных скобок ([]).

Значение свойства может быть любым: как значением простого типа, так и другим объектом. Значения можно вкладывать друг в друга, причем вложений можно делать сколько угодно:

Значение объекта может быть обновлено путем присваивания. Если свойство с таким именем уже существует в объекте, его значение заменяется:

Квадратные скобки также позволяют обратиться к свойству, имя которого хранится в переменной:

Если имя свойства хранится в переменной, то единственный способ к нему обратиться – это применение оператора [] (квадратные скобки).

Метод – это свойство объекта, значением которого является функция. Методы определяются так же, как и обычные функции, за тем исключением, что они присваиваются свойству объекта. Вызов метода осуществляется точно также, как и вызов обычной функции – с помощью оператора вызова ():

Методы объектов можно добавлять и удалять в любой момент, точно также как вы поступаете с обычными свойствами объектов:

Для доступа к свойствам объекта внутри метода используется ключевое слово this. Использование this позволяет ссылаться на объект, к которому принадлежит метод:

Здесь вместо this внутри функции (метода) greeting можно было бы обратиться к объекту, используя переменную person (сам объект):

Ключевое слово this

var person = {
name: ‘John’,
greeting: function() {
alert( ‘Hello, ‘ + this.name + ‘!’);
}
// идентичная запись
greeting: function() {
alert( ‘Hello, ‘ + person.name + ‘!’);
}

Читайте также:  Какие свойства света подтверждают эффект комптона

В предыдущем примере мы определили функцию внутри свойства greeting во время определения объекта person. Однако, мы можем определить сначала функцию, а затем закрепить ее за свойством person.fun. В таком случае поведение this не изменится:

Эти примеры показывают, что на поведение this совсем не влияет то, где была определена функция, а имеет значение только то, что функция была вызвана из свойства объекта.

Через ключевое слово this метод может получить доступ не только к любому свойству объекта, но и передать куда-нибудь ссылку на сам объект:

Известно, что каждый объект содержит ссылку на свой объект-прототип. Если метод находится где-то в цепочке прототипов, то this ссылается на объект, на котором был вызван метод, т.е. как будто этот метод является методом самого объекта, а не прототипа.

В этом примере объект person, не имеет собственного свойства (метода) fullName, а наследует это свойство от своего прототипа prototypeObject. Поскольку поиск свойства начался с person.fullName, то this внутри функции fullName будет ссылаться на объект person. Таким образом, если fullName вызывается как метод объекта person, то и this относится к person. Это очень важная особеность прототипного наследования JavaScript.

Оператор delete удаляет свойство из объек­та. Он удаляет свойство объекта, если оно есть. Удаление не касается свойств объектов, связанных по цепочке прототипов. Если свойство с таким же именем существует в цепочке прототипов, объект унаследует это свойство из прототипа.

Выражение delete возвращает true, если удаление свойства прошло успешно. delete вернет false только в том случае, когда свойство не было удалено (например, если свойство относится к защищенному объекту, принадлежащему браузеру). true возвращается даже в том случае, если свойство, которое вы пытаетесь удалить, не существует в объекте:

  • Объект представляет собой набор свойств.
  • Получить значение свойства можно с помощью операторов точки (.) или квадратных скобок ([]).
  • Свойства можно добавить в объект в любой момент. Для этого следует присвоить значение с указанием имени нового свойства.
  • Метод представляет собой свойство, значением которого является функция. Для ссылки на объект, из которого вызывается метод, используется ключевое слово this.
  • Методы можно вызывать в точечной записи: имя объекта, точка и имя свойства метода, за которым следует пара круглых скобок.
  • Метод можно рассматривать как функцию, присвоенную свойству, поэтому новый метод можно добавить в любой момент.
  • Методы могут получать аргументы, как и обычные функции.
  • Если несуществующему свойству объекта присваивается значение, данное свойство добавляется в объект. Для удаления свойств используют инструкцию delete.
  • Свойства объекта

    Почему данный код выдаёт синтаксическую ошибку?

    var cat = {
    legs: 4
    name: “Гармония”
    color: “Черепаховый”
    };

    alert( cat.name ); // SyntaxError

    Показать решение

    Решение:

    Чтобы исправить ошибку, нужно добавить запятую после первого и второго свойства.

    • Доступ к свойствам объекта

      Сохраните значения свойств объекта myObj в переменных x, y и z. Выведите значения переменных x, y и z через alert.

      var myObj = {
      “an entree”: “hamburger”,
      “my side”: “veggies”,
      “the drink”: “water”
      };

      // ваш код

      Показать решение

      • Свойство в переменной

        1. В переменной myDog сохраните имя свойства объекта dogs: “hunter”.
        2. Присвойте свойство с именем myDog и значением “Ротвейлер” объекту dogs.
        3. Выведите значение свойства, хранящегося в переменной myDog через alert.
        var dogs = {
        running: “Арабская борзая”,
        hunter: “Лабрадор”,
        guard: “Московская”
        }

        // ваш код

        Показать решение

        Решение:

        Если имя свойства объекта хранится в переменной (var myDog = “hunter”), то обратиться к нему можно только через квадратные скобки dogs[myDog].

        • Обновить свойство

          Поменяйте значение свойства guard c “Московская” на “Московская-сторожевая”

          var dogs = {
          running: “Арабская борзая”,
          hunter: “Лабрадор”,
          guard: “Московская”
          }

          // ваш код

          Показать решение

          Решение:

          Если имя свойства объекта хранится в переменной (var myDog = “hunter”), то обратиться к нему можно только через квадратные скобки dogs[myDog].

          • Добавление и удаление свойств

            Добавьте в объект dogs свойство с именем driving и значением “Сибирский хаски”. Удалите свойство “guard” из dogs. Выведите вновь добавленное и удалённое свойства через alert.

            var dogs = {
            running: “Арабская борзая”,
            hunter: “Лабрадор”,
            guard: “Московская-сторожевая”
            }

            // ваш код

            Показать решение

            • Добавление метода

              1. Определите никак не связанную с приведенными объектами dog_1 и dog_2 функцию testBreed, которая будет выводить породу (breed), тип (a type) и вес (the weight) собаки.
              2. Присвойте функцию testBreed свойству sayAbout для обоих объектов.
              3. Запустите функцию testBreed для каждого из объектов.
              var dog_1 = {
              breed: “Алабай”,
              “a type”: “собака-компаньон”,
              “the weight”: “50 кг”
              }

              var dog_2 = {
              breed: “Бультерьер”,
              “a type”: “бойцовская”,
              “the weight”: “36 кг”
              }

              // ваш код

              Показать решение

Источник