以下のプログラムを実行すると、フィールドA.aは不可視です。メソッドtestは型Aで不可視です。というエラーが出てきます。本に書いてあるとおり、やったのですが、どうしてダメなのかわかりません。ぜひ教えてください。
public class Sample {
public static void main(String[] args) {
A aa=new A();
System.out.println(aa.a);
aa.test();
}
}
class A{
private String a = "A";
private void test(){
System.out.println("Test");
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
No.2ベストアンサー
- 回答日時:
何をしようとされているのか
全くわかりませんが
これが A Testと表示
させるには
public class Sample {
public static void main(String[] args) {
A aa=new A();
String b=aa.getA();
System.out.println(b);
aa.test();
}
}
class A{
private String a = "A";
public void test(){
System.out.println("Test");
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
ありがとうございます。
ところで、public void test()でなく、private void test()のままで、できる方法はないでしょうか?
No.5
- 回答日時:
>private void test()のままで、できる方法はないでしょうか
privateなのでそのクラス(class A)以外からは
アクセスできないので無理な要求の様に思われ
ます。最近 掟破りな方法はないかと
求められるようなご質問がありますが
それほどは詳しくないものでお気持ちや何か特殊な
状況をそれなりに感じておりますが今後の課題と
させて頂きます。
No.4
- 回答日時:
public class Sample {
public static void main(String[] args) {
A aa=new A();
System.out.println(aa.getA());//変更(aa.aをaa.getA()に
aa.test();
}
}
class A{
private String a = "A";
public void test(){
System.out.println("Test");
}
public String getA() {//変更(privateをpublicに
return a;
}
public void setA(String a) {
this.a = a;
}
}
No.3
- 回答日時:
これは、エラーになる(サンプルの)ソースだと思います。
インスタンスのプライベートメンバである a に
System.out.println(aa.a);
のように直接アクセスはできませんよ、(できないようにしました、しましょう)
そのかわり、
aa.getA() のようにアクセサー を定義してそれを使って呼び出しましょうというようなことを示しているんだと思います。
同じく、
aa.test();
もプライベートメソッドは、外部から呼び出せません(やってみれば、エラーになりますよ)というサンプルなんだと思います。
No.1
- 回答日時:
>フィールドA.aは不可視です。
メソッドtestは型Aで不可視です。というエラーが出てきます。ソースコードを見ましたが、それが正しい反応です。フィールドaもメソッドtestもprivateになっています。privateなものは、外部からアクセスできません。したがって、エラーになるのが正常です。
>本に書いてあるとおり、やったのですが、どうしてダメなのかわかりません。
その本の内容がどうなっているかわからないのでなんともいえないんですが・・・。「動かないサンプル」として掲載されているとか、あるいは単純にどこか写し間違っているとか、そういうことではないでしょうか。
もう一度、そのあたりの記述をよく読み返してみてはいかがでしょう。(これ以上のことは、その本が何かもわからないので・・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java final 1 2022/06/10 22:49
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java eclipse実行ができない 2 2022/07/27 04:47
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
自分独自の健康法はある?
こうしていると調子がいい!みたいな自分独自の健康法、こだわりはありますか?
-
【選手権お題その3】この画像で一言【大喜利】
とあるワンシーンを切り取った画像。この画像で一言、お願いします!
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
配列のメソッド
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Socketの接続のタイムアウトを...
-
変数を動的に利用するには?
-
クラスを使った電卓のプログラム
-
Javaでlog4jを使ってログ出力を...
-
C# DatagridviewにExcelシート...
-
Javaでデータベースの内容をGUI...
-
プログラミングの問題です。大...
-
javaで質問です。 文字列2023/2...
-
ループ処理の際、最後だけ","を...
-
IF関数でEmpty値を設定する方法。
-
java junit list同士の比較方法
-
yyyymmddからyyyy/mm/d...
-
EXCEL VBA で、0から?1から?
-
JSPやサーブレットでSystem.out...
-
System.out.printlnの出力先
-
System.err. printlnとSystem.o...
-
Javaで改行などが出来ないのです。
-
大量のデータを読み込んで表示...
-
javascriptで文字列のsjis利用...
-
Junitテストでvoid戻り値メッソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Javaでlog4jを使ってログ出力を...
-
プログラミングの問題です。大...
-
JSP/Servletのパラメータの受け...
-
javaで特定の文字列から特定の...
-
コンストラクタの引数の中のnew?
-
NoSuchMethodErrorが解決できま...
-
GetterとSetterをやったのに。
-
javaのプログラミングで作るRPG...
-
C# DatagridviewにExcelシート...
-
初心者なので教えてほしいです。
-
javaでのアッカーマン関数
-
randomで
-
Socketの接続のタイムアウトを...
-
【java】同ディレクトリ別ファ...
-
Javaでデータベースの内容をGUI...
-
Javaで日本語の出力が文字化けする
-
インタフェイス実装と抽象クラ...
おすすめ情報