[Java]オブジェクトとクラス


🤔 対象とは?


特定の抽象データの単位をオブジェクトとして表します.
人、自動車などの事物、および注文、管理、生産などの状態と行為が規定できるものは、すべて客体で表現することができる.

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


オブジェクトベースのプログラミング.
オブジェクトの定義と機能を実現し、オブジェクト間のコラボレーションを実現します.
プロセス向けのプログラミングに比べて、プログラムは柔軟で変更しやすいため、大規模なプロジェクトの開発によく使われています.

オブジェクト向けプログラミング開発の3段階


1.クラス設計
2.設計されたクラスを使用してオブジェクトを作成する
3.生成されたオブジェクトの使用
main()メソッドのみを作成し、クラスを実行に使用します.
main()メソッドのないクラスは、オブジェクト作成中に使用する必要があります.

😉 クラスとは?


オブジェクトをコードで表現します.
オブジェクト向けプログラミングの最も基本的な要素.

1)メンバー変数(member variable,attribute)


オブジェクトが持つ属性は変数で表されます.
口座情報を格納するために、それぞれ格納する項目.
Accountクラスには、勘定科目番号、勘定科目所有者名、残高メンバー変数があります.
public class Account {
	
	//멤버 변수 = 필드(객체생성될때, 객체가 소멸) => 멤버 변수는 초기화를 안해줘도 된다
	String accountNo; //계좌번호
	String ownerName; //계좌주
	int balance; //잔액
}

2)方法(method)


客体の機能を体現している.
上記で生成したアカウント情報により機能を実現するために、入力、出力、アカウント情報を生成する方法がある.

public class Account {
	
	//기능 구현 => 메소드로 표현
	//입금하다.
	public void deposit(int amount) {
		balance += amount;
	}
	
	//출금하다.
	public int withdraw(int amount) {
		if(balance < amount) {
			return 0;
		}
		balance -= amount;
		
		return amount;
	}
	
	//객체의 내용을 출력하는 메소드
	public void print() {
		System.out.println("계좌번호: "+accountNo);
		System.out.println("계좌주: "+ownerName);
		System.out.println("잔액: "+balance);
		System.out.println("=========================");
	}
}

1つのjavaファイルには複数のクラスがありますが、共通クラスは1つしかありません.共通クラス名とjavaファイル名は同じでなければなりません.

😋 クラスとオブジェクトを利用して情報を出力する


プライマリ・メソッドを個別に構成した後、前のメンバー変数、メソッドを記述したときに作成した学生オブジェクトを使用して、値をオブジェクトに代入して情報を出力しようとします.

Account.java

public class Account {
	//(상태 : 계좌번호, 계좌주, 잔액 => 변수     기능 : 입금하다. 출금하다. => 메소드)
	
	//멤버 변수 = 필드(객체생성될때, 객체가 소멸) => 멤버 변수는 초기화를 안해줘도 된다
	String accountNo; //계좌번호
	String ownerName; //계좌주
	int balance; //잔액
	
	//기능 구현 => 메소드로 표현
	//입금하다.
	public void deposit(int amount) {
		balance += amount;
	}
	
	//출금하다.
	public int withdraw(int amount) {
		if(balance < amount) {
			return 0;
		}
		balance -= amount;
		
		return amount;
		
	}
	
	//객체의 내용을 출력하는 메소드
	public void print() {
		System.out.println("계좌번호: "+accountNo);
		System.out.println("계좌주: "+ownerName);
		System.out.println("잔액: "+balance);
		System.out.println("=========================");
	
		
	}
	

}

AccountMain.java (main class)

public class AccountMain {
	
	public static void main(String[] args) {
		//객체를 생성(Account)
		//new Account();// 객체가 생성은 되었지만 생성된 곳을 모른다(사용할 수 없다.)
		
		Account account1,account2;//데이터 타입 -> 클래스 타입(레퍼런스 타입) -> 생성된 객체의 주소값을 담기위한 변수
		account1 = new Account();//인스턴스화(객체생성) account1 => 인스턴스 변수
		account2 = new Account();
		
		//인스턴스변수는 도트(.)를 통해서 객체를 접근해서 사용할 수 있다.
		//객체 초기화
		account1.accountNo = "11111-11111";
		account1.ownerName = "홍길동";
		account1.balance = 10000;
		
		account2.accountNo = "22222-22222";
		account2.ownerName = "박길동";
		account2.balance = 5000;
		
		account1.print();
		account2.print();
		
		
		
		
	}
}

以前に作成したAccountクラスを使用してオブジェクトを作成するには、Account 1、Account 2に設定します.
newキーを使用してオブジェクトを作成します.
		Account account1,account2;
		account1 = new Account();
		account2 = new Account();
生成されたオブジェクトを初期化して置き換えます.
		//인스턴스변수는 도트(.)를 통해서 객체를 접근해서 사용할 수 있다.
		//객체 초기화
		account1.accountNo = "11111-11111";
		account1.ownerName = "홍길동";
		account1.balance = 10000;
以前に作成した勘定科目情報出力メソッドを使用して勘定科目情報を出力します.
		account1.print();
		account2.print();

結果