🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

1回答

981閲覧

値の妥当性、Getter Setter

tetote

総合スコア4

Java

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

0グッド

1クリップ

投稿2019/09/11 00:38

編集2019/09/11 01:46

プログラム初心者です。 設定されようとしている値が妥当かを検査する方法について教えてください。下記のようなコードがあって、この値の妥当性を別のクラスのメインメソッド内で、getterやsetterを用いて検査したいときどのようにすればよいですか。getter、setterの使い方やどのメソッドにそれをを用いるのかなどがうまく理解できてないので、よろしければ教えて頂きたいです。

public class Checker { private boolean isRed; private int row; private int column; private static final int firstRow = 1; private static final int lastRow = 8; private static final int firstColumn = 1; private static final int lastColumn = 8; private static final int NO_BUG = 0; private static final int ALWAYS_RED = 1; private static final int TRANSPOSE_POS = 2; private static final int TRANSPOSE_MOVE = 3; private static final int ALLOW_BACKWARDS = 4; private static final int ALLOW_TOO_FAR = 5; private static final int ALLOW_OFF_LEFT = 6; private static final int ALLOW_OFF_RIGHT = 7; private static final int ALLOW_OFF_TOP = 8; private static final int ALLOW_OFF_BOTTOM = 9; private static final int ALLOW_INVALID_SQUARE = 10; private static int curr_bug = 0; public static void setBug(int bug) { curr_bug = bug; } private static boolean bugIs(int bug) { return (bug == curr_bug); } public Checker(boolean isRed) { this((bugIs(1) || isRed), 1, 1); } public Checker(boolean isRed, int row, int column) { this.isRed = isRed; if (!validSquare(row, column)) { row = 1; column = 1; } this.row = bugIs(2) ? column : row; this.column = bugIs(2) ? row : column; } public boolean isRed() { return this.isRed; } public int getRow() { return this.row; } public int getColumn() { return this.column; } public void move(int rows, int columns) { if (bugIs(3)) { moveIfValid(columns, rows, 1); } else { moveIfValid(rows, columns, 1); } } private void moveIfValid(int rows, int columns, int validSize) { if (validStep(rows, columns, validSize)) { this.row += rows; this.column += columns; } } private boolean validStep(int rows, int columns, int validSize) { return ((bugIs(5) || Math.abs(rows) == validSize) && ( bugIs(5) || Math.abs(columns) == validSize) && ( bugIs(4) || this.isRed == ((rows < 0))) && validSquare(this.row + rows, this.column + columns)); } private boolean validSquare(int row, int column) { return ((bugIs(9) || row >= 1) && ( bugIs(8) || row <= 8) && ( bugIs(6) || column >= 1) && ( bugIs(7) || column <= 8) && ( bugIs(10) || column % 2 == row % 2)); } } コード

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

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

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

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

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

m.ts10806

2019/09/11 00:42

(質問は編集できます) 「初心者アイコン」をつけておいてください。 タイトルや文章で「初心者」と書くのではなく、なるべく要件の充実にあててください
coco_bauer

2019/09/11 00:49

「値の妥当性を別のクラスのメインメソッド内で、setrerを用いて検査しようとした」に該当する、別のクラスのコードを質問に追加してください。 また、「うまくできませんでした」というのは、どんな現象が起きて、それは希望していた動作とどのように違ったのかも説明してください。
jimbe

2019/09/11 02:55

私には変な設計のクラスに思えますが, 何かの教材でしょうか.
guest

回答1

0

投稿2019/09/11 01:49

m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問