Java, мне показалось интересным....:)

User avatar
OBender
Уже с Приветом
Posts: 1564
Joined: 27 Nov 2001 10:01
Location: Live free or die

Java, мне показалось интересным....:)

Post by OBender »

И так, скомпилируется ли следующий код и если нет то где выдаст ошибку, и если выдаст ошибку то что сделать что бы не выдавал? :mrgreen:

Code: Select all

file ./p1/C1.java

package p1;

public class C1 {
    protected C1() { } //protected constructor   
}

-----------------------------------------------
file ./p2/C2.java

package p2;

import p1.C1;

public class C2 extends C1 {

    public C2(){
   super();
    }

    public void amethodA(){
        C1 c =
              new C1(){  public void methodX(){}  };
    }

    public void amethodB(){
        C1 c = new C1();
    }
}
Интересный вы человек! Все у вас в порядке. Удивительно, с таким счастьем - и на свободе. (C) О.Бендер
igrok
Уже с Приветом
Posts: 291
Joined: 25 Sep 2001 09:01

Post by igrok »

Еще одна интересная формулировка, аналогичного вопроса:

Code: Select all

package p1;

public class C1 {
    protected void m1() {}

    protected void m2() {}
}
-------------
package p2;

import p1.C1;

public class C2 extends C1 {
    protected void m1() {}
}
-------------
package p2;

import p1.C1;

public class C3 {
    public void caller() {
        C1 c1 = new C1();
        C1 c2 = new C2();
        C2 c3 = new C2();
        c1.m1(); // line #1
        c2.m1(); // line #2
        c3.m1(); // line #3
        c3.m2(); // line #4
    }
}

Сколько ошибок выдаст компилятор и в каких страках?
Last edited by igrok on 05 Dec 2003 22:52, edited 1 time in total.
User avatar
hooch
Уже с Приветом
Posts: 1169
Joined: 16 Jan 2003 23:23

Re: Java, мне показалось интересным....:)

Post by hooch »

OBender wrote:И так, скомпилируется ли следующий код и если нет то где выдаст ошибку, и если выдаст ошибку то что сделать что бы не выдавал? :mrgreen:

Code: Select all

file ./p1/C1.java

package p1;

public class C1 {
    protected C1() { } //protected constructor   
}

-----------------------------------------------
file ./p2/C2.java

package p2;

import p1.C1;

public class C2 extends C1 {

    public C2(){
   super();
    }

    public void amethodA(){
        C1 c =
              new C1(){  public void methodX(){}  };
    }

    public void amethodB(){
        C1 c = new C1();
    }
}


C1 c = new C1(); - constructor is not visible, make C1() constructor public.
User avatar
hooch
Уже с Приветом
Posts: 1169
Joined: 16 Jan 2003 23:23

Post by hooch »

igrok wrote:Еще одна интересная формулировка, аналогичного вопроса:

Code: Select all

package p1;

public class C1 {
    protected void m1() {}

    protected void m2() {}
}
-------------
package p2;

import p1.C1;

public class C2 extends C1 {
    protected void m1() {}
}
-------------
package p2;

import p1.C1;

public class C3 {
    public void caller() {
        C1 c1 = new C1();
        C1 c2 = new C2();
        C2 c3 = new C2();
        c1.m1();
        c2.m1();
        c3.m1();
        c3.m2();
    }
}

Сколько ошибок выдаст компилятор и в каких страках?


Nado bylo hot stroki pronumerovat :umnik1:
m1() in C1 is not visible in C2, because overriden.
User avatar
OBender
Уже с Приветом
Posts: 1564
Joined: 27 Nov 2001 10:01
Location: Live free or die

Re: Java, мне показалось интересным....:)

Post by OBender »

hooch wrote:C1 c = new C1(); - constructor is not visible, make C1() constructor public.


Ага, или поместить все слассы в один пакадж :)
Интересный вы человек! Все у вас в порядке. Удивительно, с таким счастьем - и на свободе. (C) О.Бендер
igrok
Уже с Приветом
Posts: 291
Joined: 25 Sep 2001 09:01

Re: Java, мне показалось интересным....:)

Post by igrok »

OBender wrote:
hooch wrote:C1 c = new C1(); - constructor is not visible, make C1() constructor public.


Ага, или поместить все слассы в один пакадж :)

Или добавить {} к инициализации переменной: C1 c = new C1(){};
:wink:
igrok
Уже с Приветом
Posts: 291
Joined: 25 Sep 2001 09:01

Post by igrok »

hooch wrote:Nado bylo hot stroki pronumerovat :umnik1:

Пронумеровал :)

Return to “Вопросы и новости IT”