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

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

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

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

解決済

メソッドの呼び出し方法

hinata0812
hinata0812

総合スコア12

Java

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

1回答

0評価

0クリップ

226閲覧

投稿2022/01/29 02:28

Javaを学習して者です。
基本情報技術試験の過去問題をみていたのですが、
下記コード①から②に移り変わるタイミングがあまりわかっておらず、①が終了した後にToDoListのインスタンスのaddの部分に戻り、
ToDoList のaddを呼び出ししている認識でいるのですが、あっていますでしょうか?

public class ToDoListTester { public static void main(String[] args) { ToDoList list =new ToDoList(); list.add(new ToDo("メール送信","201604181500",ToDo.Priority.HIGH)); list.add(new ToDo("ホテル予約","20160420",ToDo.Priority.LOW)); list.add(new ToDo("チケット購入","20160430",ToDo.Priority.MIDDLE)); list.add(new ToDo("報告書作成","20160428",ToDo.Priority.HIGH)); list.add(new ToDo("会議室予約","201605301200",ToDo.Priority.HIGH)); list.update(new ToDo("PC購入","20160531",ToDo.Priority.HIGH)); for(ToDo todo : list.select()) { todo.setState(ToDo.State.STARTED); list.update(todo); } Condition condition1=new Condition() { public boolean test(ToDo todo) { return todo.getDeadline().compareTo("20160501")<0; } }; Condition condition2=new Condition() { public boolean test(ToDo todo) { return todo.getPriority().equals(ToDo.Priority.HIGH); } }; for(ToDo todo : list.select(condition1,condition2)) { System.out.println(todo); } } }
import java.util.UUID; public class ToDo { public enum Priority{LOW,MIDDLE,HIGH} public enum State {NOT_YET_STARTED,STARTED,DONE} private static final String DEADLINE_PATTERN="\\d{8}|\\d{12}"; private final String id; private String subject; private String deadline; private Priority priority; private State state; private ToDo(String subject,String deadline,Priority priority, String id,State state) { if(!deadline.matches(DEADLINE_PATTERN)) { throw new IllegalArgumentException(); } this .subject=subject; this.deadline=deadline; this.priority=priority; this.id = id; this.state =state;//①この処理の後にToDoListクラスの②へ } public ToDo(String subject,String deadline,Priority priority) { this(subject,deadline,priority, UUID.randomUUID().toString(),State.NOT_YET_STARTED); } public ToDo(ToDo todo) { this(todo.subject,todo.deadline,todo.priority,todo.id,todo.state); } public String getSubject() {return subject;} public String getDeadline() {return deadline;} public Priority getPriority() {return priority;} public State getState() {return state;} public void setState(State state) {this.state = state;} public int hashCode() {return id.hashCode();} public boolean equals(Object o) { return o instanceof ToDo && ((ToDo)o).id.equals(id); } public String toString() { return String.format("主題: %s, 期限: %s, 優先度: %s, 状態: %s",subject,deadline,priority,state); } }
import java.util.ArrayList; import java.util.List; public class ToDoList { private List<ToDo>todoList=new ArrayList<ToDo>(); public void add(ToDo todo) {//② if(!todoList.contains(todo)) { todoList.add(new ToDo(todo)); } } public void update(ToDo todo) { int index=todoList.indexOf(todo); if(index !=-1) { todoList.set(index, todo); } } public List<ToDo> select(Condition...conditions) { List<ToDo>result=new ArrayList<ToDo>(); for(ToDo todo:todoList) { boolean selected=true; for(Condition condition:conditions) { selected = condition.test(todo); if(!selected) break; } if(selected) { result.add(new ToDo(todo)); } } return result; } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

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

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2022/01/29 02:31

実際にコード書いてデバッグで動かせばわかると思うのですが、手元に環境ないですか?
m.ts10806

2022/01/29 02:32

質問タグ「Java」だけだと↑みたいな感じになります。 いずれにしてもJavaで受けるならある程度手元で組んだほうが良いとは思いますが。
jimbe

2022/01/29 03:52

①とか②だけではどこにあるか探すのに苦労します。 どのクラスのどのメソッドのどの辺りなのか程度は書いて頂けませんでしょうか。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Java

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