20182301 2019-2020-1 "데이터 구조와 객체 지향 프로그래밍,"최초의 사주 학습 요약

20182301 2019-2020-1 "데이터 구조와 객체 지향 프로그래밍,"최초의 사주 학습 요약

내용 요약 학습

  • 핵심을 나타내는 객체 지향 프로그래밍의 클래스가, 국가와 객체의 동작을 정의한다 정의
    • 인쇄에 println 메서드에 전달 된 객체와 문자열 개체에 연결된 toString 메소드는, 객체가 자동으로 호출 할 때 방법을 toString
public String toString()
{
    String result = Integer.toString(faceValue);
    return result;
}
  • 당신이 변수를 사용할 수있는 변수 종속 변수 선언의 범위, 범위 결정
  • 꾸러미
    • 코드는 호출 할 수 있습니다, 변수 객체에 직접 액세스를 허용하지 않습니다
    • 가시성 수정 액세스 제어 클래스 멤버. 공공 민간 및 보호
    • 액세스 방법 : getX, 설정 방법 : setX,이를 통해 고객이 데이터를 관리 할 수 ​​있습니다
  • 반환
    • 방법 지정된 반환 값 유형 헤더가 될 수있다 : 기본 타입, 클래스 이름, 예약어 무효
    • 이 방법은 리턴 값 동일한 유형의 소정의 방법 헤드의 유형을 리턴해야
    • 하나의 방법은 메소드 본문의 마지막 줄에 문을 반환해야
  • 매개 변수
    • 메소드를 호출 할 때 인수는 매개 변수로 복사
    • 각 별명 방법 및 매개 변수 인수
  • 생성자
    • 건축 방법은 반환 값이나 심지어 공백을 가질 수 없습니다
    • 그것은 새로 만든 객체를 초기화하는 데 사용
  • 정적 변수
    • 예 : 개인용 정적 INT 카운트 = 0;
    • 정적 변수는 클래스의 모든 인스턴스가 공유
    • 방법 내에서 선언 된 지역 변수는 정적 일 수 없습니다
  • static 메소드
    • 예 : 사용 Math 클래스의 메서드는 정적
    • 인스턴스화 할 필요없이 공공 정적 무효 메인 (문자열 []에 args) 정적의 사용, 그래서 통역에 의해 실행 메인 프로그램.
    • 정적 방법은 특정 개체에 작동하지 않습니다
    • 정적 메소드는 정적 변수 나 로컬 변수를 액세스 할
  • 집합
    • 형성된 집합체 오브젝트의 다른 목적은 보유-관계
    • 중합는 의존의 특별한 유형
  • 이 참조
    • 예 : 만약 (this.positise == pieces.positise) 결과 = 장애;
    • 이 참조 위치를 나타내는 데 사용되는
    • 같은 이름의 생성자 매개 변수에 해당하는 인스턴스 변수를 구별하는 데 사용됩니다 (책 P128 참조)
  • 메소드 오버로딩 : 여러 방법이 같은 메소드 이름 만 다른 매개 변수 목록을 사용할 수 있습니다
    • 메소드가 호출 될 때, 제어 흐름은 코드에 정의 된 방식으로 전송 될
    • 매개 변수의 수 및 주문 유형으로 구분 오버로드 방법 버전
    • 예 : 다른의 번호와 같은 매개 변수의 유형,
  • 테스트
    • 감사 : 디자인 또는 코드를 평가하기 위해 사용되는 기술
    • 결함 테스트 : 오류가 발견 될 수 있으며, 블랙 박스 테스트
    • 단위 테스트는 각 테스트를위한 테스트 케이스를 만들
    • 통합 테스트 : 전체 테스트
    • 시스템 테스트 : 관찰 필요
    • 개발 테스트 주도 : 첫 번째 테스트 케이스를 작성하기 위해, 다음의 소스 코드

교과서 학습과 문제 해결 과정

  • 질문 1 : 차이가 추상 클래스와 인터페이스 무엇
  • 질문 : 1 용액에 기록 된 특정하지 않고 추상적 인 방법. 또는 추상적으로, 또는 인스턴스화
    • 추상 클래스가 아닌 추상적 인 방법이 존재할 수만큼 인터페이스의 정의로, 인터페이스 메소드의 모든 추상 클래스의 방법이 될 것이다, 인터페이스 메소드는 추상적 인 기본 방법이된다하면 추상적를 작성하지 않는 경우에도 그것을 추상적이다
    • 인터페이스는 추상 클래스는 인터페이스를 확장하는 추상 클래스이다라고 할 수있다
    • 추상 클래스는 멤버 변수와 멤버 방법 개인을 가질 수 인터페이스 방법이 모두 기본값으로 수정되었습니다 : 방법의 공공 추상 형식을
    • 인터페이스 디스플레이 등등 AA, BB, CC를 확장 ... 그리고 다음 디스플레이 AA 디스플레이 인터페이스를 구현하는 클래스를 달성 할 수 있도록 : 클래스는 클래스가 여러 인터페이스를 구현할 수있는 추상 클래스를 상속 할 수 있습니다, 인터페이스는 다중 상속의 예를 얻을 수 있습니다 BB와 CC의 인터페이스
    • , 인터페이스 메소드가 모두 다시 작성해야합니다 공공 및 모든 공공 방법이며, 비 추상 메소드 추상 클래스는 상속하도록 선택할 수 있습니다.
  • 질문 2 : 새로운 변수를 생성하는 방법에는 여러 가지가 있습니다
  • 문제 2 해결 방법 :
    • 새로운 키워드. 포장 공장 패턴이 방식이다;
    • 클래스 인터페이스 복제, 복제 인스턴스를 구현합니다. 원형 모델 적용 예이고;
    • 클래스 로더, newInstance와 함께. 반사 예 자바 리플렉션 : 스프링 의존성 주입, 동적 프로그래밍 부 에이전트
    • 클래스, allocateInstance 방법의 인스턴스를 생성 Sun.misc.Unsafe. (오라클 Java9에서 안전하지 않은 클래스를 제거 할 계획이다 상기 자바 클래스를 직접 안전하지 않은 관리는 사용하지 않는 것이 좋습니다)
    • 인터페이스의 구현 클래스의 직렬화의 IO를 통해 직렬화 흐름을 얻을 클래스, 인스턴스를 읽을 수 있습니다.
    • 만약 정적 변수의 직접 사용
  • 질문 3 : 로컬 및 인스턴스 데이터의 차이점은 무엇입니까?
  • 문제 :(에 그림 3 솔루션 :

  • 질문 4 : 상호 작용이 무엇입니까?
  • 질문 4 해결 방법 :
    • 생성자 전송
    • 방법 getX와 setX으로
    • 인터페이스

그 과정에서 해결 코드 디버깅 및 문제

  • 질문 1 : 우리가이 필요한 이유 동전 (아래 참조),이 때문에 isHead 왜 안로 쓰기?

  • 1 문제 해결 : 플립있어서, 초기 상태로 랜덤 동전;
  • 질문 2 : 계정 무료, 왜 사용합니까?

  • 문제 2 해결 방법 : 나는 비용을 진행할 수, 이것은 초기 크레딧 제한해야한다고 생각

코드 호스팅

지난 주 시험 잘못된 질문 요약

  • 객체의 캡슐화 (封装) 유지하기 위해, 우리는 어떤 일을 제외하고 다음의 모든 것을 할 것인가?
    • .Make 인스턴스 데이터 개인
    • B .Define (액세스 데이터 인스턴스를 조작하는 방법 클래스의 화질) 인스턴스 데이터에 액세스하여 조작 할 수있는 클래스의 메소드
    • C .Make 클래스 대중의 방법
    • D .Make 클래스 최종
    • 위의 보존 캡슐화의 E .ALL
    • 오른쪽 : D
    • 원인 : 패키지 클래스 데이터와 상기 데이터를 조작하기 위해 필요한 방법이 포함되어 있음을 의미한다. 적절하게 패키지를 유지하기 위해 데이터 인스턴스 클래스 외부로부터 직접 액세스하지 않아야 인스턴스 데이터는 비공개이며 액세스 데이터 인스턴스를 조작하는 메소드를 정의한다. 다른 클래스 오브젝트를 사용할 수 있도록 또한, 액세스 데이터 인스턴스 및 동작 방법이 개시된다. 에 관계없이 패키지의 상속을 제어하는 ​​"최종"단어를 예약.
  • 방법은 호출의 다음과 같은 메소드 호출의 순서를 고려 :. 주요 M1 통화, M1은 M2 통화 (M2)는 m3를 호출 한 후 m2는 M4를 호출 m3는 M5 호출 M4 방금 종료 된 경우, 실행이 재개 어떤 방법 (다음 순서를 고려 :? 주님을 m4의 호출 후 m2 m3, m2 전화, M1, M1은 M2 통화를 호출 m3은 M5를 호출합니다. M4 방금 종료 된 경우, 방법은 실행을 재개 할 것)
    • m2
  • 그 범위가 A (N)으로 알려져 선언 된 방법에 한정되는 변수 (A 변수의 범위에있어서의 선언에 한한다) N A (호출)
    • .parameter (파라미터 계수)
    • B .global 변수 (전역 변수)
    • C .local의 변수 (로컬 변수)
    • D .public 인스턴스 데이터 (데이터 일반적인 예)
    • E .private 인 인스턴스 데이터 (개인 인스턴스 데이터)
    • 올바른 : C
  • 클래스 '생성자는 일반적으로 정의
    • 객체가 초기화되는 괜찮나
    • 개체를 인터페이싱 괜찮나 B
    • 클래스의 인스턴스 데이터의 C는 국지적 번호
    • 클래스의 메소드의 D의 국지적 번호
    • 인스턴스 데이터 .if E 직접 객체의 외부에 액세스 할 수 있습니다
    • 오른쪽 :
    • 이유 : 생성자 즉 "구조"객체로 표기는, 데이터 인스턴스의 초기 값을 설정. 이 필요하지만 일반적으로 그렇게 할 수 없습니다. 인터페이스 객체 인스턴스 데이터 및 상기 결정된 방법에 의해 사용되는 공개 개질제.
  • 다음 메소드 헤더 정의 구문 오류가 발생할 것이다 : 공중 따른 방법으로 공극을 ();
    • 오른쪽 : 사실
    • 그 이유는 그 이유는 그것이 구문 오류 ","기호의 끝. 대신, 명령 다음에 괄호 {}에서 0 개 이상의 필요합니다. ";"추상 방법이 될 것입니다 끝,하지만 머리는 추상 메소드를 정의하지 않습니다.
  • 같은 클래스의 여러 개체가 존재 할 수 있지만, 주어진 프로그램에서 각 클래스의 하나 개의 버전 만있을 수 있습니다
    • 오른쪽 : 사실
    • 이유 : A가 아니라 실제 인스턴스가 존재하는 것보다, 정의 즉, 존재, 추상 클래스입니다. 새 인스턴스화 객체의 사용의 실제 예를 만듭니다. 따라서, 많은 String 형의 객체 있지만 문자열 클래스가 있습니다.
  • 목적은 부적절한 액세스로부터 데이터를 보호 방법을 위하여 캡슐화되어야한다.
    • 오른쪽 : 사실
    • 이유 :이 패키지 개념이다 : 그것은 우발적 인 (또는 객체) 오용으로부터 보호되어야한다.
  • 접근 자와 뮤 테이터는 잘 캡슐화 된 클래스에 대한 액세스를 제어 메커니즘을 제공합니다.
    • 오른쪽 : 사실
    • 이유 : 액세스 변수에 대한 읽기 액세스를 제공, 이러한 변수 그렇지 않으면 액세스 할 수 없습니다. 뮤 테이터는 달리 접근 할 수없는 변수에 대한 쓰기 액세스를 제공
  • 자바는 다중 상속을 지원하지 않지만, 다중 상속의 기능 중 일부에 의해 제공됩니다
    • 올바른 :
    • .importing 클래스
    • B의 .implementing 인터페이스
    • C .overriding 부모 클래스 메소드
    • D의 .creating 별칭
    • E 보호 또는 개인 수식보다는 대중 .using
    • 올바른 : B
    • 이유 : 클래스가 인터페이스의 수를 구현하고, 그래서 이러한 인터페이스가이 클래스에 정의 된 동일한 경우와 같이 클래스 특성에 인터페이스 클래스를 사용할 수 있기 때문이다. 이 클래스는 메소드와 상수 인터페이스를 상속합니다. 또 다른 클래스를 확장 할 수있는 클래스함으로써 직간접 이상의 클래스를 상속. 이것이 바로 다중 상속과 동일하지 않습니다,하지만 자바의 개념과 매우 가까운

      페어 피어 검토

  • 문제 나 블로그를 학습 가치 :
    • 클래스와 패키지의 관계는 무엇인가? 공용 클래스는 특별히 수정 무엇을, 왜, 그것은 존재하고 같은 클래스에 파일 이름을 수정할 때? (2330)
    • 열거 형은 결국 꽤 맛 희미한 것 같다? (2311)
  • 코드 학습이나 문제 가치가있다 :
    • 무작위 랜덤, 대소 문자를 구분하지 않습니다 수학 난수.
    • nextChar를 사용하면 문자 입력 방법 (2303)
  • 14 점 : 점수를 바탕으로,이 블로그 점수를 제공합니다. 다음과 같이 점수는 다음과 같습니다
    • 1 분 동안 올바른 사용법 마크 다운 문법
    • 전체 기능은 1 분 템플릿
    • 교과서 학습과 문제 처리 4 점을 해결
    • 이분의 코드 디버깅 및 문제 해결 과정
    • 정서 경험은 큰 빈 1 분 떠나지 않아
    • 정교한 인쇄술 일분
    • 진행 바는 학습 시간을 기록하고 1 점을 개선
    • 댓글 심각하게, 나는 1 분 문제 및 블로그 코드를 지적 할 수
    • 1 분 심도있는 잘못된 질문을 학습
    • 쌍은 정통 1 분 학습

댓글은 학생들의 블로그와 코드를했다

  • 이번 주 학습 페어링
    • 20182326
    • 쌍 사진
    • 페어 학습 콘텐츠
      • 아이디어는 플러그인을 사용하는
      • 클라우드 코드를 업로드 링크
  • 지난 주 블로그 동료 평가의 경우

기타 (지각, 사고, 등, 선택 사양)

이제 점차적으로 학습의 어려움을 증가, 나는 자신의 학습, 자신의 인식, 이해 및 발전을 갈 필요가 있다고 생각합니다.

학습 진행 막대

코드 라인의 수는 (/ 축적 추가) 블로그 양 (/ 축적 추가) 시간 학습 (/ 축적를 추가) 중요한 성장
5000 행 (30) 400시간
첫 번째 주 69분의 69 2/2 30/30
두 번째 삼주 598분의 529 3/5 55분의 25
넷째 주 1,041분의 443 2/7 80분의 25

"계획된 학습 시간"과 끝에 "실제 학습 시간"를 계획 할 수있는 능력을 향상시킬 수 있는지를 기록하십시오. 이 연구는 매우 중요한 작품이다 유용합니다.
추정 식 소비 : Y는 X = X + / N은 , Y = XX / N, 훈련 종종, X는 Y가 닫히고.

참조 : 왜 그렇게 열심히하는 소프트웨어 엔지니어링 소프트웨어를 추정 , 소프트웨어 공학 추정 방법

추천

출처www.cnblogs.com/zhaopeining/p/11614558.html