Java
Объясните, пожалуйста, что такое static?
Только если можно, понятным языком, а то в нете читал, но че-то как распишут на 5 стр и ничерта не ясно, можно вызывать то, то нельзя и тд. Зачем нужен статик, в чем его преимущество, в чем не достаток и че это такое? Заранее спасибо!
типа глобального значения
Не надо создавать каждый раз экземпляр класса, сразу к нему можно обращаться
Не надо создавать каждый раз экземпляр класса, сразу к нему можно обращаться
public class Человек {
double рост;
double вес;
Color цветГлаз;
static long численность;
}
Вот есть класс «Человек». А на Земле живет семь миллиардов людей — экземпляров класса «Человек».
У каждого человека (объекта) есть свой набор свойств: цвет глаз, овал лица, рост, вес, структура ДНК… Взять двоих разных людей — у них эти свойства не совпадают.
Так вот, рост, вес и цвет глаз — это простые свойства, поля отдельных объектов. Они объявлены в описании класса «Человек», но у каждого человека они свои. 7 миллиардов человек — 7 миллиардов полей.
А статическое поле — это не поле объекта, а поле всего класса целиком. Например, численность человеческого населения. Его значение одинаковое для всех людей. Если оно изменится, то изменится сразу для всех людей. Потому что статическое поле — одно на весь класс.
System.out.println(вася. рост);
System.out.println(маша. рост);
System.out.println(вася. вес);
System.out.println(маша. вес);
System.out.println(Человек. численность);
double рост;
double вес;
Color цветГлаз;
static long численность;
}
Вот есть класс «Человек». А на Земле живет семь миллиардов людей — экземпляров класса «Человек».
У каждого человека (объекта) есть свой набор свойств: цвет глаз, овал лица, рост, вес, структура ДНК… Взять двоих разных людей — у них эти свойства не совпадают.
Так вот, рост, вес и цвет глаз — это простые свойства, поля отдельных объектов. Они объявлены в описании класса «Человек», но у каждого человека они свои. 7 миллиардов человек — 7 миллиардов полей.
А статическое поле — это не поле объекта, а поле всего класса целиком. Например, численность человеческого населения. Его значение одинаковое для всех людей. Если оно изменится, то изменится сразу для всех людей. Потому что статическое поле — одно на весь класс.
System.out.println(вася. рост);
System.out.println(маша. рост);
System.out.println(вася. вес);
System.out.println(маша. вес);
System.out.println(Человек. численность);
Denis Vackulenko
И понял и не понял одновременно (Человек Шредингера). Раньше писал программы для себя на Delphi, там по моему такого нет. По этому не совсем понимаю зачем это надо. Мы же можем 1 программу написать внутри public static void main (String[] arts) {} и не создавать ничего другого. Я в том плане, что не совсем понимаю для чего создавать объекты или статические методы.
static говорит о том, что такие свойства или методы принадлежат классу, а иначе они принадлежат объекту.
Что тут расписывать-то? Просто, ежели у объекта есть свойство "static" - для него не нужно создавать экземпляр.
Думаю так понятней:
Есть класс object, у него есть свойство, например static int count(количество) = 0
object X = new object();
А в конструкторе object есть такой кусочек кода:
object.count++
Потом, обратившись к object.count(или X.count), можно узнать количество экземпляров класса object.
Даже если ты ни разу не вызывал конструктор object - его count будет доступен. \
Весь смысл в том, что - всё что со static - в единичном экземпляре.
Думаю так понятней:
Есть класс object, у него есть свойство, например static int count(количество) = 0
object X = new object();
А в конструкторе object есть такой кусочек кода:
object.count++
Потом, обратившись к object.count(или X.count), можно узнать количество экземпляров класса object.
Даже если ты ни разу не вызывал конструктор object - его count будет доступен. \
Весь смысл в том, что - всё что со static - в единичном экземпляре.
Статик - объявляет, что свойство принадлежит именно классу, а не объекту. Получить и присвоить значение статическому члену можно только используя класс, а не объекты этого класса.
Статик это когда переменная только одна, независимо от того сколько объектов (классов) было создано с ней.
Это как облако, и жесткий диск устройства.
Допусти у тебя есть 10 айфонов, и 1 Айклауд, то есть ты можешь хранить разную информацию в жестких дисках, а информация в айклауде будет всегда одинаковая на любом из айфонов.
Это как облако, и жесткий диск устройства.
Допусти у тебя есть 10 айфонов, и 1 Айклауд, то есть ты можешь хранить разную информацию в жестких дисках, а информация в айклауде будет всегда одинаковая на любом из айфонов.
это тип АА в кс го правдо по ним ни кто не мисает но они есть и еще скит пмнешь)
Похожие вопросы
- Объясните пожалуйста, что происходит в этом коде:
- JAVA, объясните, пожалуйста, простыми словами
- объясните зачем метод void в java? как можно проще, я новичек К примеру тут public static void main (string[] args)
- Почему в Java метод main является static? Почему в Java метод main является static?
- Язык программирования. Что такое? Что значит команда: Static
- Объясните мне, чайнику. Как это работает?
- Что такое фреймворк? Кто нибудь может вразумительно объяснить, что такое фреймворк? Заранее спасибо)
- Массивы Прочитал несколько статей по массивам, но так и не понял, как они работают. Объясните вкратце и понятно, плз
- Помогите с Джавой!!! И объясните почему
- Не могу понять ОБЪЕКТЫ в языках программ. Объясните простыми словами
То есть получается статик - это как метода, а без статик как объект над которым происходит действие?