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

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

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

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

受付中

ローカル変数を別メソッドで使用

icebreak
icebreak

総合スコア4

Java

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

2回答

0リアクション

1クリップ

471閲覧

投稿2022/07/31 05:09

編集2022/07/31 07:59

前提

クラスの先頭で配列
static int count = 0;
Position[] arrayposition = new Position[count +1];
を宣言し、それをメソッドaddPosition()で配列の値を定義しました。
その上で同じクラス内の別のメソッドfindPositionでその値を利用したいのですが、どのようにすれば利用することが可能でしょうか。

<エラーメッセージ>
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at Portfolio.addPosition(Issue4.java:223)
at Issue100.main(Issue4.java:32)

実際に書いたコードはこちらです。
また全部のコードも記載致します。

java

コード class Portfolio extends Position{ static int count = 0; Position[] arrayposition = new Position[count +1]; public void addPosition(Position position){ if(count == 0){ arrayposition[count] = position; count++; } else if(count > 0){ for(int i = 0; count > i;i++){ boolean bool = position.equals(arrayposition[i]); if(bool == true){ amount++; break; } else if(bool == false){ if(i == count -1){ arrayposition[count] = position; count++; } } } } } public Position findPosition(Issue4 issue){ boolean bool2; for(int i = 0;i < count + 1;i++){ bool2 = issue.equals(arrayposition[i]); if(bool2 == true){ return arrayposition[i]; } else{ } } return null; } @Override public int hashCode(){ int result = 1; result = 31*result + ((issue == null)? 0:issue.hashCode()); return result; } @Override public boolean equals(Object obj){ if(this == obj){ return true; } if(obj == null){ return false; } if(getClass() != obj.getClass()){ return false; } Portfolio port = (Portfolio)obj; if(!issue.equals(port.issue)){ return false; } return true; } } java コード全体 import java.io.*; class Issue100{ public static void main(String[] args){ Issue4 issue1 = new Issue4("1111","AAAA"); Issue4 issue2 = new Issue4("2222","BBBB"); Issue4 issue3 = new Issue4("3333","CCCC"); Issue4 issue4 = new Issue4("4444","DDDD"); Issue4 issue5 = new Issue4("5555","EEEE"); Issue4 issue6 = new Issue4("6666","FFFF"); Issue4 issue7 = new Issue4("1111","AAAA"); Stock stock1 = new Stock("1111","AAAA",Market.TSE); Stock stock2 = new Stock("2222","BBBB",Market.OSE); Stock stock3 = new Stock("3333","CCCC",Market.NSE); Bond bon1 = new Bond("1111","AAAA",20001111,1.0); Bond bon2 = new Bond("2222","BBBB",20002222,1.5); Bond bon3 = new Bond("3333","CCCC",20003333,2.0); Position pos1 = new Position(issue1,0); Position pos2 = new Position(issue2,0); Position pos3 = new Position(issue3,0); Position pos4 = new Position(issue4,0); Position pos5 = new Position(issue5,0); Position pos6 = new Position(issue6,0); Portfolio por = new Portfolio(); por.addPosition(pos1); por.addPosition(pos2); /* Position a = por.findPosition(issue7); System.out.println(a); */ } } class Issue4{ protected String code; protected String name; public Issue4(String code,String name)throws IllegalArgumentException{ if(code == null || name == null){ IllegalArgumentException e = new IllegalArgumentException(); throw e; } else{ this.code = code; this.name = name; } } public String getCode(){ return this.code; } public String getName(){ return this.name; } } class Bond extends Issue4{ private int maturity; private double coupon; public Bond(String code,String name,int maturity,double coupon)throws IllegalArgumentException{ super(code,name); if(maturity <= 20000101 || maturity >= 29991231){ IllegalArgumentException e = new IllegalArgumentException(); throw e; } else{ if(coupon < 0){ IllegalArgumentException e = new IllegalArgumentException(); throw e; } else{ this.maturity = maturity; this.coupon = coupon; } } } public int getMaturity(){ return this.maturity; } public double getCoupon(){ return this.coupon; } public BondType getBondType(){ if(coupon == 0){ BondType bondtype = BondType.ZERO_COUPON_BOND; return bondtype; } else{ BondType bondtype = BondType.COUPON_BOND; return bondtype; } } @Override public String toString(){ return "コード :" + code + "\n" + "名称 :" + name + "\n" + "償還月日 :"+ this.maturity + "\n" + "クーポンレート :" + this.coupon ; } @Override public int hashCode(){ double result = 1; result = 31*result + ((code == null)? 0:code.hashCode()); result = 31*result + this.maturity; result = 31*result + this.coupon; int result2 = (int)result; return result2; } @Override public boolean equals(Object obj){ if(this == obj){ return true; } if(obj == null){ return false; } if(getClass() != obj.getClass()){ return false; } Bond bond = (Bond)obj; if(!code.equals(bond.code)){ return false; } if(maturity != bond.maturity){ return false; } if(coupon != bond.coupon){ return false; } return true; } } class Stock extends Issue4{ private Market market; public Stock(String code,String name,Market market){ super(code,name); this.market = market; } public Market getMarket(){ return this.market; } @Override public String toString(){ return "コード :" + code + "\n" + "名称 :" + name + "\n" + "上場市場 :"+ this.market; } @Override public int hashCode(){ int result = 1; result = 31*result + ((code == null)? 0:code.hashCode()); result = 31*result + ((this.market == null)? 0:market.hashCode()); return result; } @Override public boolean equals(Object obj){ if(this == obj){ return true; } if(obj == null){ return false; } if(getClass() != obj.getClass()){ return false; } Stock stock = (Stock)obj; if(!code.equals(stock.code)){ return false; } if(market != stock.market){ return false; } return true; } } class Position{ protected Issue4 issue; protected double amount; public Position(){ } public Position(Issue4 issue,double amount){ this.issue = issue; this.amount = amount; } public Issue4 getIssue4(){ return this.issue; } public double getAmount(){ return this.amount; } public void setIssue4(Issue4 issue){ this.issue = issue; } public void setAmount(double amount){ this.amount = amount; } } class Portfolio extends Position{ static int count = 0; Position[] arrayposition = new Position[count +1]; public void addPosition(Position position){ if(count == 0){ arrayposition[count] = position; count++; } else if(count > 0){ for(int i = 0; count > i;i++){ boolean bool = position.equals(arrayposition[i]); if(bool == true){ amount++; break; } else if(bool == false){ if(i == count -1){ arrayposition[count] = position; count++; } } } } } /* public Position findPosition(Issue4 issue){ boolean bool2; for(int i = 0;i < count + 1;i++){ bool2 = issue.equals(arrayposition[i]); if(bool2 == true){ return arrayposition[i]; } else{ } } return null; } */ @Override public int hashCode(){ int result = 1; result = 31*result + ((issue == null)? 0:issue.hashCode()); return result; } @Override public boolean equals(Object obj){ if(this == obj){ return true; } if(obj == null){ return false; } if(getClass() != obj.getClass()){ return false; } Portfolio port = (Portfolio)obj; if(!issue.equals(port.issue)){ return false; } return true; } }

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

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

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

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

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

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

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

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

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

jimbe

2022/07/31 06:42

コードのご提示にはマークダウン記法を用いてください。
javahack

2022/07/31 07:05 編集

メソッドだけでなく、クラス全体をマークダウン記法で囲ってほしい。
BeatStar

2022/07/31 07:53 編集

エラーメッセージは省略せずに提示してください。お願いします。 エラーメッセージは「コンパイラ等からのメッセージ」です。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Java

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