Java SE 7 Silver対策勉強をしながらメモ 2015/2/9
2015/03/29
練習問題2日目。
同じ問題にひっかかる。つまづく。
集中力が足りない。
途中から時間を意識して早く答えるようにしたら集中出来た。
いつものごとくマークダウンで記載したのでそのままJetpack Markdownにお任せでアップします。
配列の要素数と添え字は違う!!いい加減にひっかからない!!
[java]
class ForTest{
public static void main(String[] args){
int ary[][] = new int[5][];
for (int i =0;i<ary.length;i++){
ary[i] = new int[i+1]; //ここで+1で生成しないと最初の配列が要素数なしになってしまう
for(int j = 0;j<ary[i].length;j++){
ary[i][j]=i + j;
System.out.print(ary[i][j]);
}
System.out.println();
}
}
}
[/java]
staticメソッドから直接インスタンスメソッドは呼び出せない!!!
[java]
class MethodTest{
static void methodOne(){
methodTwo();
MethodTest.methodTwo();
methodThree(); //コンパイルエラー
MEthodTest.methodFour(); //コンパイルエラー
}
static void methodTwo(){
}
void methodThree(){
methodOne();
MethodTest.methodTwo();
methodFour();
MethodTest.methodFour(); //コンパイルエラー
}
void methodFour();
}
[/java]
- staticメソッド内からインスタンスメソッドは直接呼び出せない
- staticメソッド内からインスタンスメソッドはクラス名.メソッド名の形式でも直接呼び出せない
- クラス名.メソッド名はstaticメソッドの呼び出し形式のため、インスタンスメソッドを実行出来ない
引数が異なればオーバーロード成立なので戻り型が違ってもよい!!!
[java]
class Test{
public void foo(){
}
public String foo(String str){
return str;
}
public double foo(int i){
return 1.0;
}
}
[/java]
- このコードはコンパイルに成功するが、mainメソッドがないために実行時エラー
スーパークラス型でインスタンス化されたサブクラスでオーバーライドされているメソッドが実行される!!!
[java]
class Test0{
public void foo(){
System.out.print(“Super “);
}
}
public class Test extends Test0{
public void foo(){
System.out.print(“Sub “);
}
public static void main(String[] args){
Test0 test0 = new Test0();
test0.foo(); //「Super」が出力
test0 = new Test();
test0.foo(); //「Sub」が出力
}
}
[/java]
– 出力は「Super Sub」
サブクラスが実装しているインターフェースでスーパークラスがキャスト出来る!!!
[java]
public Super{
public static void main(String[] args){
Super sp = new Sub();
Inter in = new Sub();
((Inter)sp).method(); //これ!!
sub.method();
((Inter)sub).method();
}
}
class Sub extends Super implements Inter{
public void method(){
System.out.println(“sub method”);
}
}
interface Inter{
public void method();
}
[/java]
staticメソッドはsuper.メソッド名()では呼び出せない!!!
[java]
class SuperTest{
protected static int add(int a,int b){
return a+ b;
}
}
class SubTest extends SuperTest{
public static int add(int a,int b){
int c = super.add(a,b); //コンパイルエラー
return c;
}
}
public class GoTest{
public static void main(String[] args){
SubTest st = new SubTest();
System.out.print(st.add(1,4));
System.out.print(SubTest.add(6,3));
}
}
[/java]
– SuperTest.add(a,b)に修正すればOK
コンストラクタ内で自クラスのコンストラクタを呼ぶ時はコンストラクタ名で呼ぶ事は出来ない!!!
[java]
public class ConTest{
public Contest(){
}
public Contest(int i){
Contest(); //コンパイルエラー
}
}
[/java]
- this();にすればOK,というかthis();にしないといけない
注意事項
Objectクラスはすべてのクラスのスーパークラス!!!!
変数にabstract修飾子を追加するとコンパイルエラー!!!!
本番は90問150分、なので1問に最大でも1分かけない!!!!!
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
DevLOVE関西 「サイボウズ開発の現場」に行ってきました
DevLOVE関西 「サイボウズ開発の現場」に行ってきました 所感 「KAIZE …
-
-
Lotusphere 2010に行ってきました
Lotus Technical Award 2009 for Best Arch …
-
-
DevLOVE関西「プログラミングを楽しく続けるための健康Hack」に行ってきました
DevLOVE関西「プログラミングを楽しく続けるための健康Hack」に行ってきま …
-
-
docomo雑談APIのAPIキーを発行する
docomo雑談 APIのキー取得の方法です。 (2017年8月13日時点の情報 …
-
-
AWS認定オンライン受験をしてみました(OnVUE)
本日2020年5月28日より、AWS認定試験のオンライン受験が、日本国内でも可能 …
-
-
「大阪Pythonユーザの集まり」に行ってきました
「大阪Pythonユーザの集まり」 に行ってきました。 あんまりメモ取れてません …
-
-
「ChatGPTで開発する技術勉強会」に参加しました
ビヨンドさんの「ChatGPTで開発する技術勉強会」に参加しました。 ビアバッシ …
-
-
AWS Summit 2016 Tokyoに参加してきました (Day2)
馬込は非常に良い天気です。 泊まっている部屋が2Fでしたので窓を明けると歩いてい …
-
-
トラックボールユーザー集合!確実に何かが始まった日。
Logcool社のトラックボールマウス M570や他のトラックボールマウスを愛用 …
-
-
Alexa Day 2018で「Alexa はどこにでも。AVSが開くAlexa Enabled なライフスタイル」を聞きました
photo by 金春さん スピーカーはオランダから一時帰国中の伊東のともさん …