java 基本構文まとめ

## java基本構文まとめ※随時更新予定
## 変数の初期化
int型の変数numに１０を代入
```java
int num = 10;
```
```java
型 変数 = 値;
```
## キャスト演算子で型を変換
変数totalAgeをdouble型に変換
```java
int totalAge = 100;
double averageAge = (double) totalAge / 4;
```
```java
(変換したい型) 変換対象の変数や式
```

## 条件分岐If文
身長が１７０cm以上の時に「身長は１７０cm以上です。」を表示
```java
if (height>=170) {
   System.out.println("身長は170cm以上です。");
}
```
```java
if (条件式) {
    条件が満たされた時に行う処理
}
```
## 条件分岐If~else文
heightの値がが１７０㎝以上の時に「身長は170cm以上です。」を表示
それ以外の条件の時に「身長は170cmより低いです。」を表示
```java
if (height>=170) {
    System.out.println("身長は170cm以上です。");
} else {
    System.out.println("身長は170cmより低いです。");
}
```
```java
if (条件１) {
    条件に対する処理
} else {
    条件が満たされない時に行う処理
}
```
## if~else if文
maxTempertureの値が３５以上の時に「今日は猛暑日です。」を表示
maxTempertureの値が３０以上の時に「今日は真夏日です。」を表示
maxTempertureの値が２５以上の時に「今日は夏日です。」を表示
それら以外の条件の時に「今日は猛暑・真夏日・夏日ではありません。」を表示
```java
if(maxTemperture>=35){
      System.out.println("今日は猛暑日です。");
    } else if(maxTemperture>=30){
      System.out.println("今日は真夏日です。");
    } else if(maxTemperture>=25){
      System.out.println("今日は夏日です。");
    } else{
      System.out.println("今日は猛暑・真夏日・夏日ではありません。");
    }
  }
```
```java
if(条件１){
      条件１に対する処理
    } else if(条件２){
      条件２に対する処理
    } else if(条件３){
      条件３に対する処理
    } else{
      条件が満たされない時に行う処理
    }
  }
```
## 繰り返しfor文
初期値としてnumberに１を代入し、６以下になるまでnumberに１を足すを繰り返し行う。
```java
for (int number =1; number <=6; number++){
      System.out.println( +number);
    }
```
```java
for (繰り返し前の初期化式; 繰り返し条件; 繰り返しごとの後処理){
      繰り返し行う処理
    }
```
## 繰り返し while文
変数iが３より低い時に「(i + 1) + "回目の処理です"」を繰りかえし表示
```java
while (i < 3) {
            System.out.println((i + 1) + "回目の処理です");
            i++;
        }
```
```java
while (繰り返し条件) {
            繰り返し行う処理
        }
```
## クラス定義
Catクラスを定義
```java
public class Cat {
    String name;
}
```
```java
アクセス修飾子 class クラス名 {
    クラスの構成要素
}
```
## メソッド定義（戻り値なし）
```java
void printName(String name) {
```
```java
void メソッド名(引数リスト) {
    処理
```
## メソッド定義（戻り値あり）
```java
boolean isHungry() {
```
```java
戻り値の型 メソッド名() {
```
## インスタンス生成
Saiyanクラス型のインスタンスを生成し、変数gokuuに代入
```java
Saiyan gokuu = new Saiyan();
```
```java
型(クラス名) 変数名 = new クラス名();
```
## メソッドの呼び出し方
gokuuインスタンスのattackメソッドを呼び出す
```java
gokuu.attack();
```
```java
インスタンスを入れた変数.メソッド名();
```
## フィールドの定義
Saiyanクラスから生成したインスタンスにnameフィールドを定義
```java
public class Saiyan {
    String name;
```
```java
public class Saiyan {
    型 フィールド名;
```
## フィールドの初期化
gokuuのnameフィールドに"悟空"を代入
```java
public static void main(String[] args) {
    Saiyan gokuu = new Saiyan();
    gokuu.name = "悟空"
```
```java
型名 フィールド名 = 初期値
```
## コンストラクターの定義
Saiyanクラスのコンストラクターの定義
```java
public Saiyan(String n, int a) {
        name = n;
        age = a;
}
```
```java
アクセス修飾子 クラス名(引数)
        処理
```
## インターフェースの定義
複数のクラスの共通項を表すFighterを例として、attackメソッド（抽象メソッド）を定義。
```java
public interface Fighter {
    public abstruct void attack();
}
```
```java
アクセス修飾子 interface インターフェース名 {
    構成要素(抽象メソッド)
```
## インターフェースを実装したクラス、抽象メソッドのオーバーライド
Fighterクラスのメソッドをオーバーライド
```java
public class Gokuu implements Fighter {
    @Override 
    public void attack();   
}
```
```java
アクセス修飾子 class クラス名 implements インタフェース名 {
    @Override 
    メソッド
```
## コレクションフレームワーク
## Listインターフェース
ArrayListクラスのインスタンスを生成してList型の変数に代入
```java
List<String> list1 = new ArrayList<>();
```
```java
List型<格納する要素の型> 変数名 = new ArrayList<>();
```
## リストに対応した拡張for文
listsから要素を取り出す
```java
for (String lists : list1) {
   System.out.println(lists);
```
```java
for (型 変数名(取り出した要素を) : リストを入れた変数名) {
    繰り返したい処理
}
```
## Mapインターフェース
HashMapクラスのインスタンスを生成してMap型の変数に代入
```java
Map<String, Integer> animalsMap = new HashMap<>(); 
```
```java
Map<キーの型,値の型> 変数名 = new HashMap<>();
```
## 継承
## サブクラスの定義
Saiyanクラス（スーパークラス）を継承したGokuuクラス（サブクラス）を定義
```java
public class Gokuu extends Saiyan {
  String name ="悟空";
  public void fight(String name) {
    System.out.println(name+"は戦った");
  }
}
```
```java
class 継承先のクラス名 extends 継承元のクラス名 {
}
```
参考文献・サイト
「いちばんやさしいJAVAの教本」著者　石井真
https://java-code.jp/