★公費支援9日目(対象)★


1.対象
この文章では、授業で学んだオブジェクトに関する概念を整理し、オブジェクトを作成し、クラスを通じてオブジェクトを呼び出す方法を作成します.
public class MyClass01 {
	
	//객체 생성
	//객체의 메소드 호출
	public String name;
	public int age;
	

public void introduce() {
		this.name = "메소드 안에서 만든 이름 ㅎㅋ";//this: 현재 객체 (public string name에 있는 name을 가르키는 거임)
		System.out.println("안녕 나는 MyClss01 타입이야");
		System.out.println("내 이름은 "+ name);
		System.out.println("내 나이는 "+ age);
	}
	
public void myMethod01() {
		System.out.println("MyClass01의 mymethod01 호출됨 ...");
		
	}
	
	
	
public void myMethod02() {
		System.out.println("MyClass의 myMethod02 호출됨 ...");
		
	}
}
上に作成したthis
this:現在のオブジェクト(共通string nameのname)
ゾーン変数vsフィールド(==インスタンス変数、グローバル変数、クラス変数、メンバー変数)
-同じ名前を使用できます.
-メソッドで領域変数を選択します.
-this.変数名として、フィールドが選択されます.
import practice.MyClass01;

public class Run {
	public Run () {}

	public static void main(String[] args) {

		System.out.println("Run 클래스의 main 메소드 호출됨...");
		System.out.println("=========================");
		
		//객체 생성(MyClass01 클래스 파일을 이용해서 객체 생셩)
			MyClass01 mc01 = new MyClass01(); //클래스가 mc01이라는 참조변수의 타입이 될 수 있다. mc01은 main메소드 내부안에 있는 변수이므로 지역변수ok.
			
		//객체의 메소드 호출(MyClss01 클래스 파일의 myMethod01 호출)
			mc01.myMethod01(); //.은 해당 객체에 접근하기 위함이다. mc01이라는 참조변수를 통해 .객체를 생성하고 그 주소값이 mc01에 들어가서 mc01(리모콘)을 통해 객체 myMethod에 접근하겠다.
			mc01.myMethod02(); //한 객체를 통해 여러가지 메소드를 호출할 수 있다. (myMethod01, myMethod02```)
		
		
		//객체생성
		MyClass01 mc = new MyClass01();
		mc.age = 20;
		mc.name = "홍길동";
		mc.introduce();

		
	}

}
MyClass 01クラスファイルの主なメソッドを実行するRunクラスファイルを作成し、参照変数9(.)を使用します.もしあなたが私を呼んだら.

Runクラスのマスターメソッドが呼び出されました...


=========================
MyClass 01のMymethod 01を呼び出しました...
MyClassのMyMethod 02を呼び出しました...
こんにちはMYCLSS 01タイプです
私の名前は方法の中で創造した名前ですハハ
私の年齢は20歳です.
こんな結果になった.
.
.
.
.
🚩 学習対象者が知っていることは、次のことです.
-ゾーン変数stack
-インスタンス変数(メンバー変数)heap
-クラス変数(static)
-クラス-->メンバー変数
-メソッドの内部-->領域変数(メソッドの実行時にメモリに作成され、メモリが閉じたときに消えます).
また、オブジェクトとインスタンスは同じ概念であり、オブジェクトがheapメモリに割り当てられていることがわかります.
2.オブジェクトサービスを使用してゲームを作成する
1週間前、私はコントロールドアでじゃんけんゲームとバックシュートゲームをしました.対象を利用して西道よりも複雑なゲームを簡潔にすることができます.
(1)上下ゲーム
import java.util.Random;
import java.util.Scanner;

public class GameManagerUpDown {
	
	public final String gameName = "업다운";
	
	public void gameStart() {
		System.out.println(gameName + " 게임시작 ~~~");
		
		// 컴퓨터가 랜덤 숫자 하나 생각하게 하고
		// 정수 하나 받고
		// 업다운 얘기해주고
		// 틀리면 다시하게 하고
		// 맞추면 정답입니다 
		
		//랜덤숫자
//		int a = (int) ((Math.random()*100) + 1);
		
		
		int a = new Random().nextInt(50);
//		Random randomObject = new Random();
//		int r = randomObject .nextInt(50);
		
		
		//입력
		Scanner sc = new Scanner(System.in);
		
		//업다운 판단
		while(true) {
			int input = sc.nextInt();
			if(input > a ) {
				System.out.println("다운");
			} else if( input < a) {
				System.out.println("업");
			} else if( input == a ) {
				System.out.println("정답입니다.");
			} else {
				System.out.println("다른 수를 입력해주세요");
			}

	}

	
	}
	
}

  • 制御ゲートを介してコンピュータのランダム値を受信すると、Math.random関数を用いて,二重値をランダム値に直接変換した.

  • オブジェクトを作成すると、
    int a = new Random().nextInt(50);
    // Random randomObject = new Random();
    // int r = randomObject .nextInt(50);

  • このようなオブジェクトを作成すると,より異なる方法でランダム値が得られやすくなる点が斬新である.
  • (2)石はさみゲームとup&downゲームのミックス
    import java.util.Random;
    import java.util.Scanner;
    
    public class GameManagerRcp {
    	
    	public final String gameName = "가위바위보";
    			
    	public void gameStart() {
    		System.out.println(gameName + " 게임 시작 ~~~");
    		
    		//가위바위보 게임
    		
    		//컴퓨터 패 선택
    		int comNum = new Random().nextInt(3) + 1;
    		String com = "";
    		
    		switch(comNum) {
    		case 1 : com  = "가위"; break;
    		case 2 : com  = "바위"; break;
    		case 3 : com = "보"; break;
    		default : System.out.println("errer !!!");
    		}
    		
    		
    		
    		//사용자 입력
    		Scanner sc = new Scanner(System.in);
    		String user = sc.nextLine();
    		
    		System.out.println("com: "+com);
    		System.out.println("user: "+user);
    		
    		
    		//판단
    		//문자열끼리 비교하려면, 문자열.equals(문자열);
    		if(com.equals("가위")) {
    	         if(user.equals("가위")) {
    	            System.out.println("비김");
    	         }else if(user.equals("바위")) {
    	            System.out.println("사용자 승");
    	         }else {
    	            System.out.println("컴퓨터 승");
    	         }
    	      }
    	      else if(com.equals("바위")) {
    	         if(user.equals("가위")) {
    	            System.out.println("컴퓨터 승");
    	         }else if(user.equals("바위")) {
    	            System.out.println("비김");
    	         }else {
    	            System.out.println("사용자 승");
    	         }
    	      }
    		
       }//main
    }//class
    Runクラスで上記の結果を呼び出します.
    public class RunRcp {
    
    	public static void main(String[] args) {
    
    		GameManagerRcp gm = new GameManagerRcp();
    		gm.gameStart();
    	}
    
    }


    ゲームの動作を確認できます.
    (3)カフェサービスの利用
    public class CounterEmployee {
    	
    	//카운터 직원
    	
    	
    	/*/
    	 * <객체지향>
    	 * -닉네임
    	 * -시급 :시급 9천원
    	 * -주문 받는 기능
    	 * -계산 기능
    	 * 
    	 */
    	public String nick;
    	public int money;
    	
    	
    	public void order() {
    		System.out.println("주문받기 ~~~");
    		
    	}
    	public void calc() {
    		System.out.println("계산하기 ~~~");
    		
    	}
    	
    }
    public class KitchenEmployee {
    	
    	//주방직원
    	
    	/*/
    	 * -닉네임
    	 * -시급: 만원
    	 * -음료 제조 기능
    	 * -음료 건내는 기능
    	 * 
    	 * 
    	 */
    	public String nick;
    	public int money;
    	
    	
    	public void cook() {
    		System.out.println("음료제조 ~~~");
    	}
    	public void complete() {
    		System.out.println("음료완성 ~~~");
    	}
    	
    	
    	
    }
    これら2つのクラスはRunクラスによって呼び出される.
    import cafe.employee.CounterEmployee;
    import cafe.employee.KitchenEmployee;
    
    public class Run {
    
    	public static void main(String[] args) {
    		
    		//객체의 메소드 사용
    		//객체의 데이터 (변수) 접근 가능
    
    		
    		System.out.println("cafe open ~~~");
    		System.out.println("======================");
    		
    		CounterEmployee ce = new CounterEmployee();
    		KitchenEmployee ke = new KitchenEmployee();
    		
    		ce.order();
    		ce.calc();
    		ke.cook();
    		ke.complete();
    		
    		ce.nick = "홍길동";
    		ke.nick = "베철수";
    				
    		System.out.println("카운터 직원 닉네임 : " + ce.nick);
    		System.out.println("주방 직원 닉네임 : " + ke.nick);
    		
    		
    		//기본형 자료형의 경우 기본값이 false ,0 ,0.0f 등등이 있지만 참조형 변수는 기본값이 null
            //(0은 휴지심만 남아있는 것, null 휴지심조차 없이 아무것도 없는 상태이다.)
    	}
    
    }
    cafe open ~~~
    ======================
    주문받기 ~~~
    계산하기 ~~~
    음료제조 ~~~
    음료완성 ~~~
    카운터 직원 닉네임 : 홍길동
    주방 직원 닉네임 : 베철수
    コールがよく見えます.