2
3

More than 1 year has passed since last update.

Java Silver SE11 1章

Last updated at Posted at 2021-12-21

Java Silver SE11 1章

黒本をもとに学んだことをアウトプットしていきます。
主に問題を解いていて、間違えた箇所もしくは知らなかった内容になります。

package

コンパイラやJVMはクラス名の重複を防ぐために、「完全修飾クラス名」で取り扱う。
(名前空間を提供する)

完全修飾クラス名(full qualified class name) FQCN は先頭行に記述する。
package パッケージ名.クラス名;

  • パッケージ単位でアクセス制御が可能になる
  • 公開、非公開に分けることができる
  • クラスは必ず何らかのパッケージに属する
  • (記載がない場合、無名パッケージに属するものと解釈される)
  • ソースの先頭行に記述する
  • コメントは記述可能
  • 無名パッケージに属するクラスは、
    同じく無名パッケージに属するクラスからしかアクセスすることができない

クラスのアクセス修飾子

public 記載なし private
全て可能 同じパッケージに属するクラス クラスには指定できない

実際に検証

Sample1.java
package chapter1.test2.sub;

public class Sample1 {

	public String greet() {
		return "hello";
	}
}
Sample2.java
package chapter1.test2.sub;
// publicを記載しない
class Sample2 {

	public String greet() {
		return "hello";
	}
}
Main.java
package chapter1.test2.main;

import chapter1.test2.sub.Sample1;
import chapter1.test2.sub.Sample2;

public class Main {

	public static void main(String[] args) {
		// sample1はインスタンス生成できる
		Sample1 sample1 = new Sample1();
		// エラー sample2はインスタンス生成できない
		Sample2 sample2 = new Sample2();

		// hello
		System.out.println(sample1.greet());
		// エラー
		System.out.println(sample2.greet());
	}

}

import

FCQNの入力の手間を省くために、import文がある。
package文より後に記述する。
import パッケージ名.クラス名;

import宣言はあくまでも「入力軽減」であり、FCQNの記述を省略しているに過ぎない。

java.langバッケージに関しては、import文を記述しなくとも自動的にインポートされる。
(使用頻度がとても高いから)
例:System, Integer, String など
また同じパッケージに属するクラスも、インポート宣言する必要なく利用できる。

Javaクラスを実行するコマンド

メモリ上にクラスファイルに相当するバイトコードを出力し、これを実行している。
(ソースファイルモードのこと)

javaコマンドでTest.javaを実行する場合
> java Test.java
> java Test

エスケープ 

特別な意味を持つ記号をただの文字列として認識させる文字のこと。
記号の前に「¥」を記述する。

起動パラメータを実行した場合の例

起動パラメータ 実行結果
¥" "
a¥" a"
2
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
2
3