728x90

-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;

        };

        

        

}

 

 

★주말에 해야할 것

 

(복습)        -객체에 대한 이해와 활용 

  1. 수업예제 repeat, 

  2. 교재정리(연습문제)

 

(문제)

        갤러그게임

 

 

 

 

 

728x90

+ Recent posts