質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

Q&A

解決済

1回答

2293閲覧

オブジェクト指向の引数について

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

0グッド

0クリップ

投稿2017/01/08 17:39

オブジェクト指向についてお伺いしたいことがあります。

java

1 /** 2 * ジャンケンを開始する 3 * 4 * @param player1 判定対象プレイヤー1 5 * @param player2 判定対象プレイヤー2 6 */ 7 public void startJanken (Player player1, Player player2) { 8 System.out.println("ジャンケンスタート"); 9 10 for(int cnt = 0; cnt < 0; cnt++) { 11 System.out.println("第" + (cnt+1) + "回戦目"); 12 13 //プレイヤーの手を見て勝ち負けを判断する 14 Player winner = judgeJunken(player1, player2); 15 16 if(winner != null) { 17 System.out.println("この勝負"+ winner.getName() + "の勝ち"); 18 } else { 19 System.out.println("この勝負引き分け"); 20 } 21 } 22 23 System.out.println("試合終了"); 24 25 Player finalWinner = judgeFinalWinner(player1, player2); 26 27 System.out.println(player1.getWinCount() + "対" + player2.getWinCount()); 28 29 if(finalWinner != null) { 30 System.out.println("勝者は"+ finalWinner.getName()); 31 finalWinner.notifyResult(true); 32 33 } else { 34 System.out.println("最終結果は~~引き分け"); 35 } 36 } 37 38 /** 39 * 勝者を判断する 40 * 41 * @param player1 判定対象プレイヤー1 42 * @param player2 判定対象プレイヤー2 43 * @return 勝ったプレイヤー 引き分けの場合はnullを返す 44 */ 45 public Player judgeJunken(Player player1, Player player2) { 46 Player winner = null; 47 48 int player1hand = player1.showHand(); 49 int player2hand = player2.showHand(); 50 51 printHand(player1hand); 52 System.out.println("vs"); 53 printHand(player2hand); 54 55 //プレイヤー1が勝つ場合 56 if ((player1hand == Player.STONE && player2hand == Player.SCISSOR) 57 || (player1hand == Player.SCISSOR && player2hand == Player.PAPER) 58 || (player1hand == Player.PAPER && player2hand == Player.STONE)) { 59 60 winner = player1; 61 62 //プレイヤー2が勝つ場合 63 } else if ((player1hand == Player.SCISSOR && player2hand == Player.STONE) 64 || (player1hand == Player.PAPER && player2hand == Player.SCISSOR) 65 || (player1hand == Player.STONE && player2hand == Player.PAPER)){ 66 67 winner = player2; 68 } else { 69 winner = null; 70 } 71 72 return winner; 73 }

上記のコードのstartJankenメソッドのPlayer winner = judgeJunken(player1, player2); について引数を(Player player1, Player player2)とするとエラーが発生します。
public Player judgeJunken(Player player1, Player player2)と実装しているので問題ないと思っていたのですが、なぜエラーになるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

それはオブジェクト指向の問題ではなくメソッド呼び出しの方法についての問題です 単に
メソッドを呼び出す時は()の中に入れるのは変数や値そのものなどであり、変数の型までつけて呼び出すようにはなっていないのです

投稿2017/01/08 21:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問