プロが教えるわが家の防犯対策術!

以下の Aクラスと Bクラスで、違いが出る状況ってあるのでしょうか?
---------------------------
package p1;

class A {
void excute(){ }
}

---------------------------
package p2;

class B {
public void excute(){ }
}
----------------------------

A 回答 (4件)

Aはp1パッケージの外のクラスからはアクセスできないのでは?



public なんでもOK

☆無指定自パッケージ内アクセス

protected サブクラス

private クラス内

っていう感じですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Bクラスも、パッケージの外からはアクセスできませんよね?public class ではないから・・。

お礼日時:2003/05/22 19:40

なるほど。


そういう意味の質問だったとは、早とちりでした。

A,Bクラスについてはそう違いはないかもしれません。
しかしAクラスを継承したpublicなAAクラスと
Bクラスを継承したpublicなBBクラスをつくると
その可視性に違いがでてきますね。

AAクラスをパッケージ外で作った場合はexcuteは見えませんが、
BBクラスの場合はパッケージ外でもexcuteが見えてしまいますね。
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2010/05/18 01:58

> AAクラスをパッケージ外で作った場合はexcuteは見えませんが、


> BBクラスの場合はパッケージ外でもexcuteが見えてしまいますね。

いやいや、別パッケージからAクラスやBクラスは見えないのだから、別パッケージにサブクラスは作れません。

ただし、AやBと同じパッケージにpublicなサブクラスAA・BBをつくり、さらに別パッケージからAAやBBにアクセスするとき、AAのexcuteにはアクセスできませんが、BBのにはアクセスできます。
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2010/05/18 01:58

#2のchi-konです。



失礼しました。
>AAクラスをパッケージ外で作った場合はexcuteは見えませんが、

AAクラスをパッケージ外からアクセスした場合は...
に修正致します。

#3の方のおっしゃる通りです。
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2010/05/18 01:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!