20200831-TIL

나영원·2020년 8월 31일
0

T.I.L.

목록 보기
20/145
post-custom-banner

오늘 할 일

  • PairProgramming 풀기#5

    • 나머지 부분 구현해본 이후 3x3은 다른사람들 구현한것 보고 해야될 것같다
  • 프리코스 인강 예습

  • TiL 작성 & 블로그 업데이트

  • 질문사항 해결

오늘 한 일

  • 질문사항 해결 - 1시간 반

    • String은 immutable인데 String 변수에 +로 String 값 추가할 수 있던 것 왜인지 정리

      • 원래의 String변수 값이 변하는 것이 아닌 새로운 String 값을 생성함, 이전에 Stirng변수는 그대로 존재함 <=> 보통의 참조변수와는 다른점
  • 자식 객체에서 사용하는 부모객체의 변수x는 자식객체에 생성이 된걸까?(this.x?) 아니면 super.x인걸까?

    • 자식 객체 생성할때 부모객체도 함께 생성됨, 그럼으로 따로 자식객체에서 변수를 생성하지 않아도 바로 부모객체의 변수를 참조할 수 있게 됨, 즉 super.x가 맞는 것
  • 정젹 변수와 메서드를 객체로 어떻게 접근하는건지(접근방식)궁금함

    • 객체가 늦게 생성되기 때문에 정적변수와 메서드로 접근 타이밍이 가능하다는것까진 이해가됨. 근데 메모리 구조상 다른곳에 있는 객체에서 정적변수로 어떻게 접근하는지가 궁금해짐
  • 정적 변수와 객체 변수가 동일한 메서드명 가질 수 있나 궁금해서 실습함

    • 결론은 동일한 변수명 가질 수 없고 상속관계에서도 마찬가지이다 => 동일하게 되면 객체명으로 호출했을 때 구분할 수 있는 방법이 없음
    • 하지만 상속관계에서 동일한 이름의 정적 변수와 메서 가질 수는 있다 => 이때는 override가 아닌 그냥 같은 이름의 메서드이다
      • 각각 본인의 클래스 명으로 접근이 가능하다
    • 추가사항 : 자료 찾아보다가 정적변수의 오버라이딩은 안되지만 오버로딩이 된다는 것을 확인하고 실습함
    • 정리 = static 메소드는 오버로딩(ㅇ), 오버라이딩(x)
  • 예외 처리의 던지고 받는다는 단어에 의미에 대해 정리해서 이해한게 맞는지 강사님께 질문함

  • PairProgramming 풀기#5

    • checkQuitGame 메서드 작성

      • player.getKeyboardInput에서 Q || q입력시 pos(999,999) 입력 하게하고 chekQuitGame 에서 pos.x == 999면 isCorret를 출력하게함
      • 조건 문 통해 isCorret 이면 break로 lable을 통해 최상위 반복문을 빠져나가 바로 게임 결과가 뜨게만들었음
    • isCorret 변수 작성

      • 이게 잘한건가는 모르겠는데 checkQuitGame과 isFinished 에서 모두 flag역할 하는 변수 필요해서 두개다 만들기 싫어서 하나의 변수로 동일한 역할하게 만듬... 잘한건가 모르겟음
    • isfInished 메서드 작성

      • 기존의 구현한 메서드를 가져와서 현재 변수에 맞게 수정하고 테스트했더니 오류발생해서 오류 수정함
      • 코드가 너무길어서 짧게 줄이고 싶은데 생각보다 어려움, 지역변수를 활용하고 있는데 코드줄이자고 지역변수를 멤버변수로 만드는게 맘에걸림
        • socre를 멤버변수로 선언하고 checkScore()만들어서 중복코드를 줄여줌.
    • reset() 메서드 작성

      • 한 게임 끝날시 변수과 table을 초기화 시켜서 다시 게임을 플레이 할 수 있게 함
    • getWinner() 메서드 작성

      • checkQuitGame을 통해 최상위 반복문을 빠져나왔을 시 결과를 출력하고 게임을 끝내는 메서드를 작성함
    • 마지막으로 다시 check33메서드 작성

      • 어제 시간을 충분히 많이 투자했기 때문에 오늘 가볍게 살펴보고 바로 알고리즘 검색해서 적용할 계획

      • 조금 더 해보다가 33알고리즘 검색해서 또 한참 고민하다가 힌트를 얻어서 혼자서 구현해봄

      • 3시간 이상소모해서 33 가로와 세로 구현함.. 코드가 많이 길지만.. 와.... 구현한게어디야

        • 규칙성을 찾는게 너무어려웠다.. 가로만 3가지 패턴으로 코딩을함
        • 가로세로 왼대각 오른대각하면 12가지 패턴이되는데 너무길긴한데...일단 구현한걸로너무기쁨
      • 왼쪽 대각선 x축만 맞춰놓고 y축 에러나는거 보다가 마무리함

오늘 느낀 것

  • 시간을 아껴서 쓰려고 뽀모도로를 진짜 공부에 집중할때만누루고 톡하거나 뭐할때는 멈춰놨는데 그래서 그런지 집중력이 15개나 찍었다. 굿잡
  • 33을 혼자하다가 도저히 해결이 안되서 남의 코드보기보다는 알고리즘을 이해하려고 접근했는데 거기서 힌트얻어서 혼자 풀어보았다.
    • 앞으로도 알고리즘이 이해안될때는 알고리즘적으로만 접근하고 구현은 스스로 해나가는 연습을 통해 알고리즘은 외부에서 흡수를하더라도 구현은 스스로 할 수 있는 능력 키우자

내일 할일

  • 원격수업 듣고 복습

  • TiL 작성 & 블로그 업데이트

  • 질문사항 해결

  • PairProgramming 풀기#6 - 마무리될것같은데 내일풀이할수도있겟다

profile
배우는 개발 일기
post-custom-banner

0개의 댓글