-8장. 패키지와 접근 제어
너무 많은 클래스를 사용해서 중복되는 이름이 있을 수 있음.
Kosta.op 조금 더 많이 식별하기 위해 : 회사에서는 5~6개 사용함. 회사 -> 더 private한 코드를 작성하고 싶음.

다른 패키지에서 사용하기 위해서는
import _____;라고 써야함. java.lang만 빼고 -> 많이 쓰는 아이들 (stringbuffer)
패키지가 다른 클래스는 서로 다른 클래스이다.
클래스를 선택할때 패키지를 확인해야 한다.
*UML
Agile(문서 ->개발을 하자)
우리나라 : 개발 ->설계
UML : 세계의 다양한 사람들과 커뮤니케이션을 할 수 있음. (전세계의 표준으로 사용됨.)
UML의 3가지 목적 : 스케치, 청사진, 프로그래밍 언어
*Class Diagram
*Use Case Diagram
*Sequence Diagram
-(접근제어자) : private
SearchEngine, SearchRequest : int, Strng역할
-연관(Associations) - 프로퍼티
여러 종류의 객체를 만들기 위해 여러 종류의 클래스가 필요함. 클래스끼리 연관관계를 가지고 있어야함 -> 그래야 상호작용하고 객체지향프로그래밍을 할 수 있음.
Manager-phoneinfo 연관관계 Manager클래스에서 phoneinfo정보를 여러개 사용함. Manager -----> Phoneinfo
Person <-----Car (렌트카) 차에서 사람객체를 찾음.
-관계(Relationship)

의존과 연관을 구분합시다.
<연관관계> = 멤버변수 -> 클래스타입으로 선언되어 있다.

비디오 미션
public class Video {
private String number;
private String title;
private String act;
public Video() {}
public Video(String number, String title, String act) {
super();
this.number = number;
this.title = title;
this.act = act;
};
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAct() {
return act;
}
public void setAct(String act) {
this.act = act;
}
}
public class GeneralMember {
private String ID;
private String name;
private String address;
private Video borrowvideo; //연관관계
public GeneralMember() {}
public GeneralMember(String ID, String name, String address) {
super();
this.ID = ID;
this.name = name;
this.address = address;
}
public void print() {
System.out.println("회원의 아이디 : " + ID);
System.out.println("회원의 이름 : " + name);
System.out.println("회원의 주소 : " + address );
System.out.println("회원이 대여한 비디오 번호 : "+ borrowvideo.getNumber());
System.out.println("회원이 대여한 비디오 제목 : "+ borrowvideo.getTitle());
System.out.println("회원이 대여한 비디오 주인공 : "+borrowvideo.getAct());
}
public String getID() {
return ID;
}
public void setID(String iD) {
this.ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Video getBorrowvideo() {
return borrowvideo;
}
public void setBorrowvideo(Video borrowvideo) {
this.borrowvideo = borrowvideo;
}
}
public class Main {
public static void main(String[] args) {
Video v1 = new Video("1","트랜스포머3","서봉수");
Video v2 = new Video("2","쿵더팬더2","지성민");
GeneralMember m1 = new GeneralMember("aaa","홍길동","동탄");
GeneralMember m2 = new GeneralMember("bbb","김철수","서울");
m1.setBorrowvideo(v1);
m2.setBorrowvideo(v2);
m1.print();
m2.print();
}
}

---야구게임
Main
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BaseBall baseBall = new BaseBall();
Referee referee;
int arr[] = new int[3];
int count = 0;
do{
System.out.println("야구게임 시작");
System.out.print("입력: ");
String str = sc.nextLine();//123
arr[0] = Integer.parseInt(str.substring(0, 1));
arr[1] = Integer.parseInt(str.substring(1, 2));
arr[2] = Integer.parseInt(str.substring(2, 3));
referee = baseBall.judge(arr);
System.out.println(referee.getStrike() + "S " + referee.getBall() + "B");
count++;
}while(referee.getStrike() < 3);
System.out.println(count + "번만에 성공");
}
}
BaseBall
public class BaseBall {
private int hidden[];
Referee referee;
public BaseBall(){
init();
}
public void init() {
hidden = new int[3];
referee = new Referee();
hidden[0] = (int)(Math.random()*9)+1;
do{
hidden[1] = (int)(Math.random()*9)+1;
}while(hidden[0] == hidden[1]);
do{
hidden[2] = (int)(Math.random()*9)+1;
}while(hidden[0] == hidden[2] || hidden[1] == hidden[2]);
for(int n : hidden){
System.out.print(n + " ");
}
}
public Referee judge(int[] input) {
referee.setStrike(countStrike(input));
referee.setBall(countBall(input));
return referee;
}
public int countStrike(int[] input) {
int strike = 0;
for(int i=0;i<3;i++){
if(hidden[i] == input[i]){
strike++;
}
}
return strike;
}
public int countBall(int input[]){
int ball = 0;
for(int i=0;i<3;i++){
if(hidden[i] == input[(i+1)%3]){
ball++;
}else if(hidden[i] == input[(i+2)%3]){
ball++;
}
}
return ball;
}
}
Referee
public class Referee {
private int strike;
private int ball;
public Referee() {}
public int getStrike() {
return strike;
}
public void setStrike(int strike) {
this.strike = strike;
}
public int getBall() {
return ball;
}
public void setBall(int ball) {
this.ball = ball;
};
}
★주말에 해야할 것
(복습) -객체에 대한 이해와 활용
-
수업예제 repeat,
-
교재정리(연습문제)
(문제)
갤러그게임