ヤマムギ

growing hard days.

*

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認定クラウドプラクティショナー 改訂第2版」という本を書きました。

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

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

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

 - Java, study , ,

ad

ad

  関連記事

Java SE 7 Silver模擬テストの結果間違えたとこをメモ 2015/2/12

模擬テスト1回目。 90問中79問正解。 正解率87%。 まだ不安。 いつものご …

Developers Summit 2018 「将棋プログラムPonanzaにおける強化学習、ディープラーニングとその先」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

「自ら修羅の道を作り、修羅場を楽しみ、自内外に変化を起こし続ける」(『ソフトウェアファースト』読書感想)

「ソフトウェア・ファースト あらゆるビジネスを一変させる最強戦略」を読みました。 …

「GitLab Meetup Tokyo #7: 新年度応援&GitLab 11.0」にSNS & ブログ枠で参加しました

GitLabのミートアップがあるのか!さすが大東京! GitLabのもとユーザと …

「MasterCloud-Alexa makes the world a better place-」で登壇しました

クラウド全体を扱う勉強会MasterCloudのAlexaの会で登壇してきました …

Agile Japan 2015 大阪サテライト「アジャイル開発への架け橋」に行ってきました

Agile Japan 2015 大阪サテライトに行ってきました。 具体的な目的 …

Developers Summit 2018 「NRIの働き方改革 – 開発スタイルから文化まで変えた軌跡 -」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (4)Step Functionsで複数のLambdaを実行制御する

作る部分 Step Functionsでこれまで作ったLambdaの実行制御をし …

LINEとAWSとTwilioとkintoneでBOTを作ってみるハンズオン (1)LambdaからSlackへ通知する1

作る部分 SlackのWebURLを確認する Slackでチームを作成してbot …

Java SE 7 Silver対策勉強をしながらメモ 2015/2/3

本日は継承。 眠すぎるのでちょっとだけ。 本当に少しだけでもいいから続ける。それ …