Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.2
http://echo.2ch.net/test/read.cgi/tech/1478863511/
探検
Java入門・初心者質問スレ Part.3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/04(火) 20:41:11.59ID:y0EcmGB0
2017/04/05(水) 09:51:39.56ID:nC3E9c0D
前スレ >>997
onCreateってのはAndroidでそのActivityが作られたときに走る処理だからそこでgetTextしてもEditTextの中が空だから怒られてる。
確定ボタンをButtonで作ったりキーイベントReturnを捉えるイベントリスナーの中でやるべき。
onCreateってのはAndroidでそのActivityが作られたときに走る処理だからそこでgetTextしてもEditTextの中が空だから怒られてる。
確定ボタンをButtonで作ったりキーイベントReturnを捉えるイベントリスナーの中でやるべき。
3デフォルトの名無しさん
2017/04/05(水) 18:26:37.85ID:XSIU9b3V JHoshu
4デフォルトの名無しさん
2017/04/05(水) 19:49:27.33ID:xPaGCN9C >>1
乙
乙
2017/04/05(水) 20:16:36.85ID:p+fIavz2
6デフォルトの名無しさん
2017/04/05(水) 23:22:35.35ID:Ansd+i4M2017/04/06(木) 00:09:53.06ID:b0BXYKSq
あるクラス内の2つのメソッドの中身を途中で何度も書き換えたいんだけどどう実装したらいい?
関数ポインタを扱うのように、途中で関数を書き換えたい。
抽象クラスを継承することで、メソッドの書き換えは出来るものの、継承したクラスの宣言時の一度しか
メソッドを書き換えられないと思うんだけど、他に方法はある?
関数ポインタを扱うのように、途中で関数を書き換えたい。
抽象クラスを継承することで、メソッドの書き換えは出来るものの、継承したクラスの宣言時の一度しか
メソッドを書き換えられないと思うんだけど、他に方法はある?
8デフォルトの名無しさん
2017/04/06(木) 01:36:02.66ID:iHw/QSTR >>7
インスタンス入れ替えるだけじゃだめなのか?
例えばこんな風にして同一のインターフェースを実装した A, B のクラスを作っておく。
interface X {
int methodA(int a);
int methodB(int b);
}
class A implements X {
int methodA(int a) {
// 処理A-A
}
int methodB(int b) {
// 処理A-B
}
}
class B implements X {
int methodA(int a) {
// 処理B-A
}
int methodB(int b) {
// 処理B-B
}
}
で、使う所では
X x = new A();
のようにして int a = x.methodA(1); とか int b = x.methodB(2); とかして使う。class B の方に切り替えたくなったら x = new B(); として同様に x を通して使う。
インスタンス入れ替えるだけじゃだめなのか?
例えばこんな風にして同一のインターフェースを実装した A, B のクラスを作っておく。
interface X {
int methodA(int a);
int methodB(int b);
}
class A implements X {
int methodA(int a) {
// 処理A-A
}
int methodB(int b) {
// 処理A-B
}
}
class B implements X {
int methodA(int a) {
// 処理B-A
}
int methodB(int b) {
// 処理B-B
}
}
で、使う所では
X x = new A();
のようにして int a = x.methodA(1); とか int b = x.methodB(2); とかして使う。class B の方に切り替えたくなったら x = new B(); として同様に x を通して使う。
2017/04/06(木) 02:01:39.25ID:FGV9lFi+
2017/04/06(木) 10:42:30.59ID:wo+kdFBC
>>7
スマホからだから適当だけど
public class Sub{
private Function func;
public void setFunc(Function func){
this.func = func;
}
public Function getFunc(){
return this.func;
}
}
あとは呼び出し側で
Function<Integer,Integer> func = x -> x+1;
Sub sub = new Sub();
sub.setFunc(func);
Sysyem.out.println(sub.getFunc().apply(10));
これでどうだ
使えるかどうかは知らん
スマホからだから適当だけど
public class Sub{
private Function func;
public void setFunc(Function func){
this.func = func;
}
public Function getFunc(){
return this.func;
}
}
あとは呼び出し側で
Function<Integer,Integer> func = x -> x+1;
Sub sub = new Sub();
sub.setFunc(func);
Sysyem.out.println(sub.getFunc().apply(10));
これでどうだ
使えるかどうかは知らん
2017/04/06(木) 16:06:42.01ID:8OEcGMYc
2017/04/06(木) 20:32:34.33ID:vtBceFIS
2017/04/06(木) 21:14:24.31ID:O3QBzUs3
じゃあFunctional Interfaceで
http://ideone.com/AghCys
http://ideone.com/AghCys
2017/04/06(木) 21:39:53.20ID:vtBceFIS
結局波平か
15デフォルトの名無しさん
2017/04/06(木) 23:04:04.80ID:Lft96QhP >>7
君の言う「宣言」ってのは「new」の事かな?
抽象クラス「interface XXX」を継承したクラス
「class AAA implements XXX」と、
「class BBB implements XXX」の2つ作ったとして、
「XXX XYZ=(XXX)new AAA()」としたらXYZのインスタンスはAAAだよね。
「宣言時の一度しかメソッドを書き換えられない」と言ってるけどソレって、
newした後で「XYZ=(XXX)new BBB()」と上書きしたらダメだと思ってない?
良いんだよ?XYZに元から入ってたAAAは消滅して新たにBBBが入る。
C言語の常識でmallocしたらfreeするみたいに考えてないか?
あと「メソッドを書き換える」というのは根本的に考え方がおかしい。
考えてるプログラムの構造がC言語っぽい。JAVAにはJAVAに合った構造がある。
短いサンプル書いて意見を聞いた方が良いと思うな。
君の言う「宣言」ってのは「new」の事かな?
抽象クラス「interface XXX」を継承したクラス
「class AAA implements XXX」と、
「class BBB implements XXX」の2つ作ったとして、
「XXX XYZ=(XXX)new AAA()」としたらXYZのインスタンスはAAAだよね。
「宣言時の一度しかメソッドを書き換えられない」と言ってるけどソレって、
newした後で「XYZ=(XXX)new BBB()」と上書きしたらダメだと思ってない?
良いんだよ?XYZに元から入ってたAAAは消滅して新たにBBBが入る。
C言語の常識でmallocしたらfreeするみたいに考えてないか?
あと「メソッドを書き換える」というのは根本的に考え方がおかしい。
考えてるプログラムの構造がC言語っぽい。JAVAにはJAVAに合った構造がある。
短いサンプル書いて意見を聞いた方が良いと思うな。
2017/04/07(金) 00:39:47.52ID:g05Ok9Aj
2017/04/07(金) 01:02:07.87ID:E+iT9RU9
2017/04/07(金) 01:02:48.90ID:KCHCaqUQ
1916
2017/04/07(金) 03:02:40.52ID:g05Ok9Aj2017/04/07(金) 04:15:47.44ID:E9+XPTIr
アイディーイーワン
1つのストリームに対して2つのScannerを使ってるのがいけない
俺の環境(1.8系)だとエラーになるよ
1つのストリームに対して2つのScannerを使ってるのがいけない
俺の環境(1.8系)だとエラーになるよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★9 [蚤の市★]
- 【沖縄】宮古島で陸自防災訓練に抗議した団体、「恫喝された」と駐屯地トップ厳正捜査求め署名運動 「市民弾圧と戦争への道を…」 [少考さん★]
- 「今の女性はルッキズム」は本当なのか? 若い世代が結婚相手に求める"本当の条件" [少考さん★]
- 【サッカー】J1リーグの2025年平均観客動員数が4.4%増の21,246人 最多入場者数の2019年を超えて過去最高値 ★2 [尺アジ★]
- ニンニク抽出のマウスウォッシュ、強力な殺菌効果が判明 UAEの大学研究チーム [少考さん★]
- 現場からは悲鳴、母親からは「高い」「性犯罪が怖い」の声も…高市総理がどうしても実現したい政策「ベビーシッターの利用促進」 [ぐれ★]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪★2
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪
- ホンダ、国内生産減らしてアメリカから🚗逆輸入することでトランプさんに貢献へ [709039863]
- 正義のミカタ「中国は日本人の反高市勢力を裏で操ってる。あいつらはスパイ」 [931948549]
- 自民重鎮「高市は中国側に開戦の口実を与えてしまった」 [329271814]
- 鈴木農水大臣「440円分の買い物ができる500円のお米券を477円で販売するのでみんな買ってね😉」 [931948549]
