No.8
- 回答日時:
>関数のポインタを渡す
staticでない関数は本体がインスタンスに依存する以上、
インスタンスの参照をしないで「関数の入口」を得ることは
できません。staticな関数は静的にアドレスが決まっている
ので、インスタンスに依拠しないで関数を呼べます。但し、
関数が所属するクラス内のstaticでない変数は当然ですが
参照できませんし、static属性の変数を変更するとスレッド
セーフではなくなります。
public class 親 {
int 定数1 = 1; //静的関数から参照できない
static int 定数2 = 2; //静的関数から参照できる
static int 静的関数() {
}
}
public class 子 {
int ある処理() {
親.静的関数(); //インスタンス化せずに呼び出せる。
}
}
No.6
- 回答日時:
ああ、"extends A"が消されていることに気付いていませんでした。
失礼。「親クラス」「子クラス」って書かれたら、継承関係があると思ってしまうもの。> フォームのボタンが押された場合にコントロールクラスに通知したい
そういうことをするのに、フォームクラスのインスタンスが通知先のコントロールクラスのインスタンスへの参照を持っていることはごく自然なことだと思いますが。
No.5
- 回答日時:
> ちょっと違います。
と言われても、ANo.3の解でもB.q()からAのm()やn()を呼べているので、何がどう不満なのかを補足してほしいところです。
この回答への補足
A継承のBクラスではないということです。
すいません。具体的に書きます。
コントローラークラスがフォームクラスを生成して、フォームのボタンが押された場合にコントロールクラスに通知したいのですが、そのやり方がわかりません。
一般的にどう実現するべきなのでしょうか?
そもそも、コントロールクラスがフォームクラスを生成することがおかしいのでしょうか?
No.3
- 回答日時:
こういうことをしたいのでしょうか。
親クラスAのメソッドp()で子クラスBのインスタンスを生成して、Bのメソッドq()を呼びます。q()から、Aのメソッドm()とn()を呼んでいます。
class A {
void p() {
B obj = new B();
obj.q();
}
void m() { System.out.println("A.m()"); }
void n() { System.out.println("A.n()"); }
}
class B extends A {
void n() { System.out.println("B.n()"); }
void q() {
m();
super.n();
}
}
この回答への補足
ちょっと違います。
class A{
void p(){
B obj = new B();
obj.q();
}
void m() { System.out.println("A.m()"); }
void n() { System.out.println("A.n()"); }
}
class B{
void q(){
//ここでAのmやnを呼びたい。
}
}
}
No.2
- 回答日時:
子クラスに親クラスを渡せば普通に呼び出せます。
public class 親 {
public int 親メソッド() {
・・・
}
private int 子の生成() {
子 obj = new 子();
int 戻り値 = obj.入口(this);
・・・
}
}
public class 子 {
int 入口(親 obj) {
・・・
int 戻り値 = obj.親メソッド();
}
}
この回答への補足
回答ありがとうございます。
確かにこの方法だといけますが、お互いインスタンスの参照を持ちあうことになります。
これ以外で関数のポインタを渡す、アクションリスナ?を使うなどしてできないでしょうか??
すいませんが知っていましたら、ご教授ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- モテる・モテたい 好きな人に名前で呼ばれたい… 3 2022/06/04 14:42
- モテる・モテたい 好きな人に呼ばれたい呼び名。 1 2022/06/04 19:09
- 友達・仲間 学生さんに質問です。 同じクラスの人を女子同士ならお互い下の名前を呼び捨てで呼び、男子同士ならお互い 2 2023/03/08 19:33
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- 学校 同じクラスの子が英語の小テストで単語帳をチラチラ見ており、先生にカンニングするなと注意されていたので 2 2023/07/16 20:06
- 恋愛・人間関係トーク 高三です。このアプリで相談した結果皆様の背中押しのおかげでクラスLINEに呼ぶ口実で、好きな人からL 1 2022/06/20 17:18
- その他(社会・学校・職場) 相手をフルネームで呼ぶ事について 6 2023/03/04 17:05
- 友達・仲間 名前呼びから苗字呼びに変わった理由 クラスメイトのAという女子が最初は私のことを名前で呼んでいました 7 2023/08/20 14:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラス間でのデータ参照
-
範囲外の数値を代入したらエラ...
-
C# インターフェイスの実装
-
関数内の変数に<summary>コメン...
-
a href="..." とServlet
-
実行可能jarファイルのファイル...
-
C++でfriendクラスにしているの...
-
アップキャスト、ダウンキャス...
-
C++ クラス名の前のdefine
-
java-別クラスの変数の使い方を...
-
親クラスから子クラスへアクセス。
-
C++/C#間での構造体の引き渡し...
-
C#にて別クラスの関数を使いたい
-
C#でほかのファイルにある自作...
-
explicitの定義は?
-
C,C++,C++/CLIの構造体とクラス
-
private static という変数の修飾
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
Java初級 引数に適用できません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
クラス間でのデータ参照
-
c++,ある関数のクラスから別の...
-
範囲外の数値を代入したらエラ...
-
C#にて別クラスの関数を使いたい
-
C#でほかのファイルにある自作...
-
C++でfriendクラスにしているの...
-
親クラスから子クラスへアクセス。
-
java-別クラスの変数の使い方を...
-
構造 他のクラスの構造体を別...
-
ひとつのファイルにクラスは1つ?
-
Java
-
import と extends について
-
継承したクラス側のクラス名の取得
-
SwingでgetContentPaneのエラー...
-
Java リフレクションについて
-
C#のクラスライブラリでメッセ...
-
アップキャスト、ダウンキャス...
-
C# インターフェイスの実装
-
visual studioのデザイナ画面で...
おすすめ情報