分類:[Java]
はじめて投稿しますM.Manoと申します。
あるクラスのパブリックなコンストラクタを
プライベートに変更しても、そのクラスを利用
するクラスから呼べるというものです。
JavaとPCの環境は以下の通りです。
・Java
J2SE 1.4.1_01
・PC
TOSHIBA Satellite Pro
Windows98
166Mhz 64MB
以下にサンプルを示します。
------------------------------------------------Sample.java
1: public class Sample {
2: public Sample() {
3: System.out.println("パブリックなコンストラクタです。");
4: }
5: }
--------------------------------------------TestSample.java
1: public class TestSample {
2: public static void main(String[] args) {
3: Sample obj = new Sample();
4: }
5: }
-----------------------------------------------------------
以上の2つファイルをコンパイルします。
>javac Sample.java
>javac TestSample.java
実行すると以下のメッセージが出力されます。
>java TestSample
パブリックなコンストラクタです。
うまく動作するのを確認して以下を修正します。
・Sample.javaの2行目
2: private Sample() {
・Sample.javaの3行目
3: System.out.println("プライベートなコンストラクタです。");
修正したSample.javaをコンパイルします。
>javac Sample.java
実行すると以下のメッセージが出力されます。
>java TestSample
プライベートなコンストラクタです。
ここでTestSample.javaをコンパイルすると、
以下のエラーメッセージが表示されます。
>javac TestSample.java
TestSamle.java:3: Sample() は Sample で private アクセスされます。
Sample obj = new Sample();
^
エラー 1 個
これは一体何が起きているのでしょうか?
ご教授お願いします。
|