русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-01-08; просмотров: 826; Нарушение авторских прав


Методы и поля, описанные в объявлении класса, становятся доступными только при создании объекта этого класса. В то же время может быть необходимо в классе иметь доступными поля и методы, независимо от того, сколько объектов создано, или созданы ли объекты этого класса вообще. Либо требуется описать метод, не ассоциируемый с объектом определенного класса (аналог глобального метода). Достигается это использованием ключевого слова static по отношению к полям и методам. Это означает, они не привязаны к определенному экземпляру объекта класса. И статический метод может быть вызван, либо обеспечен доступ к статическому полю, даже если нет объектов данного класса. Статические методы, не требующие создания объекта до их использования, не могут получить прямой доступ к не статическим полям или методам простым обращением к ним без указания имени объекта, так как они не получают ссылки this.

Поле или метод класса является статическим, если при его определении перед ним указывается ключевое слово static:

class StaticDemo {

static int n1 = 1;

int n2;

static void metod1() { StaticDemo.n1++; }

void metod2() { n2++; }

}

В этом случае даже при создании нескольких объектов StaticDemo, все они будут иметь общее поле StaticDemo.n1.

StaticDemo obj1 = new StaticDemo();

StaticDemo obj2 = new StaticDemo();

При этом obj1.n1, и obj2.n1 имеют одно и то же значение 1, так как они ссылаются на одну и ту же область памяти.

Ссылаться на статические компоненты класса можно как через объект, так и прямо через имя класса(например, StaticDemo.n1), что невозможно с не статическими членами.

Добавление атрибута static к полю класса изменяет путь его создания (одни для всего класса против не статического: один для каждого объекта). Атрибут static примененный к методу класса позволит вызывать этот метод без создания объекта.



Считается, что static методы не являются объектно-ориентированными, так как они имеют семантику глобальных функций; с помощью static метода не посылается сообщение объекту. Если в программе используется достаточно много статических методов, вероятно, нужно изменить свою стратегию.

 



<== предыдущая лекция | следующая лекция ==>
Вызов конструктора из конструктора | Вложенные и внутренние классы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.271 сек.