LoginSignup
0
0

More than 3 years have passed since last update.

Java Silverに向けて【学習メモ】

Last updated at Posted at 2016-04-23

何かの資格を取ろうということで、Java Silverの取得を目指す。
ここには、独学で勉強した際の記録

Javaの基礎

変数の命名

使用できる文字
ただし、数字は2文字目以降で使用可能

  • アルファベット(a-zA-Z)
  • 数字(0-9)
  • アンダースコア(_)
  • ダラー($)

プリミティブ型(基本データ型)と参照型

プリミティブ型(基本データ型)

初期値 ラッパークラス
boolean false Boolean
char '\u0000'(空文字) Character
byte 0 Byte
short 0 Short
int 0 Integer
long 0 Long
float 0.0f Float
double 0.0d Double

参照型

プリミティブ型(基本データ型)以外の型すべて
例えば、オブジェクト型、列挙型、配列型がある。
また、初期値として「null」が指定される。

  • String
  • Date
  • Integer
  • ArrayList
  • ...

double型の 0 除算

  • dublbe > 0 の場合、「Infinity」
  • dublbe = 0 の場合、「NaN」
  • dublbe < 0 の場合、「-Infinity」

開始メソッドmain()について

String配列型の引数を1つ定義する必要がある
可変長引数(String... v)は配列と同等の扱いになる

sample.java
public static void main(String args[]) {}
public static void main(String[] argv) {}
public static void main(String... v) {}

// 実行時エラーになる
public void main(String args[]) {}

配列

配列の宣言

配列の宣言には2つの表記があり、どちらでも構わない
また多次元配列の場合、併用も可能

sample.java
// 表記1
int[] num;
// 表記2
int num[];

// 多次元:表記1
int[][] num;
// 多次元:表記2
int num[][];
// 多次元:表記1と表記2の併用
int[] num[];

配列の生成

配列変数を宣言し、配列を生成せずに値設定処理を記述した場合は、コンパイルエラー

sample.java
int[] num;
// → エラーになる
num[0] = 111;

ArrayListクラス

java.utilパッケージ配下のため、import文が必要
左辺と右辺の「<>」のデータ型を合わせる必要がある
「<>」のデータ型として指定できるのは、参照型のみ

sample.java
// OK
ArrayList<Integer> array = new ArrayList<Integer>();
ArrayList array = new ArrayList();
ArrayList<Integer> array = new ArrayList<>(); // ダイヤモンド演算子
ArrayList<Integer> array = new ArrayList<Integer>(10); // 初期サイズ10のリストを生成

// コンパイルエラー
ArrayList<int> array = new ArrayList<int>(); //基本データ型たのため
ArrayList<String> array = new ArrayList<Integer>(); // 右辺と左辺のデータ型が異なるため
ArrayList<Integer> array = new ArrayList<String>(); // 右辺と左辺のデータ型が異なるため

クラス変数、インスタンス変数

  • クラス変数
    1つのクラスで1つ作成され、すべてのオブジェクトで共有される

  • インスタンス変数
    作成されたオブジェクト毎に作成され、オブジェクト毎に異なる

sample.java
class Hoge {
  // クラス変数
  private static int v1;
  // インスタンス変数 
  private int v2;
}

演算子

// ToDo 表示自分で起こしたい
http://www.kusa.ac.jp/~kajiura/java/console/operators.htm

オーバーライドとオーバーロード

  • オーバーライド
    親クラスのメソッドを子クラスで再定義すること、子クラス上で親クラスのメソッドを上書きすること

  • オーバーロード
    同じメソッド名、戻り値の型で引数の数、型が異なるメソッドを複数定義すること

継承

abstractクラス、interfaceクラス

  • abstractクラス
    extendsキーワードで継承する
    抽象メソッドは、抽象クラス内でしか定義できない

  • intarefaceクラス
    インスタンス化できない
    implementsキーワードで実装する
    インターフェイスを実装したクラスは、インターフェイスで定義されたメソッドをすべてオーバーライドする必要がある。
    オーバーライドしない場合は、そのクラスを抽象クラスで定義する必要がある

例外処理

例外クラス

Object
┗ Throwable
  ┠ Error
  ┗ Exception --------------------- checked例外(検査例外)
    ┗ RuntimeException ------- unchecked例外(非検査例外)

checked例外(検査例外)

例外処理:必須

  • Errorクラス及びそのサブクラス
  • RuntimeExceptionクラス以外のExceptionのサブクラス

Errorクラスのサブクラス例

  • StackOverflowError
  • NoClassDefFoundError

RuntimeExceptionクラス以外のExceptionのサブクラス例

  • IOException
  • FileNotFoundException

unchecked例外(非検査例外)

例外処理:任意

  • RuntimeExceptionクラス及び、そのサブクラス

RuntimeExceptionクラスのサブクラス例

  • ArrayIndexOutOfBoundException
  • NullPointerException

制御処理(条件分岐、繰り返し)

if文

処理分が1文の場合のみ、「{ }」は省略可能

for文

初期化文と更新文は複数記述可能かつ省略可能
ただし、条件文は1つのみ記述可能
各文は省略できるが、「;」は必須
処理分が1文の場合のみ、「{ }」は省略可能

sample.java
for(初期化文; 条件文; 更新文) { }

// 各文を省略
for(;;) { }

while文

処理分が1文の場合のみ、「{ }」は省略可能

do-while文

処理分が1文の場合のみ、「{ }」は省略可能

switch文

switch文の式には、下記のデータ型のみが利用できる
また、基本データ型については、そのラッパークラスも利用可能

  • byte
  • char
  • short
  • int
  • enum
  • String

continue文、break文

  • continue文
    continue文以降の処理実行せず、次の繰返し処理を継続実行する

  • break文
    実行中の繰り返し処理を抜ける

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