1. Статические переменные, используемые в статике в Java
1. Члены Java, которые изменены Static, называются статическими членами или классными членами. Он принадлежит всему классу, а не к объекту, то есть он разделяется всеми объектами класса и существует в приоритете над объектами. Статические участники можно получить напрямую, используя имена классов или имена объектов. Используйте Static для изменения переменных, методов и кодовых блоков.
2. Общественный модификатор представляет общественный и общественный, а статические переменные изменяются со статическими переменными.
3. В статическом методе статические члены в том же классе могут быть вызваны напрямую, но нестатических членов не могут быть вызваны напрямую.
открытый класс Hellworld {string name = "java"; // нестатическая переменная статическая строка Hobby = "Программирование"; // Статическая переменная public static void print () {System.out.println ("Welcome:" + name + "!"); // Нестатическая переменная System.out.println ("Welcome:" + Hobby + "!"); // может напрямую вызовать статические переменные}}4. Если вы хотите вызвать нестатические переменные статическим методом, вы можете создать объект класса, а затем получить доступ к нестатическим переменным через объект.
открытый класс helloworld {string name = "java"; // нестатическая переменная статическая строка Hobby = "программа"; // Статическая переменная // Вызов нестатической переменной public static void print () {// Создание объекта класса Helloworld Hello = new Helloworld (); // Использование объектов, чтобы вызвать нестатическую систему переменной. // В статическом методе вы можете напрямую вызовать статическую переменную System.out.printn ("Добро пожаловать"+Program+""+hello.name); }}5. В обычных методах члена вы можете напрямую получить доступ к одному типу нестатических переменных и статических переменных.
открытый класс Hellworld {string name = "java"; // Нестатическая переменная статическая строка Hobby = "Программирование"; // Статическая переменная public void print () {// нормальные методы System.out.println ("Gellject:" + name + "!"); System.out.prinltn ("добро пожаловать на"+Program+"+hello.name);}}6. Нестатические методы не могут быть вызваны непосредственно в статических методах. Нестатические методы необходимо получить через объекты.
public Class Hellworld {String name = "java"; // Нестатическая переменная статическая строка hobby = "программа"; // Статическая переменная // Нестатический метод public void show () {System.out.println («Я нестатический метод, и не может быть непосредственно вызван статический метод ...."); } // Статический метод public static void show2 () {System.out.println («Я статический метод, и может быть напрямую вызовом статическим методом»); } // Нестатический метод вызывается через объекты в статических методах. Вы можете напрямую вызвать статический метод Public Static void print () {// Создать объект класса Helloworld Hello = new Helloworld (); // Рассчитать нестатический метод hello.show () в статическом методе; // Рассчитайте статический метод show2 (); }}2. Блоки статической инициализации, используемые на Java
1. В объявлении класса можно включить несколько блоков инициализации. Когда будет создан экземпляр класса, эти блоки кода будут выполнены по очереди. Если вы используете Static для изменения блока инициализации, он называется статическим блоком инициализации.
2. Разница между переменными экземпляра и переменными класса:
а) Место хранения: переменные класса хранятся в области метода, когда класс загружается; Переменные экземпляра существуют в памяти кучи при установке объекта.
б) жизненный цикл: жизненный цикл переменной класса самый длинный и исчезает, когда класс исчезает; Жизненный цикл переменной экземпляра исчезает, когда объект исчезает.
3. Блок статической инициализации выполняется только тогда, когда класс загружен и будет выполнен только один раз. В то же время блок статической инициализации может присваивать значения только статическим переменным и не может инициализировать обычные переменные элемента. Когда программа работает, статическая инициализация быстро выполняется и имеет приоритет над основной функцией, затем выполняется нормальная блок инициализации, и, наконец, выполняется метод конструкции.
открытый класс staticdemo {int num1; // объявить переменную 1 int num2; // объявить переменную 2 static int num3; // объявить статическую переменную 3 public staticdemo () {// Метод конструктора num1 = 88; System.out.println ("Присвоение значения переменной 1 через метод строительства"); } {// Блок инициализации num2 = 99; System.out.println («Присвоение значения переменной 2 через блок инициализации»); } static {// Статическая инициализация здесь вы не можете получить нормальные переменные. Присвоение значения num3 = 77; System.out.println («Значение назначения статической переменной 3 через статическую инициализацию блок»); } public static void main (string [] args) {staticDemo hello = new staticdemo (); // Создать объект класса Hello System.out.println ("num1:" + hello.num1); System.out.println ("num2:" + hello.num2); System.out.println ("num3:" + hello.num3); Staticdemo hello1 = new staticdemo (); }} Результаты работы: