Java基礎
Java概要
- コンパイル型・オブジェクト指向言語
- Webアプリ、業務システム、Androidアプリなど幅広く利用
- JVM(Java仮想マシン)上で動作
注意点
- 本資料ではJava 17以降の標準Javaを対象とします
- Javaは型が厳格で、変数宣言時に型指定が必須
- すべてのコードはクラスの中に記述する必要がある
Hello World
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
mainメソッドがプログラムのエントリポイントSystem.out.printlnで標準出力に文字列を表示- Javaファイルの拡張子は
.java - コンパイルと実行は以下のコマンド
javac Hello.java java Hello
型
- Javaでは変数や値に必ず型がある
- 主な基本型(プリミティブ型)
- int: 整数値
- double: 倍精度浮動小数点数
- boolean: 論理値(true/false)
- char: 文字(1文字)
- 文字列は
Stringクラスで表現
int a = 1;
double b = 1.0;
boolean c = true;
char d = 'A';
String s = "hello";
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(s);
変数
- 変数は値を格納するための「箱」
- 宣言時に型を指定し、同じ変数に異なる型の値は代入できない
- 変数名は小文字で始めるのが一般的
int x = 10;
double y = 3.14;
String name = "Java";
演算子
- 四則演算:
+,-,*,/ - 剰余演算:
%(整数型のみ) - 代入演算:
=,+=,-=,*=,/= - 比較演算:
==,!=,<,<=,>,>= - インクリメント/デクリメント:
++,-- - 文字列連結:
+(String型同士) - 論理演算:
&&,||,!
int a = 5, b = 2;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
String s = "abc" + "def";
System.out.println(s);
型変換
- 異なる型同士の演算では自動的に型変換(暗黙の型変換)が行われる
- 明示的な型変換(キャスト)も可能
int a = 5;
double b = 2.0;
System.out.println(a / b); // aがdoubleに変換される
int c = (int)3.14; // cは3になる
制御文
- 条件分岐: if文, switch文
- 繰り返し: for文, while文, do-while文
if文
int a = 3;
if (a > 0) {
System.out.println("aは正です");
} else if (a == 0) {
System.out.println("aはゼロです");
} else {
System.out.println("aは負です");
}
while文
int i = 5;
while (i > 0) {
System.out.println(i);
i--;
}
for文
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
配列
- 複数の同じ型の値をまとめて扱う
- 要素数は固定
int[] scores = {45, 100, 21, 89, 94};
int total = 0;
for (int i = 0; i < scores.length; i++) {
total += scores[i];
}
System.out.println("平均: " + (total / scores.length));
メソッド(関数)
- よく使う処理をまとめて定義できる
- 戻り値の型、引数の型を必ず指定
- メソッドはクラスの中に定義する
public class Quadratic {
public static void solve(int a, int b, int c) {
int d = b * b - 4 * a * c;
if (d > 0) {
double x0 = (-b + Math.sqrt(d)) / (2.0 * a);
double x1 = (-b - Math.sqrt(d)) / (2.0 * a);
System.out.println("x0 = " + x0 + ", x1 = " + x1);
} else if (d == 0) {
double x = -b / (2.0 * a);
System.out.println("x = " + x);
} else {
System.out.println("実数解なし");
}
}
public static void main(String[] args) {
solve(1, -3, 2);
solve(1, -2, 1);
solve(1, -1, 1);
}
}
- Javaではメソッドの引数・戻り値の型を必ず指定する
- 標準ライブラリのメソッドを使う場合はクラス名(例:
Math.sqrt)を指定 - 実数リテラルは
2.0のように書く
クラスとオブジェクト(基礎)
- Javaはすべてクラスベース
- クラスはデータ(フィールド)と処理(メソッド)をまとめたもの
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void greet() {
System.out.println("Hello, my name is " + name + ". I am " + age + " years old.");
}
public static void main(String[] args) {
Person p = new Person("Alice", 20);
p.greet();
}
}
まとめ
- Javaは型が厳格で、すべてのコードはクラスの中に記述する
- 制御文や配列、メソッド、クラスなど基本的な構文を理解することが重要
- オブジェクト指向の考え方が中心となる