Javaオブジェクト/クラス/インスタンス/メモリ領域


Section 1. Javaオブジェクトの概念


1.オブジェクト(Obect)
意味や行為に関わる「対象」は、具体的かつ抽象的なデータの単位(学生、会員、注文、出荷など)である.
2.プログラムガイドVSオブジェクトガイド
  • プロセス向け計画
    ->起きろ->風呂に入る->食事をする->バスに乗る->料金を払う->学校に着く
  • オブジェクト向けプログラミング
  • 3.オブジェクト向けプログラミングの実施
        ①オブジェクト定義
        ②各対象が提供する機能を体現する
        ③各オブジェクトが提供する機能間のコミュニケーション(情報伝達)により、オブジェクト間の通信を実現

    Section 2. Javaクラスの概念


    1.クラス(Class)
    プログラミングで現実世界のオブジェクトを実現する設計図
    オブジェクト->インスタンス(Instance)、実際に
  • クラスの設計を実現
  • ランク=フナ餅機 /  例=フナ餅
  • 2.クラス規則
  • クラスは大文字で始まるのが望ましい、
  • 1つの
  • javaファイルには複数のクラスがあり、1つの共通クラスには
  • があります.
  • 公共授業と.JAvaファイルの名前は同じ
  • でなければなりません.
    3.クラスの定義(宣言)
  • 現実世界の学生をクラス
  • と定義する
  • オブジェクトの属性宣言クラスのメンバー変数(自動初期化)
  • オブジェクトの機能宣言クラスのメンバー関数(メソッド)
  • (静的宣言でオブジェクトを作成することなくアクセス可能)
    public class Student {
    
    	int studentID;
    	String studentName;
    	int majorCode;
    	String majorName;
    	int grade;
        	String address;
            
            public void showStudentInfo() {
    		System.out.println(studentName + "," + address);
    	}
    	
    	public String getStudentName() {
    		return studentName;
    	}
    }
    
    4.実装クラス(=インスタンスの作成)
  • クラスをデータ型(リファレンス型)
  • と命名する
  • オブジェクトを使用して、新しい演算子(キーワード)
  • を作成します.
    public class StudentTest {
    
    	public static void main(String[] args) {
    		
    		Student studentHong = new Student();	# 인스턴스 1 (studentHong)
    		studentLee.studentName = "홍길동";
    		studentLee.address = "서울";
    		
    		studentLee.showStudentInfo();
    		
    		Student studentKim = new Student();	# 인스턴스 2 (studentKim)
    		studentKim.studentName = "김유신";
    		studentKim.address = "경주";
    		
    		studentKim.showStudentInfo();
    		
    		System.out.println(studentHong);
    		System.out.println(studentKim);
    	}
    }
    

    Section 3. Javaインスタンスの概念


    1.例
    実際に実装されたクラスベースのオブジェクトを表し、各オブジェクトに独自のメンバー変数値があります.
  • の新しいキーワードを使用してインスタンス
  • を作成する.
    2.インスタンスとメモリ容量
    生成された
  • インスタンスは、ダイナミックメモリ領域(スタックメモリ)
  • に割り当てられる.
  • C/C++プログラマは、使用済みのダイナミックメモリ(free()/deleteを使用)
  • を無効にする必要があります.
  • Javaでは、Gabage Collectorが非周期メモリ
  • を回収する
  • は、1つのクラスから複数のインスタンスを作成し、一意のメモリアドレス
  • を有する.