航行99|[WIL]第2週-オブジェクト向けプログラミング,JVM


オブジェクト向けプログラミング(OOP)


オブジェクト向けは,我々が生きている世界をモデルとした開発手法であり,プログラムを命令リストと見なす観点から,プログラムを複数の独立した単位「オブジェクト」の集合と見なす.
[ソース]休蒙実験室
オブジェクト向けだけでなく、プロセス向けもあります.プロセスガイドは上のグラフのように、開始基準に従って順番にプログラミングされます.順序が間違ったり、途中でエラーが発生したりすると、プログラミング全体にエラーが発生します.これは順序処理を重視する方法です.
逆に,オブジェクト向けは順序に関係なく独立してオブジェクトによってインタラクティブに設計でき,1つのオブジェクトにエラーが発生しても他のオブジェクトに影響を及ぼさない.

1.OOPのコンポーネント


オブジェクト向けプログラミングは主にクラスとオブジェクトから構成されます.

クラス(Class)


オブジェクトを定義する概略図
プロパティとメソッドを定義してオブジェクトを作成し、インスタンスを作成して複数のオブジェクトを作成できます.
類-フナ餅型
対象-小豆フナ、クリームフナ、ピザフナ
クラスコンポーネント
  • フィールド(フィールド)
    -クラスに含まれる変数
    -宣言された位置に基づいてメンバー変数(クラス変数/インスタンス変数)とゾーン変数に分けられます.
  • メソッド-オブジェクト行を定義する文のセット
  • 構造関数-インスタンス初期化方法
  • オブジェクト/インスタンス


    インスタンスは、クラスで作成されたオブジェクトです.
    クラス内でオブジェクトを作成するプロセスをインスタンス化と呼び、通常はオブジェクト=インスタンスに使用されます.
    属性と機能は、他のオブジェクトと明確に区別できる必要があります.

    // 클래스
    class Person {
    	// 멤버 변수
        String name;
        String sex;
        int age;
        
        	// 생성자
            Person(String name, String sex, int age) { 
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
        
        // 메서드
        void getName(String name) {
            System.out.printf("내 이름은 %s이다.\n", name);
        }
    
        // 메서드
        String getPersonInfo() {
            return String.format("name: %s, sex: %s, age: %d", name, sex, age);
        }
    }
    
    public class Korean {
        public static void main(String[] args) {
        	// 인스턴스 생성
            Person person = new Person("김하니", "female", 25);
            
            // 메서드 호출
            person.getName("홍길동");
            System.out.println(person.getPersonInfo());
     
        }
    }

    2.オブジェクト向けプログラミングの三要素


    上述したのはオブジェクト向けプログラミングではなく、オブジェクト向けプログラミングの説明に近いものであり、オブジェクト向けプログラミングとは、オブジェクト向けプログラミングの3つの要素をよく結合したプログラムである.

    パッヶージ


    関連する変数とメソッドを分類することで、情報を非表示にします.
    オブジェクトには、外部から内部情報にアクセスできないフィールドとメソッドでのみアクセスできます.

    継承


    子クラスは親クラスの変数とメソッドを継承します.
    効率化のためのコードの削減

    たけいせい


    1つのオブジェクトには複数の外観があります.

    Overrriding
    継承メソッドの役割の再定義
    talk()メソッドがあれば、Aのtalk()は高速で、Bのtalk()はソフトで、キャラクタを再定義できます.
    →継承により機能拡張が容易
    Overloading
    1つのクライアントに複数の同じ名前のメソッドがあります.
    class Personではeat()の方法はeat(ガム)でもeat(肉)でもeat(ガム、肉)でもよい.
    →コード量を減らす
    (多形性が保証されない場合はeatGum()、eatMeat()のように分けて処理する必要があります)

    3.対象向けのメリットとデメリット


    長所

  • 再利用-継承によりコード再利用率が向上
  • 生産性の向上-クラスを作成し、独立したオブジェクトを使用して生産性を向上させる
  • .
  • 現実モデリング-オブジェクトは現実構造を反映しており、お客様の考え通りに
  • を実現できます.
  • メンテナンスが容易:追加、修正時にカプセル化されたコードは他のコードに与える影響が少なく、メンテナンスが容易な
  • 短所

  • 開発速度が遅い-オブジェクト処理を理解する必要があり、設計に時間がかかる
  • 符号化難易度が
  • 上昇
  • 運転速度が遅い
  • JVM


    1.JVMとは?


    Java Virtual Machineの略で、Java Byteコードをオペレーティングシステムとして解釈します.Java CompilerJavaファイルをJavaバイトコード(.class)に変換することで、JVMはJavaバイトコードを解釈し、オペレーティングシステムがJavaバイトコードを機械言語ではなく理解できるようにします.
    Byteコードは、オペレーティングシステムに依存せずにJVMによって実行され、Javaファイルを作成するだけで、任意のデバイス上でJVM上で実行できます.

    Java実行プロセス[自動化


  • プログラム実行後、JVMはオペレーティングシステムからプログラムに必要なメモリ割り当てを取得する

  • Java AMは用途に応じてメモリを複数の領域に分割して管理を開始する

  • JAvaコンパイラ(javac)javaソース(.java)を取得してJavaバイトコード(.class)に変換

  • Class LoaderclassファイルをJVMにロードする

  • ロードされました.クラスファイルはエンジン解析を実行する

  • 解析Java byte code(.class)はRuntime Data Areasで実行されます