package ch01_basic;

/*
 * 객체 지향 프로그래밍 ( OOP : Object Oriented Programming )
 * → class 를 사용해서 객체를 생성하고, 만들어진 객체를 사용해서 하나의 프로그램을 만드는 것.
 * 
 * class
 * → 객체를 만들기 위한 설계도.
 * → 객체에 속성과 기능을 코드로서 구현한 것.
 * 
 * 객체 ( Object )
 * → class를 사용하여 만들어진 것, instance라고도 부름.
 * → 하나의 class로 여러개의 instance를 생성할 수 있음.
 * 
 * class 구성
 * → 멤버 필드 : 변수(instance 변수) -> 객체 고유의 데이터.
 *   멤버 메서드 : 객체 기능, 동작 구현. 
 * 
 */
// public 접근제한자는 파일 명과 동일한 class 명에만 적용가능.
class Human {
	// 멤버 필드
	String name;
	int age;
	
	// 멤버 매서드
	void info() {
		System.out.println("이름 : " + name);
		System.out.println("나이 : " + age);
	}
	
	void run() {
		System.out.println(name + "이가 달리기를 합니다.");
	}
}

public class ExClassBasic {

	public static void main(String[] args) {
		
		Human manA;
		manA = new Human();
		manA.name = "manA";
		manA.age = 20;
		System.out.println("이름 : " + manA.name);
		System.out.println("나이 : " + manA.age);
		
		System.out.println();
		
		Human manB = new Human();
		manB.name = "manB";
		manB.age = 30;
		manB.info();
		manB.run();
	}

}
package ch01_basic;
import java.util.Scanner;

public class Monitor {
	
	String company; // 제조회사
	String size;    // 모니터 크기
	String panel;	// 패널 형태
	
	void setInfo(String _company, String _size, String _panel) {
		company=_company;
		size=_size;
		panel=_panel;
	}
	
	void inputInfo() {
		Scanner sc = new Scanner(System.in);
		System.out.print("제조회사 입력 > ");
		company = sc.next();
		System.out.print("화면크기 입력 > ");
		size = sc.next();
		System.out.print("패널형태 입력 >");
		panel = sc.next();
		sc.close();
	}

	void info() {
		System.out.println("--- 모니터정보 ---");
		System.out.println("제조회사 : " + company);
		System.out.println("화면크기 : " + size + "인치");
		System.out.println("패널형태 : " + panel);
	}
	
	
}

-------------------------------------------------------------------------------
package ch01_basic;

public class MonitorManager {
	
	public static void main(String[] args) {
		
		// 동일한 패키지에 Monitor 클래스를 만들어놔서, 사용가능.
		Monitor proA = new Monitor();
		proA.company = "LG";
		proA.size = "27";
		proA.panel = "평면";
		proA.info();
		
		System.out.println();
		
		Monitor proB = new Monitor();
		proB.setInfo("삼성", "27", "커브드");
		proB.info();
		
		System.out.println();
		
		Monitor proC = new Monitor();
		proC.inputInfo();
		proC.info();
		
	}
}
package ch01_basic;
import java.util.Scanner;

public class Book {
	/*
	 * Book class 를 정의하고, BookManager class 에서 테스트 하세요
	 * - 책제목, 지은이, 진열위치, 가격의 관리가 가능합니다
	 * 
	 */
	String Book_name;
	String person;
	String where;
	int cost;
	
	void setInfo(String _Book_name, String _person, String _where, int _cost) {
		Book_name=_Book_name;
		person=_person;
		where=_where;
		cost=_cost;
	}
	
	void info() {
		System.out.println("----- 책 정보 -----");
		System.out.println("책제목   : " + Book_name);
		System.out.println("책지은이 : " + person);
		System.out.println("진열위치 : " + where);
		System.out.println("책 가격  : " + cost + "원");
	}
	
	void inputInfo() {
		Scanner sc = new Scanner(System.in);
		System.out.print("책 제목을 입력하세요 > ");
		Book_name=sc.next();
		System.out.print("책 지은이를 입력하세요 > ");
		person=sc.next();
		System.out.print("진열위치를 입력하세요 > ");
		where=sc.next();
		System.out.print("책 가격을 입력하세요 > ");
		cost=sc.nextInt();
		sc.close();
	}
}

-------------------------------------------------------------------------------

package ch01_basic;

public class BookManager {

	public static void main(String[] args) {
		Book bk = new Book();
		
		bk.Book_name = "자바";
		bk.person = "홍길동";
		bk.where = "B-09";
		bk.cost = 28000;
		bk.info();
		
		System.out.println();
		
		bk.setInfo("파이썬", "김민수", "C-11", 25000);
		bk.info();
		
		System.out.println();
		
		bk.inputInfo();
		bk.info();
		
	}

}
package ch01_basic;

public class Car {
	/*
	 * Car class 를 정의하고, CarManager class 에서 테스트 하세요
	 * - 차량의 제조회사, 모델명, 색상, 가격의 관리가 가능합니다
	 */
	String company;
	String model;
	String color;
	int cost;
	
	void setInfo(String _company, String _model, String _color, int _cost) {
		company=_company;
		model=_model;
		color=_color;
		cost=_cost;
	}
	
	void info() {
		System.out.println("----- 차 정보 -----");
		System.out.println("제조회사 : " + company);
		System.out.println("모델     : " + model);
		System.out.println("색상     : " + color);
		System.out.println("가격     : " + cost + "만원");
	}
}
-------------------------------------------------------------------------------
package ch01_basic;

public class CarManager {
	
	public static void main(String[] args) {
		Car car = new Car();
		car.setInfo("현대", "아반떼", "블랙" , 1000);
		car.info();
	}
}