
以下のプログラムを実行すると、フィールド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ランキング
-
引数を指定しなければならない...
-
プログラミングの問題です。大...
-
JSP/Servletのパラメータの受け...
-
変数を動的に利用するには?
-
java iを1づつ増やすプログラ...
-
リフレクション 可変長引数メ...
-
Javaでlog4jを使ってログ出力を...
-
System.exit()の値を取得したい
-
動的配列が存在(要素が有る)か...
-
JSPやサーブレットでSystem.out...
-
ORA-01858: 数値を指定する箇所...
-
パソコンキーボードで時分秒を...
-
ループ処理の際、最後だけ","を...
-
[JAVA]try 内の変数を外で!?
-
この警告はどうすれば?
-
IF関数でEmpty値を設定する方法。
-
オブジェクトの中のプロパティ...
-
flush()とclose()について
-
StrutsでJSPからListを受け取り...
-
C言語のポインターに関する警告
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
プログラミングの問題です。大...
-
中カッコ{}だけの記述について
-
コンストラクタの引数の中のnew?
-
Javaでlog4jを使ってログ出力を...
-
System.exit()の値を取得したい
-
javaのプログラミングで作るRPG...
-
GetterとSetterをやったのに。
-
java 継承の問題で分からないと...
-
Socketの接続のタイムアウトを...
-
NoSuchMethodErrorが解決できま...
-
初心者なので教えてほしいです。
-
Java プログラム public class ...
-
javaで特定の文字列から特定の...
-
【java】同ディレクトリ別ファ...
-
JSP/Servletのパラメータの受け...
-
インタフェイス実装と抽象クラ...
-
randomで
-
【正規表現】< と > に囲まれた...
-
DESを使用した暗号化/復号化処...
おすすめ情報