0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Java SE11 Silver】試験対策メモ(順次更新、自分用)

Last updated at Posted at 2023-09-04

目的

Java Silverの黒本勉強中に躓いたところ、なかなか覚えられないところを順次アウトプットし、いつでも見返せる自分用メモを作成する。

Javaの基本データ型と文字列操作

基本データ型

データ型
boolean true, false
char 16ビットUnicode文字
byte 8ビット整数
short 16ビット整数
int 32ビット整数
long 64ビット整数
float 32ビット単精度浮動小数点数
double 64ビット倍精度浮動小数点数

配列の操作

配列変数の宣言

// 方法1
int[] array;
int[][] array;

// 方法2
int array[];
int array[][];

// 方法3
int[] array[];
int[][] array[];
例 (エラー)
// 宣言時に要素数の指定は不可
int[3] array;

配列インスタンス生成

new演算子を使う。

// 宣言後に生成
int[] array;
array = new int[3];

// 宣言時に生成
int[] array = new int[3];
例 (エラー)
// 要素数を指定していない
int[] array = new int[];

// 1次元目の要素数は省略不可
int[][] array = new int[][3];

配列の宣言と同時に初期化

初期化演算子{}を使う。

// 簡潔な初期化
int[] array = {1, 2, 3};

// 明示的な初期化
int[] array = new int[]{1, 2, 3};

// 要素数ゼロも可
int[] array = {};
int[] array = new int[]{};
例 (エラー)
// 初期化演算子 + 大カッコに要素数を指定
int[] array = [3]{1, 2, 3};
int[] array = new int[3]{1, 2, 3};

// 変数宣言と初期化が別タイミング
int array[];
array = {1, 2, 3};

// これはOK
int[] array;
array = new int[]{1, 2, 3};

配列要素のデフォルト値

デフォルト値
整数型 0
浮動小数点数型 0.0
真偽型 false
文字型 \u0000
オブジェクト型 null

インスタンスとメソッド

アクセス修飾子

修飾子 同クラス 同パッケージ サブクラス 全クラス
public
protected
なし
private

オーバーロード = 多重定義

オーバーロードのルールは、以下のとおり。

  • メソッド名が同じ
  • 引数が異なる

「引数が異なる」とは、具体的には以下のケース。

// 1. 引数の型が異なる
public void test (int a) {}
public void test (long a) {}

// 2. 引数の数が異なる
public void test (int a) {}
public void test (int a, int b) {}

// 3. 引数の並びが異なる
public void test (int a, String s) {}
public void test (String s, int a) {}

ちなみに、オーバーロードに関係するのは上の3つのケースのみなので、以下のようなパターンは関係なし。

例 (エラー)
// × アクセス修飾子の違いは関係なし
public void test (int a) {}
private void test (int a) {}

// × 戻り値は関係なし
public void test (int a) {}
public long test (int a) {}

// × 引数の名前は関係なし
public void test (int a) {}
public void test (int b) {}

これらのパターンはすべてオーバーロードにはならず、同じメソッドが二つあると判断され、コンパイルエラーとなる。

オーバーライド = 再定義

オーバーライドのルールは以下のとおり。

  • メソッド名が同じ
  • 引数の型、名前、数、並びが同じ
  • 戻り値の型が同じ又はそのサブクラスである
  • アクセス修飾子が同じ又はそれよりスコープが広い

以下、オーバーライドにならない例。

// 元のメソッド
public void test (int a) {}

public void sample (int a) {}  // × メソッド名が違う → 別のメソッドとみなされる
public void test (String a) {}   // × 引数が違う → オーバーロードとみなされる
public int test (int a) {}      // × 戻り値の型が違う → コンパイルエラー
private void test (int a) {}    // × アクセス修飾子がNG → コンパイルエラー
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?