[JAVA]オブジェクト向け(4)-パッケージ、継承


この文章は金成朴先生の4/5課をもとに書いた.
詳細については、
https://www.facebook.com/groups/codingeverybody/posts/7530033737037097/を参照してください.

良いオブジェクトは凝集度が高く,結合度が低い。


オブジェクトの役割、責任、コラボレーション
良い客体とは、役割や責任に忠実であり、他の客体とよく協力して働く客体を指す.逆に、悪いオブジェクトとは、名前に合わない属性や機能、または正常に動作しないオブジェクトを持つように、さまざまなロールをオブジェクトに付与するオブジェクトです.これは、動作が他のオブジェクトとスムーズでないオブジェクトを意味します.

たけいせい


プログラム言語の多形性とは、プログラム言語の資料型システムの性質を指し、プログラム言語の各要素(定数、変数、式、対象、関数、方法など)は多種の資料型(type)が許容する性質に属する.反意語は一種の単形性であり,プログラム言語の各要素が一つの形態しかない性質を指す.
出典:ウィキペディア

System.out.println(...)

  • println「パラメータを出力して改行します.」これは機能です.
  • では、パラメータはint、float、double、Stringであってもよい.
  • 重要なのは、メソッド名が同じであることです.なぜ同じメソッド名が重要なのでしょうか.
  • システムクラスを検索!



    メソッド名は同じですが、受け入れるタイプが違います.

    たけいせいほうしきかふか

  • メソッドの名前は同じで、パラメータの個数またはタイプが異なるメソッドを定義します.
  • のみの戻り値の異なる過負荷は記述できません.
  • メソッド名が違うと思うと、ユーザーは不便なことがたくさんあります。


    たとえば、intを出力するメソッドの名前がprintIntであり、文字列を出力するメソッドの名前がprintStringである場合、ユーザーは多くのメソッドの名前を覚える必要がある場合があります.

    StandardOutputクラス



    上記のメソッド名は同じですが、パラメータが異なります.

    これをオーバーロードと言います。


    StandardOutputクラスには静的フィールドがないため、printlnはインスタンスメソッドです.
    上記の方法を実行するために、
    1. 인스턴스를 만들어서 사용한다.
    2. static 필드를 생성한다.
    前の授業では以上の2つの方法が必要だと言いました.
    実行させましょう
    実行するには、静的メソッドが必要です.

    小包

  • クラスは、パッケージ管理に関連するクラスを使用します.Javaでは,パッケージはフォルダとほぼ同じ機能を提供していると考えられる.
  • パッケージ名規則
  • パッケージ名は、通常、ドメイン名を逆書きした後にプロジェクト名などを付けて作成されます.

  • com.example.utilフォルダでCalculatorを実行します.

    他のパッケージで計算機を使用する



    上記のように、メインパッケージも計算機で定義した方法を使用したい場合.
    計算機をインポートする必要があります.

    ここで注意したいのは、import自体だけがメモリにアップロードされないことです。


    パッケージのインポート CalculatorMainクラスがutil、util 1のパッケージ内の同じ名前のクラスを使用する場合、どうなりますか? 同じ名前の異なるクラスに対して、オブジェクトの作成時にパッケージパスを入力します。 引き継ぐ はい、そうです。~の一種です。そう言えば、これが継承関係です。継承関係は一種の関係または一種の関係ともいえる. 電子製品には開閉機能があり、この機能はテレビ、電子レンジで継承されています。

    継承=一般化+拡張


    継承は一般化と拡張の概念の総和であると考えられる.親を継承することは、親を継承および使用できることを意味します.

    相続書を書いてくれませんか。


    上図のように、私たちが何をしても、どんな機能を見ても、継承を利用するのは便利そうです.
    しかし、うまく使わないと結合度が高くなるので、再利用するのは難しいです.
    だから継承は私です.竹.書くつもりにしましょう.

    宣言メソッドの継承

    [접근 제한자] [abstract | final] class 클래스명 extends 부모클래스명{
    ....
    }

    すべてのクラスはObjectの子孫です。


    何も継承しないとjavaが自動的に使用されます.lang.オブジェクトを継承します.