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

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

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

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

解決済

戻り値positionの出力

oimo0505
oimo0505

総合スコア22

Java

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

1回答

0リアクション

0クリップ

299閲覧

投稿2022/08/27 14:20

編集2022/08/27 14:22

前提

 PortfolioクラスにaddPosition(),findPosition()メソッドを作成し、Portfolioクラスで作成した配列に複数のPositionを要素として持てるようにしたいと考えています。
またfindPosition()メソッドを利用して別パッケージPortfolioTestクラスにおいてissueが同じPosition戻り値として返すようにしています。
現在PortfolioTestクラスにおいてpositionに追加するまではしているのですが、findPosition()の戻り値positionの確認の仕方が分からないので教えて頂けないでしょうか。

補足:
コンストラクタはパッケージIssues内において以下のように作成しています。
public Stock(String code, String name, Market market)
public Bond (String code, String name, int maturity, double coupon)
public Position (Issue issue, double amount,)
public Issue (String code, String name)
PortfolioTestファイルはパッケージtest11に属しています。
Issueは抽象クラスでBond、StockクラスはIssueのサブクラスになっています。
add()メソッドは同じIssueのPositionが存在している場合それにamountを加算するようしています。

実現したいこと

  • findPosition()の戻り値positionの出力

発生している問題・エラーメッセージ

出力結果が以下のようになる。
Issues.Position@14dad5dc

該当のソースコード

PortfolioTest.java

Java

package test11; import Issues.Market; import Issues.Stock; public class PortfolioTest { public static void main (String [] args) { //Stockインスタンス Issues.Stock stock1 = new Issues.Stock("1111","AAAA", Issues.Market.TSE); Issues.Stock stock2 = new Issues.Stock("2222", "BBBB", Issues.Market.TSE); Issues.Stock stock3 = new Issues.Stock("3333", "CCCC", Issues.Market.TSE); //Bondインスタンス Issues.Bond bond1 = new Issues.Bond("1111","AAAA", 20290920, 1.5); Issues.Bond bond2 = new Issues.Bond("2222", "BBBB", 20250917, 0.15); Issues.Bond bond3 = new Issues.Bond("3333", "CCCC", 20250613, 0.72); //Positionインスタンス Issues.Position positionStock1 = new Issues.Position(stock1, 2.0); Issues.Position positionStock2 = new Issues.Position(stock2, 2.0); Issues.Position positionStock3 = new Issues.Position(stock3, 2.0); Issues.Position positionBond1 = new Issues.Position(bond1, 2.0); Issues.Position positionBond2 = new Issues.Position(bond2, 2.0); Issues.Position positionBond3 = new Issues.Position(bond3, 2.0); //Portfolioインスタンス Issues.Portfolio portfolio = new Issues.Portfolio(); //add() portfolio.addPosition(positionStock1); portfolio.addPosition(positionStock2); portfolio.addPosition(positionStock3); portfolio.addPosition(positionBond1); portfolio.addPosition(positionBond2); portfolio.addPosition(positionBond3); //同じStockオブジェクト Issues.Stock sameStock1 = new Issues.Stock("1111","AAAA", Issues.Market.TSE); Issues.Issue stockIssue = new Stock("1111","AAAA", Market.TSE);; Issues.Position samePositionStock = new Issues.Position(stockIssue, 2.0); portfolio.findPosition(stockIssue); System.out.println(portfolio.findPosition(stockIssue)); } }

Portfolio.java

Java

package Issues; import java.util.*; public class Portfolio { Position [] portfolio = new Position[0]; public void addPosition(Position position) { Position samePosition = findPosition(position.getIssue()); if (samePosition == null) { Position [] newPortfolio = new Position [portfolio.length + 1]; System.arraycopy(portfolio, 0, newPortfolio, 0, portfolio.length); newPortfolio[portfolio.length] = position; this.portfolio = newPortfolio; } else { int num = 0; do { num++; } while (portfolio[num].getIssue().equals(position.getIssue()) ); double sumAmount = samePosition.getAmount() + position.getAmount(); portfolio[num].setAmount(sumAmount); } } public Position findPosition(Issues.Issue issue) { for (Position position : portfolio) { if (position.getIssue().equals(issue) ) { return position; } } return null; } }

Position.java

Java

package Issues; public class Position { private Issue issue; private double amount; //コンストラクタ public Position (Issue issue, double amount) { this.issue = issue; this.amount = amount; } //getter public Issue getIssue() { return this.issue; } public double getAmount() { return this.amount; } //setter public void setAmount(double amount) { this.amount = amount; } public void setIssue(Issue issue) { this.issue = issue; } }

試したこと

stockをIssue型に直して出力したところ、Issues.Position@14dad5dcと出力されstockIssueのPositionが出力されなかった。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/08/27 14:31

こちらの質問が他のユーザーから「過去に投稿した質問と同じ内容の質問」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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