Інстанс та статичний контроль виконання | Частина-13 | Core Java: ООП (Об'єктно-орієнтоване програмування) | автор Sahil Hamirani
Приклад:
class Test
{
{
print("Перший блок інстансу");
}
static
{
print("Перший статичний блок");
}
Test()
{
print("Конструктор");
}
public static void main(String[] args)
{
Test t1 = new Test();
print("Головний метод");
Test t2 = new Test();
}
static
{
print("Другий статичний блок");
}
{
print("Другий блок інстансу");
}
}
Вивід:
Вивід інстансу та статичного контролю виконання | автор Sahil Hamirani
Приклад 2:
public class Initialization
{
private static String m1(String msg)
{
print(msg);
return msg;
}
public Initialization()
{
m = m1("1");
}
{
m = m1("2");
}
String m = m1("3");
public static void main(String[] args)
{
Object o = new Initialization();
}
}
Вивід 2:
2
3
1
Приклад 3:
public class Initialization2
{
private static String m1()
{
print(msg);
return msg;
}
static String m = m1("1");
{
m = m1("2");
}
static
{
m = m1("3");
}
public static void main()
{
Object o = new Initialization2();
}
}
Вивід 3:
1
3
2
- У статичній області ми не можемо безпосередньо отримати доступ до членів інстансу, оскільки під час виконання статичної області JVM може не ідентифікувати члени інстансу.
Приклад:
class Test
{
int x = 10;
public static void main()
{
1.
print(x); // Помилка під час компіляції: Нестатична змінна x не може бути
// використана у статичному контексті.
2.
Test t = new Test();
print(t.x); // 10
}
}
Скільки способів існує для створення об'єкта в Java або як можна отримати об'єкт в Java:
- Використовуючи оператор
new
:
Test t = new Test();
- Використовуючи метод
newInstance()
:
Test t = (Test) Class.forName(“Test”).newInstance();
- Використовуючи фабричний метод:
Runtime r = new Runtime.getRuntime(); DateFormat df = DateFormat.getInstance();
- Використовуючи метод
clone()
:
Test t1 = new Test(); Test t2 = (Test) t1.clone();
- Використовуючи десеріалізацію:
FileInputStream fis = new FileInputStream("abc.serv"); ObjectInputStream ois = ObjectInputStream(fis); Dog d = (Dog)ois.readObject();
Перекладено з: Instance & Static Control Flow | Part-13 | Core Java: OOPs(Object Oriented Programming)