LoginSignup
3
3

More than 3 years have passed since last update.

Study Java Silver 1

Last updated at Posted at 2019-04-26

Java Silver1の取得が必要になったので勉強がてらまとめていくことにする。

main()メソッド

Javaでは必ずmain()メソッドから処理が実行される。

Sample.java
public static void main(String[] args) {}
NGパターン(コンパイルエラー)
  1. public static void main(string[] args) {} string[]のsは大文字
  2. public static main(String[] args) {} voidがない
  3. public static void main(String[] ) {} argsがない
NGパターン(実行時エラー)
  1. public static void main(String args) {} Stringの後ろに[]がない
  2. public void main(String[] args) {} staticがない
  3. public static void Main(String[] args) {} MainのMは小文字

ソースファイルとクラスファイル

public指定のクラスは1つのソースファイルにつき1つだけ。
public指定のクラスを定義した場合はソースファイル名はpublic指定したクラス名と同じにする。

OKパターン
Test.java
class Foo {}
class Bar {}
Foo.java
public class Foo {}
class Bar
NGパターン
Foo.java
//一つのソースファイルにpublic classが2つある
public class Foo {}
public class Bar {}
Bar.java
//ソースファイル名がpublic指定のclass名と違う
public class Foo {}
class Bar {}

コメント

コメントはプログラムをわかりやすくするためのもの。
コンパイルの対象にならない。

// 行末までがコメントになる
/* 複数行のコメントが指定できる */
/** 複数行のコメントが指定できる。javadocコマンドでコメントをHTML化できる。(ドキュメントコメント) */

リテラル

ソースコードに書き込んだ値や表記のこと。
主に6種類ある。

1. 整数リテラル

小数部を持たない値。
10進数、2進数、8進数、16進数で表現できる。

進数 説明
10進数 255 0から9までの数字を使用して表現する
2進数 0b101 0と1の数字を使用して表現する
先頭に0bを入れると2進数と判断される
8進数 0377 0から7までの数字を使用して表現する
先頭に0を入れると8進数と判断される
16進数 0xff 0から9までの数字とaからfまでのアルファベットで表現する
先頭に0xを入れると16進数と判断される
2. 浮動小数点数リテラル

小数部を持つ値。
10進数、指数を表現できる。

進数 説明
10進数 12.33 -
指数 3e4 3.0 × 10の4乗(30000.0)
指数を表すeを使う
3. 文字リテラル

1つの文字を表現する。
文字は「'」(シングルクォート)で囲む。
「\」(バックスラッシュ)でエスケープシーケンスを表現することもできる。

文字リテラルとUnicode

説明
1文字 'A' 1つの文字をシングルクォートで囲む
Unicode '\u3012' \uの後ろに4桁の16進数を指定するとUnicode値になる

Unicode以外の主なエスケープシーケンス

エスケープシーケンス 意味
\n 改行
\r 復帰
\t タブ文字
\b バックスペース
\' シングルクォート
\" ダブルクォート
\\ バックスラッシュ
\f フォームフィード
4. 文字列リテラル

複数文字の集合体である文字列を表現する。
文字列は「"」(ダブルクォート)で囲む。

5. 論理値リテラル

真偽値をtrueかfalseで表現する。

6. nullリテラル

参照型データを利用する際に「何も参照していない」という意味を表現する。

アンダースコアがある数値リテラル

Java SE 7以降より数字の途中に「_」(アンダースコア)を使用できる。
数値リテラルの可読性を高めるもので「100,000」を「100_000」のように表現できる。
アンダースコアの使用には以下のルールがある。

・リテラルの先頭、末尾には使用できない。
・浮動小数点リテラルにある小数点の前後には使用できない。
・float値を表現するFおよびlong値を表現するLの前には使用できない。
・16進数で使用する0xと2進数で使用する0bの途中および前後には使用できない。
まとめるとリテラルの先頭、末尾および記号の前後には使用できない。

変数や定数の宣言と初期化

変数

データを入れる箱。
変数には名前(変数名)をつけて他の箱と区別する。

変数やクラス、メソッドにつける名前は識別子と呼ばれる。
識別子には以下のルールがある。

・識別子の1文字目は英字、ドル記号、アンダースコアのみ
・識別子の2文字目以降は数字も使用可
・予約語は使用不可
・大文字小文字は区別される
・文字数制限はない

予約語とはJavaですでに使用されている名前のことで以下のものがある。

予約語(null, true, falseは予約語ではないがリテラルとして扱われるため使用不可)
abstract, assert, boolean, break, type, byte, case
catch, char, class, const, continue, default
do, double, else, enum, extends, final
finally, float, for, goto, if, implements
import, instanceof, int, interface, long, native
new, package, private, protected, public, return
short, static, strictfp, super, switch, syncronized
this, throw, throws, transient, try, void
volatile, while, null, true, false
データ型

変数を用意する場合にどのような値を入れるかをデータ型で指定する。
Javaのデータ型は主に基本データ型と参照型に大別できる。

基本データ型:整数や文字など
参照型:クラス、配列、インターフェース等を含む基本データ型以外の型

基本データ型には以下の8種類がある。

データ型 意味 サイズ 表現できる値
byte型 符号付き整数 8ビット $-2^7$ 〜 $2^7$ - 1 (-128 - 127)
short型 符号付き整数 16ビット $-2^{15}$ 〜 $2^{15}$ - 1 (-32768 - 32767)
int型 符号付き整数 32ビット $-2^{31}$ 〜 $-2^{31}$ - 1
long型 符号付き整数 64ビット $-2^{63}$ 〜 $-2^{63}$ - 1
float型 浮動小数点数 32ビット IEEE754にもとづく値
double型 浮動小数点数 64ビット IEEE754にもとづく値
char型 Unicodeで表現できる1文字 16ビット \u0000 〜 \uFFFF
boolean型 真偽値 1ビット true, false
変数宣言と代入

変数宣言:変数を用意すること

データ型 変数名; //変数宣言

代入:変数に値を格納すること

変数名 = 値; //変数に値を代入

変数の初期化:変数を使い始める前に初期値を代入しておくこと
変数宣言と代入は1行で記述することもできる。

データ型 変数名 = 値; //変数宣言と代入を同時に行う

long型の変数にlong値を入れる場合はリテラルにLまたはlをつける。
float型の変数にfloat値を入れる場合はリテラルにFまたはfをつける。

long l = 40L;
float f = 1.15F;
符号付き整数と浮動小数点数のデフォルトの型
Sample.java
class Sample {
    public static void main(String[] args) {
    long num1 = 10000000000; //コンパイルエラー
    long num2 = 10000000000L;
    float num3 = 10.0; //コンパイルエラー
    float num4 = 10.0F;
    }
}

Javaにおいて符号付き整数のリテラルはデフォルトでint型として認識される。
3行目の10000000000はlong型の値としては問題ないがint型としては扱えない桁数になるためコンパイルエラーになる。よって4行目のようにリテラルの末尾にLが必要になる。
浮動小数点数のリテラルはデフォルトでdouble型として認識される。
なので5行目の10.0はまずdouble型(64ビット)として認識されたあとにfloat型に代入しようとしているためコンパイルエラーになる。よってリテラルの末尾にFが必要になる。

定数

変数は変わる値を扱うことができるが、固定された値を扱うための変数も用意できる。
この変数をJavaではfinal修飾子を使い定数として宣言する。

final データ型 定数名 = 初期値;

定数として宣言した値は初期化したあとに他の値で代入できなくなる。

文字列は参照型

Javaにおいて複数文字の集合体である文字列は参照型のデータとして扱う。
文字列を扱う際のデータ型にはString型を使う。
参照型の変数は値のかたまりを指し示す変数という意味で参照変数とも呼ばれる。

char型 //基本データ型(扱える文字数は1文字)
String型 //参照型(複数文字扱える)

変数のスコープ(有効範囲)

変数は宣言した場所によって使用できる範囲が制限される。
これをスコープ(有効範囲)という。

Sample.java
class Sample {
  public static void main(String[] args) {
      {
        int x = 100;
        x = 200;
      }
      // x = 300;
  }
}

上記Sampleだと3行目から6行目が{}ブロックで囲まれていて、その中で変数xが宣言されている。
よって変数xのスコープは3行目から6行目であり、7行目のコメントアウトを外すとコンパイルエラーとなる。


  1. 使用したのはオラクル認定資格教科書 Javaプログラマ Silver SE 8
    https://www.shoeisha.co.jp/book/detail/9784798142739 

3
3
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
3
3