Запитання з тегом «instance-variables»

В об'єктно-орієнтованому програмуванні з класами змінна екземпляра - це змінна, визначена в класі (тобто змінна-член), для якої кожен об'єкт класу має окрему копію.

8
Як працюють серветки? Моменталізація, сеанси, загальні змінні та багатопотоковість
Припустимо, у мене є веб-сервер, який вміщує численні сервлети. Для передачі інформації серед цих сервлетів я встановлюю змінні сеансу та екземпляра. Тепер, якщо 2 або більше користувачів надсилають запит на цей сервер, що робити з змінними сеансу? Чи всі вони будуть спільними для всіх користувачів або вони будуть різними для …

6
Змінна інстанція: self vs @
Ось код: class Person def initialize(age) @age = age end def age @age end def age_difference_with(other_person) (self.age - other_person.age).abs end protected :age end Те , що я хочу знати різницю між використанням @ageі self.ageв age_difference_withметоді.

7
Змінна екземпляра класу Ruby порівняно зі змінною класу
Я читав " Коли встановлюються змінні екземплярів Ruby? ", Але мені здається, коли слід використовувати змінні екземплярів класу. Змінні класу поділяються всіма об'єктами класу, змінні екземплярів належать одному об'єкту. Для використання змінних екземплярів класу не залишається багато місця, якщо у нас є змінні класу. Чи може хтось пояснити різницю між …

5
Що означає змінна @@ у Ruby?
Яким змінним Ruby передують подвійні знаки ( @@)? Моє розуміння змінної, що передує знаку at, полягає в тому, що вона є змінною екземпляра, як ця в PHP: Версія PHP class Person { public $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } …


10
Як отримати змінні екземпляри в Python?
Чи є вбудований метод в Python для отримання масиву всіх змінних екземплярів класу? Наприклад, якщо у мене є цей код: class hi: def __init__(self): self.ii = "foo" self.kk = "bar" Чи є для мене спосіб це зробити: >>> mystery_method(hi) ["ii", "kk"] Редагувати: Спочатку я запитував змінні класу помилково.

6
Чи потрібні оголошені властивості відповідної змінної екземпляра?
Чи потрібні властивості в Objective-C 2.0 оголошувати відповідну змінну екземпляра? Наприклад, я звик робити щось подібне: MyObject.h @interface MyObject : NSObject { NSString *name; } @property (nonatomic, retain) NSString *name; @end MyObject.m @implementation @synthesize name; @end Однак що робити, якщо я зробив це замість цього: MyObject.h @interface MyObject : NSObject …

4
Ruby Metaprogramming: імена змінних динамічних екземплярів
Скажімо, у мене є такий хеш: { :foo => 'bar', :baz => 'qux' } Як я міг динамічно встановити ключі та значення, щоб стати змінними екземпляра в об'єкті ... class Example def initialize( hash ) ... magic happens here... end end ... щоб я закінчив наступне всередині моделі ... @foo …

11
Приватні учасники в CoffeeScript?
Хтось знає, як зробити приватних, нестатичних членів у CoffeeScript? На даний момент я роблю це, що просто використовує загальнодоступну змінну, що починається з підкреслення, щоб пояснити, що її не слід використовувати поза класом: class Thing extends EventEmitter constructor: (@_name) -> getName: -> @_name Поміщення змінної в клас робить її статичним …


2
У чому різниця між ivars та властивостями у Objective-C
Яка семантична різниця між цими 3 способами використання ivars та властивостей у Objective-C? 1. @class MyOtherObject; @interface MyObject { } @property (nonatomic, retain) MyOtherObject *otherObj; 2. #import "MyOtherObject.h" @interface MyObject { MyOtherObject *otherObj; } @property (nonatomic, retain) MyOtherObject *otherObj; 3. #import "MyOtherObject.h" @interface MyObject { MyOtherObject *otherObj; }


5
Як я можу ініціалізувати змінні екземпляра модуля в Ruby?
У мене є деякі модулі, де я хотів би використовувати змінні екземпляра. На даний момент я їх ініціалізую так: module MyModule def self.method_a(param) @var ||= 0 # other logic goes here end end Я також міг би викликати метод init для їх ініціалізації: def init @var = 0 end але …

1
Ruby Rspec: Тестування змінних екземпляра без додавання доступу до джерела
Я намагаюся перевірити наступний метод: def unprocess_move(board, move) if move[0].instance_of?(Array) multi_move = @multi_move.pop(2).reverse multi_move.each do |single_move| unapply_move(board, single_move) end else board = unapply_move(board, move) end board end де я хочу встановити стан для @multi_move, але я не хочу додавати аксесуар лише для тестування. Чи можна це зробити без аксесуара? Дякую.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.