Java SE 7 Silver対策勉強をしながらメモ 2015/1/27
2015/03/29
だんだんなんだか日記じみてきましたが、試験対策メモをいつものごとくマークダウンで記載したのでそのままJetpack Markdownにお任せでアップします。
ソースとクラス
- 1ソースファイルにpublic指定クラスは1つのみ
- そのソースファイル名はpublic指定クラスと同じ
Test.java – public指定クラスはないのでOK
[java]
class Foo{}
class Bar{}
[/java]
Foo.java – Fooが同じ名前なのでOK
[java]
public class Foo{}
class Bar
[/java]
修飾子
クラスに使える修飾子
- ただしfinalとabstractを同時に指定するとコンパイルエラー
修飾子 | 意味 |
---|---|
public | publicにするとグローバルスコープとなりすべてのパッケージ内のクラスから利用可能なクラスとして定義できる。 |
final | 拡張による継承を禁止。そのクラスを元にしたサブクラスを定義できなくなる。 |
abstract | 抽象クラス。サブクラスを定義するためのスーパークラスとして利用。 |
stricfp | クラス内に記述した浮動小数点演算を厳密に評価する。プラットフォーム非依存の浮動小数点演算を行う。 |
アノテーション | @Overrideなど開発者自身が型を定義する。 |
static | クラスメンバ |
メソッド宣言の修飾子
修飾子 | 意味 |
---|---|
public | アクセス制御 |
protected | アクセス制御 |
private | アクセス制御 |
abstract | 抽象メソッド |
final | オーバーライド不可 |
static | クラスメソッド |
synchronized | 同期のためのロック獲得。メソッドの処理中にオブジェクトをロックする。 |
native | ネイティブメソッド |
strictfp | 浮動小数点演算を厳密に評価する。プラットフォーム非依存の浮動小数点演算を行う。 |
リテラル
整数リテラル
進数 | 例 | 説明 |
---|---|---|
10進数 | 255 | 0から9までの10個の数字を使用して数を表現する |
2進数 | 0b101 | 0と1の2つの数字を使用して数を表現する。先頭に0bを入れると2進数と判断される。bは大文字、小文字どちらでも可。 |
8進数 | 0377 | 0から7までの8個の数字を使用して数を表現する。先頭に0を入れると8進数と判断される。 |
16進数 | 0xff | 0から9までの数字とAからF(もしくはaからf)までのアルファベットを使用して数を表現する。先頭に0xを入れると16進数と判断される。xは大文字、小文字どちらもで可。 |
識別子
- 変数、クラス名、メソッド名
- 1文字目は英字,$,_
- 2文字目以降は数字も可
- $,_以外の記号はNG
- 予約語であっても大文字にすれば使用可能
- 予約語は下記
– | – | – | – | – | – |
---|---|---|---|---|---|
abstract | assert | boolean | break | byte | case |
catch | char | class | const | continue | default |
do | double | else | enum | extends | final |
finally | float | for | goto | if | implements |
import | instanceof | int | interface | long | native |
new | package | private | protected | public | return |
short | static | strictfp | super | switch | synchronized |
this | throw | throws | tranient | try | void |
volatille | while |
ブロック
- ありえないコードでも制約にそっていればOK
- 下記は一見elseの書き忘れのようだがそうではなくて、ブロックは書けますよっていう問題なので、答えは全部出力される。
[java]
class BlockTest{
public static void main(String args[]){
int num = 5;
if(!(num > 5)){
System.out.print(“abc”);
}
{
System.out.print(“defg”);
}
System.out.print(“…”);
}
}
[/java]
インスタンス変数
インスタンス変数(メンバ変数)とは
- クラスから生成したオブジェクトが保持する変数
- クラス内(メソッドの外側)で定義
- static変数ではない
main()メソッド
- 以下、構文に従った記述のためコンパイルは通るが一番下のメソッドの正しい定義の構文のみが実行される。
- public とstaticは修飾子なのでどちらが先でも構わない
- voidは戻り値なので修飾子より後
- 引数は必ずStringの配列
- 「コンパイルするため」と「実行するため」の設問ひっかけに要注意!!!
[java]
class MainTest{
void main(){
//code
}
static void main(String args){
//code
}
void main(Object[] args){
//code
}
public static void main(String[] args){
//ここが実行されるだけ
}
}
[/java]
パッケージ
- java.langパッケージは暗黙的にインポートされているjavaの基本クラスのパッケージ
- 同じパッケージ宣言をしているクラスはインポートしなくても良い
- 階層化はクラス名の衝突を防ぐためのものでアクセス権などの関連付けには関係ない
- クラス名をパッケージ名を含めた完全クラス名で指定すればインポートしなくても良い
- java.*などというパッケージは存在しない
[java]
package pac1
public class Test1{
public static void main(String[] args){
pac1.pac2.Test2 test2 = new pac1.pac2.Test2();
test2.foo();
}
}
[/java]
[java]
package pac1.pac2
public class Test2{
public void foo(){
System.out.println(“Hello World”);
}
}
[/java]
静的インポート
- static変数、staticメソッドをクラス名を指定せずに使用するためのインポート機能
- 構文
[plain]
import static パッケージ名.クラス名.static変数名;
import static パッケージ名.クラス名.staticメソッド名;
import static パッケージ名.クラス名.*;
[/plain]
[java]
package pac1.pac2;
public class Access1{
public static int num = 55;
}
[/java]
[java]
import static pac1.pac2.Access1.*; //Access1クラスの変数、メソッドを静的インポート
public class Access2{
int num1 = num; //1行目の静的インポートがあるのでAccess1のnumを直接使用可
int num2 = pac1.pac2.Access1.num; //1行目のインポートがなくても完全変数名で指定可
int num3 = Access1.num; //Access1はインポートしていないのでコンパイルエラー
}
[/java]
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (6) Twilioからの電話受付と登録処理
作るところ 電話がかかってきてTwilioで受け付けてStepFunctions …
-
-
Developers Summit 2018 「本番環境で使うContainer – Amazon ECS, AWS Fargate, Amazon EKS」を聞きました
※写真は展示のAmazon Echo とルンバです。 以下は、思ったことや気にな …
-
-
JAWS SONIC 2020 & MIDNIGHT JAWS 2020 の深夜のパワポカラオケに挑戦しました
2020/9/12(土) 16:50 ~ 2020/9/13(日) 17:20( …
-
-
Java SE 7 Silver模擬テストの結果間違えたとこをメモ 2015/2/12
模擬テスト1回目。 90問中79問正解。 正解率87%。 まだ不安。 いつものご …
-
-
「JP_Stripes in Osaka Vol.2」でハンズオンをやりました
JP_Stripes大阪、早くも2回目の開催です。 自分が使ってみたいという目的 …
-
-
Media-JAWS【第8回】「AWS人材教育について語る!」に参加しました。
Media-JAWS【第8回】「AWS人材教育について語る!」に参加しました。 …
-
-
LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (4)Step Functionsで複数のLambdaを実行制御する
作る部分 Step Functionsでこれまで作ったLambdaの実行制御をし …
-
-
「AWSの基礎を学ぼう 特別編 最新サービスをみんなで触ってみる Amplify + Admin UI」に参加しました。
亀田さんが定期開催というか、高頻度開催されている「AWSの基礎を学ぼう 特別編 …
-
-
「コミュニティリーダーズサミット in 高知 2023初鰹編」に参加しました
始まりました! 今回のテーマは「旗を立てる ~Raise Your Flag~」 …
-
-
Developers Summit 2018 「「技術内閣制度」2年間やってきて得られた事とこれから ~開発チーム横断での技術課題解決、技術力強化、エンジニア文化醸成」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …