#変数と型
・変数を使用する場合は型を宣言しないといけない
・型には基本データ型と参照型がある
###データ型の種類
#####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」と宣言
・小文字で記述
・パッケージ名は通常、インターネットドメインを逆にした形式のパッケージ名とする