0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

2分で分かるインナークラス JavaGold 取得への道(内部クラス編)

Last updated at Posted at 2022-02-12

徹底攻略Java SE 11 Gold問題集(黒本)を読んで最初にぶち当たる壁「内部クラス」ついて、4つの記事に分けてまとめました。
僕のようなJava初心者や、JavaGoldの資格取得に向けて、勉強をしている方にこの記事がお役に立てれば幸いです。
#はじめに
ネストしたクラスには4種類あります。
今回はその中でインナークラスについて解説していきます。

・インナークラス👈🏻
・staticインナークラス
・ローカルクラス
・匿名クラス

#インナークラスとは? 
一言で表すと、クラスの中に定義したクラスのことをインナークラスと言います。
###使い所
 ・パッケージの中でも隠蔽したい時に使います。

身近な例に例えると、たとえ血の繋がっている家族でも秘密にしたいことってありまよね。
多くの人は、秘密を自分自身の中に留めておきます笑。
イメージとしてはこのような感じなのかな〜って思います。

#どのように使うの?
###定義方法
下記のコードのようにクラスの中にクラスを定義するだけです。

Outer.java
public class Outer{
   class Inner{
    public void sample(){
      System.out.println("インナークラスです。");
    }
  }
}

インナークラスを定義する時にstaticを修飾するとstaticインナークラスになるのでご注意してください。

下記の表はインナークラスとアクセス修飾子の関係を表しています。

public protected private final static
×

##インナークラスのインスタンスの生成方法
エンクロージングクラスをインスタンス化してから、インナークラスをインスタンス化します。
上のコード例だと、エンクロージングクラスはOuterクラスのことを指します。

main.java
public class Main{
 public static void main(String[] args){
  Outer outer = new Outer();
  Outer.Inner inner = outer.new Inner();
  inner.sample();
 }
}
結果
インナークラスです。

インナークラスのみのインスタンス生成をすることは出来ません。

#まとめ
・インナークラスとは、クラスの中に定義したクラスのこと
・インスタンスを生成するときは、エンクロージングクラスをインスタンス生成してから生成する

##参考文献
・優しくない!? Javaシリーズ

・徹底攻略Java SE 11 Gold問題集
・【Java】インナークラス(内部クラス)って何?概要から使い方まで解説
https://style.potepan.com/articles/30021.html

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?