Что выведет программа?
classOuterClass (privatestaticint a1 = 2;
protected static int a2 = 4;
static int a3 = 6:
public static int a4 = 3:
private int x1 = 40:
protected int x2 = 20:
int x3 = 60;
public int x4 = 100;
private static void privateStaticOuterMethod1(int v) {
System.out.printin(v + 20):
static void packagePrivateStaticOuterMethod1(int v) {
System.out.printin(v):
public void publicinstanceOuterMethod1(int v) {|
System.out.printin(a4 * v):
static class StaticiNestedClass {
public static void main(String] args) {
StaticNestedClass s= new StaticNestedClass0:
s.method10:|
s.method2(new OuterClass0):|
public void method10 {
// можно обращаться к приватным статическим членам.
int y1 = a1:
int y2 = a2:
int y3 = a3;
int y4 = a4;
privateStaticOuterMethod1(y1 + y2):|
packagePrivateStaticOuterMethod1(y3 + y4);
public void method2(OuterClass oc) {
// К членам экземпляров только через ссылку.
int z1 = oc.x1;
int z2 = oc.x2;
int z3 = oc.x3;
int z4 = 0c.x4;
oc.publicinstance@uterMethod1z1 + 22 + z3 + z4):
Другие предметы Колледж Модификаторы доступа и вложенные классы Java программирование колледж вывод программы статические методы доступ к членам класса вложенные классы инкапсуляция в Java модификаторы доступа Java Новый
Давайте разберем, что выведет данная программа. Начнем с анализа кода.
Код содержит класс OuterClass, в котором определены как статические, так и нестатические (экземплярные) переменные и методы. Мы видим, что:
Теперь давайте рассмотрим методы:
Теперь перейдем к классу StaticNestedClass, который содержит метод main. Рассмотрим, что происходит в этом методе:
StaticNestedClass s = new StaticNestedClass();
s.method10();
В методе method10 происходит следующее:
После вызовов этих методов программа завершает выполнение метода method10. Теперь давайте подведем итог:
Итак, программа выведет:
Таким образом, итоговый вывод программы будет:
26
9