データ融合JAVAアプリケーション開発者企業招聘連絡研修課程3日目課程まとめ


公告事項


変数-条件/繰返し-クラス順ではなく、クラスとその後(Spring,MySQL)を先に行うことで、実際のコンテンツの整理に混乱をもたらす可能性があるので、実際のコンテンツとは異なる順序で整理します.

05クラスとオブジェクト1


05-1オブジェクト向けプログラミングとクラス


生活の中で対象を探す


対象:学生、食事、学校、バスなど
方法:食べる、乗る、歩く

等級は何ですか。


クラスはオブジェクトの属性と機能をコードで実現します.
学生を例にとると、Studentというクラスを宣言することができ、属性は学号、名前、学年、住所などであってもよい.
public class Student {
	int studentID;
    int grade;
    String studentName;
    String address;
}

05-2レベルの概要


クラス属性を実装するメンバー変数


studentID、grade、studentName、addressなど.
オブジェクトのプロパティを表すメンバー変数.

クラス機能を実装する方法


学生オブジェクトに学生名または住所を出力する方法を作成できます.ここでは、2つのプロパティを出力する方法を作成します.
Student class
public class Student {
	...

    public void showStudentInfo() {
		System.out.println(studentName + ", " + address);
	}
}
MainClass
Student student = new Student();
		
student.address = "Seoul";
student.studentName = "Gil-Dong Hong";
student.showStudentInfo();
出力:
Gil-Dong Hong, Seoul

セットメニューは何ですか。


プロジェクトのソースコードを管理するために、パッケージはクラスファイルをバンドルできます.

05-3方法


関数とは?


機能の一連のコードを実行します.
簡単な例として、加算減算などの動作を実行するコード集合を関数化することができる.

関数の入力と戻り


関数には入力値と結果値があります.
関数に入力される変数をパラメータ、結果を返す値を戻り値と呼びます.

関数の定義


2つの整数を受け入れ、さらなる結果を出力する関数がある場合...
int add (int num1, int num2) {
	return num1 + num2;
}
関数が1から100の結果を返す場合...
int getSumofOnetoHundred() {
	int result;
    for (int i = 1; i <= 100; ++i) {
    	result += i;
    }
    return result;
}

関数を呼び出して値を返す


上記で定義したadd関数を実際に使用してみましょう.
public class MainClass {
	public static void main(String[] args) {
    	int num1 = 10;
        int num2 = 20;
        
        System.out.println(add(num1, num2));
    }
    
    public static int add (int num1, int num2) {
    	return num1 + num2;
    }
}
出力:
30

関数呼び出しとスタックメモリ


関数からvalueとしてパラメータを取得し、num 1、num 2の空間値と結果値を返すためにパラメータの値をコピーすると、これらのパラメータのメモリが選択されます.
関数呼び出しが完了しmainに戻ると、メモリはスタックから解放されます.

関数の利点


同じコードを複数回作成する必要がなく、読み取りやすく、関数を呼び出すのが便利です.

05-4クラスとインスタンス


クラス使用とmain()関数


main()関数を呼び出してJVM上のプログラムを起動します.

newリザーブ語でクラスを作成する

Student student = new Student();
このように生成されたクラスをインスタンスと呼ぶ.

インスタンスと参照変数


参照変数を使用して、インスタンスのメンバー変数とメソッドを参照します.
System.out.println(student.studentName);
System.out.println(student.getStudentAddress());

インスタンスとバックメモリ

Student student = new Student();
前述したように、インスタンスを作成すると、hipメモリにインスタンスが作成されます.
studentは、hipmemoryのインスタンスを指す領域変数です.

05-5ジェネレータ


作成者とは?


PersonとPersonTestのクラスの例を次に示します.
Person.java
public class Person {
	int age;
    String name;
}
PersonTest.java
...
Person per = new Person();//生成者
...
Person.Javaでジェネレータを個別に作成しない場合は、デバッガが個別に作成されます.

作成者の作成


名前をパラメータとするジェネレータを作成すると...
Person.java
public class Person {
	int age;
    String name;

    public Person (String name) {
    	this.name = name;
    }
}
このようなパラメータの作成者を作成した場合は、パラメータを渡さない作成者(デバッガ)を別途配置する必要があります.

ジェネレータ過負荷


異なる受信パラメータを使用して、同じ名前の作成者を再ロードできます.
...
public Person (String name) {
	this.name = name;
}

public Person (String name, int age) {
	this.name = name;
    this.age = age;
}
...

05-6参考資料


学生が選択した科目の名前と対応する科目の点数を別のクラスに減算する学生クラスを作成します.
Subject.java
public class Subject {
	String SubjectName;
    int scorePoint;
}
Student.java
public class Student {
	int studentID;
    String studentName;
    Subject korean;
    Subject math;
}
このように表現すれば、各科目の名前と点数を別々に発表する必要がなく、清潔で後で管理しやすい.

05-7情報を隠す


アクセス制御者の概要


以前に宣言されたメンバー変数は共通であり、外部から直接アクセスできますが、アクセス制御者をprivateに変更し、外部公開のみの方法でアクセスするように変更しました.

get()、set()メソッド


例えばPersonクラス...
Person.java
public class Person {
	private int age;

    public void setAge(int age) {
    	this.age = age;
    }
   
    public int getAge() {
    	return this.age;
    }
}

隠し情報とは?


メンバー変数に直接アクセスする場合は、メンバー変数で許容されない範囲の値(たとえば、カレンダの最大日数は31日ですが、誤って100などが入力されているなど)を防ぐために、メンバー変数をプライベート化し、共通の方法でのみアクセスすることが望ましいです.