変数と型
・変数を使用する場合は型を宣言しないといけない
・型には基本データ型と参照型がある
データ型の種類
1、基本データ型
boolean	true or false
char	16ビットUnicode文字 \u0000~\uFFFF
byte	8ビット整数 -128~127
short	16ビット整数 -32,768~32,767
int	32ビット整数 -2,147,483,648~2,147,483,647
long	64ビット整数 -9,223,372,036,854,775,808~9,223,372,036,854,775,807
float	32ビット単精度浮動小数点数
double	64ビット倍精度浮動小数点数
2、参照型
※参照型は基本データ型とは異なる特殊なデータ型
String 文字列
使用例
java
int age; //型宣言
age = 16; //初期化
宣言と初期化を省略した書き方
int age = 16; //型宣言と初期化を同時に実行
初期化しないで配列を使うと・・・
int age; //型宣言
System.out.println(age); //エラー: 変数ageは初期化されていない可能性があります
初期化しないで配列を使うとエラーになる
phpで変数を使う場合
$age = 16;
配列の初期化について
・配列の場合は初期化しなくてもよい
・配列の場合はデフォルトの初期値が設定されている
int[] number = new int[5];
System.out.println(number); //0
各データ型のデフォルトの初期値
boolean false
char	''
byte	0
short	0
int	    0
long	0
float	0
double	0
String	null
キャスト(型の変換)について
配列
java
配列の作り方
データ型[] 変数名;
変数名 = new データ型[要素数]
String[] customer; // String型の配列を宣言
customer = new String[3]; //初期化
配列の作成例
String[] customer; // String型の配列を宣言
customer = new String[3]; //初期化
customer[0] = "山田";
customer[1] = "yamada@gmail.com";
customer[2] = "090-1234-5678";
配列を宣言と初期化を省略した書き方
String[] customer = {"山田","yamada@gmail.com","090-1234-5678"};
php
$age = ['山田','yamada@gmail.com','090-1234-5678'];
繰り返し構文
拡張for文
配列要素を最初から最後まで順番に使用すること(しかできない)ができる。
String[] customer = {"山田","yamada@gmail.com","090-1234-5678"};
for(String info:customer) {
 System.out.println(info);
}
クラス
基本構造
・javaではmainメソッドは必ず必要
・クラスが呼ばれるとmainメソッドが実行される
public class クラス名 {
    public static void main(String[] args) {
        //処理
    }
   public static void メソッド名() {
        //処理
    }
}
フィールド
クラス直下で定義された変数
class Sample {
    String name = "";
    int age = 0;
    public static void main(String[] args) {
        //処理
    }
}
インスタンス
クラスを使用可能な状態にする
基本構造
クラス名 インスタンス名 = new クラス名(引数);
使用例
class Sample {
    Student taro = new Student("太郎",30);
}
コンストラクタ
インスタンスをすると必ず実行される
初期化に使用される
ルール
1、コンストラクタの定義において戻り値の情報は何も記述しない
2、コンストラクタ名はクラス名と同じにする
class Student {
    String name;
    int age;
    
    Student(String name, int age) {
        name = name;
        age = age;
    }
}
thisついて
thisには2つの使い方がある
1、this()
・コンストラクタを呼ぶ
・実践的な使い方は初期化を行う際の初期値の設定に使用される
使用例
class Sample {
    Student taro = new Student("太郎",30);
}
class Student {
    String name;
    int age;
   //引数がない場合はこのコンストラクタが実行される
    Student() {
        name = null;
        age = 0;
    }
  //引数がある場合はこのコンストラクタが実行される
  Student(String studentName, int studentAge) {
        this(); //引数がない場合のコンストラクタを実行させる
        name = studentName;
        age = studentAge;
    }
}
1、this.変数名
・フィールドの変数を指定する
・ローカル変数名とフィールド変数名が一緒の場合はローカル変数が優先される
使用例
class Sample {
    Student taro = new Student("太郎",30);
}
class Student {
    String name;
    int age;
  Student(String name, int age) {
        name = name; //thisがない場合この変数nameが示しているのはこのコンストラクタの変数name
        age = age; //thisがない場合この変数ageが示しているのはこのコンストラクタの変数age
    }
  Student(String name, int age) {
        this.name = name; //thisがある場合この変数this.nameが示しているのはこのフィールドの変数name
        this.age = age; //thisがある場合この変数this.ageが示しているのはこのフィールドの変数age
    }
}
メソッド名の前の型について
メソッド名の前にメソッドの戻り値の型を設定する
void -> 戻り値なし
int -> 数値型
String -> 文字列
public class calculate {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 10;
        sum = add(num1,num2);
        System.out.println(sum);
    }
   public static int add(int num1, int num2) {
        int sum = 0;
        sum = num1 + num2;
        return sum;
    }
}
mainメソッドの引数について
main(String[] args)
mainメソッドの引数(String[] args)を使うにはコマンドラインで引数を渡すことで使用できる
メソッドのオーバーロード
同じメソッド名で複数のメソッドを定義できる
条件
1、引数の数が異なっている
public static void test(int n1){
  // ...
}
public static void test(int n1, int n2){
  // ...
}
2、引数の種類が異なっている
public static void test(int n1){
  // ...
}
public static void test(double d1){
  // ...
}
3、引数のデータ型と数は同じでも順番が異なっている
public static void test(int n1, double d1){
  // ...
}
public static void test(double d1, int n1){
  // ...
}
可変長引数について
可変長引数とは、引数の数が決まっていない引数のこと
使い方
public static void メソッド名(型... 引数名) {
  //
}
使用例
public static void main(String[] args) {
    int sum = add(10,20,30);
    System.out.println(sum);
}
public static int add(int... numbers) {
    int sum = 0;
    for(int i = 0; i < numbers.length; i++) {
            sum += numbers[i];
    }
    return sum;
}
パッケージの使い方
・パッケージはクラスを分類するための仕組み
・phpのnamespaceと似た機能
使い方
・階層の上から順に「.」でパッケージ名を連結
・クラスの先頭で「package」と宣言
・小文字で記述
・パッケージ名は通常、インターネットドメインを逆にした形式のパッケージ名とする