텍스트 형식의 보웬의 시작 (2 점)
계획 |
함유량 |
이 작품은 과정 속 |
https://www.cnblogs.com/nwnu-daizh/ |
어디에서 작업이 요구 사항 |
https://www.cnblogs.com/lily-2018/p/11441372.html |
작업 학습 목표 |
(1) 마스터 Vetor, 스택, 일반적인 사용과 API의 해시 테이블 세 가지 클래스; (2) 마스터 ArrayList를, 그리고 두 클래스의 사용은 일반적인 API를 LinkList. (3) API의 일반적으로 사용되는 클래스의 자바 GUI를 만들 수있는 프레임 워크와 속성을 마스터; (4) 페어 프로그래밍 (페어 프로그래밍), 프로그램 개발 협력 두 사람의 경험을 적용 할 수 있습니다. |
에세이 보웬의 본문 내용은 다음과 같습니다 :
첫 부분 : 요약 제 IX, 이론적 지식 장 X (40 점)
1. 데이터 구조 : 선형 형태 스택 큐, 스트링, 어레이, 및 파일 등의 선형 데이터 구조로.
나무와도 같은 B. 비선형 데이터 구조.
1) 선형 동일한 테이블의 모든 데이터 요소는 동일한 데이터 유형이어야한다.
선형리스트 구조는 저장 테이블과 목록의 순서에 따라 나눌 수 있습니다.
2) 스택 : 그것은 특별한 선형 테이블, 첫 번째 출력 (LIFO) 구성의 마지막이다.
만 트레일러 선형 테이블 삽입 및 삭제 동작을 제한 스택 예고편 스택의 헤더 바닥 호출 스택이라고한다.
3) 대기열 : 테이블의 한쪽 끝에서만 정의 된 모든 삽입은 선형 적으로 삭제 된 테이블은 모든 테이블의 다른 쪽 끝에서 수행된다. 우선 출력 (FIFO) 구조의 제이다.
테이블의 한쪽 끝은 삭제라는 큐의 머리를 수 있도록 꼬리 끝의 허가 삽입 함.
2. :( 수집 컨테이너) 복수의 요소를 포함하고, 희토류 원소가 포함 된 동작 방법을 제공하는 데, 그것은 요소 오브젝트 조성물의 동일한 형태로 형성 될 수있다 포함 된, 또한 다른 유형의 객체들로 구성 될 수있다.
1) 컬렉션 프레임 워크 : 클래스 라이브러리의 자바 아키텍처 통합 세트.
2) 상기 패키지에 포함 java.util의 작업 클래스의 집합 () : 기본 데이터는 벡터, 해시 테이블과 같은 몇몇 스택으로지지 구조체를 제공한다.
3) 모음의 특징 : 수신 만 개체 ;.
B. 컬렉션 클래스 오브젝트 (오브젝트 번 클래스 정보가 손실되는 컬렉션 클래스로) 오브젝트 클래스를 수신 인스턴스이다
4) 벡터 유형 : 유사한 가변 길이 배열. 그것은 단지 그 요소의 인덱스를 통해 액세스되는 객체를 저장할 수 있습니다.
5) 스택 클래스 (벡터 서브 클래스) : 그것은 스택 데이터 구조를 설명합니다. (모든 객체는 객체 클래스의 hashCode 메소드에 의해 얻을 수있다 해시 코드가 있습니다.)
(기본 클러스터 구성 프레임 워크) a.Collection : 기본 인터페이스 프레임 워크의 3. 설정 컬렉션 계층 구조의 루트 인터페이스는 JDK 직접 인터페이스 구현 클래스를 제공하지.
b.Set : 중복 요소를 포함 할 수 없습니다, 그 요소는 고유해야합니다. 객체는 저장소의 순서로 저장 될 수있다. (클래스를 달성하도록 설정 인터페이스 HashSet에, TreeSet에 있음)
c.List는 : 명령 세트는 중복 요소를 포함 할 수 있습니다. 이 지수가 액세스 할 수있는 방법을 제공합니다. 클래스가 구현 그것을 가지고 ArrayList를하고 LinkedLis (예를 들어 ArrayList를 : 배열은 자동으로 용량을 늘릴 수 있습니다)
d.Map:Map 인터페이스는 고유 키 값에 매핑됩니다. 이 키 - 값 쌍을 포함하고 있습니다. 지도는 중복 키를 포함 할 수 없습니다. SortedMap를 순서대로지도를 상승의 핵심이다.
3. 사용자 인터페이스 : 사용자의 컴퓨터 시스템 (각종 프로그램) 상호 작용 인터페이스
그래픽 사용자 인터페이스 : 그래픽으로 표시 사용자 인터페이스
4.AWT : 용기와 GUI를 디자인하는 데 사용되는 구성 요소 클래스를 제공 java.awt 패키지에 포함 된 자바 추상 윈도우 툴킷 (추상 WindowToolkit, AWT).
지역의 GUI 툴킷 거래에 대한 작성 및 그래픽 요소위원회의 행동 : 방법은 라이브러리 핸들 요소 인터페이스를 사용자에게 AWT.
5.Swing : 스윙 사용자 인터페이스 라이브러리가 아닌 피어 기반의 GUI 툴킷이다.
스윙 컬렉션의 풍부하고 더 편리한 사용자 인터페이스 요소를 가지고있다.
플랫폼에 관련된 기본 플랫폼 그래서 몇 가지 작은 버그 스윙 의존.
스윙 javax.swing의 라이브러리는 가방에 배치됩니다.
대부분의 AWT 구성 요소는 스윙 해당 구성 요소가 있습니다. AWT 컴포넌트 편지 "J"를 이름의 스윙 구성 요소의 이름은 일반적으로 앞에 추가됩니다.
프레임 만들기
1. 성분 : 그래픽 (화면 상에 표시 할 수있어, 사용자가 상호 작용할 수 있음)로 표시하는 데 사용되는 구성 그래픽 사용자 인터페이스
객체는 일반적으로 Component 클래스의 하위 클래스로 생성 2. 간접적 어셈블리 또는 서브 클래스라고한다.
컨테이너 : 컨테이너는 자바의 구성 요소 및 조립체 수용하도록 배열. 용기는 일반적으로 사용되는 프레임 (프레임 JFrame의)
위치 :
-는 setLocation의 setBounds하고 구성 요소 클래스의 일반적으로 사용되는 방법
일반적인 속성
-title : 프레임 헤더
-IconImage : 프레임 아이콘
툴킷 클래스의 메소드를 호출하는 것에 의해 획득 화면 크기 정보 : 상기 프레임의 크기를 결정.
4. 정보 어셈블리에 표시된
조립 AWTFrame에 직접 추가되는 AWT 추가 () 메소드를 호출 할 수 있습니다, 다음 스윙 구성 요소 창의 내용에 추가됩니다.
내용 창은 구성 요소를 추가하는 데 사용되며, 다음 코드를 추가합니다 :
컨테이너의 컨텐츠 구획 = getContentPane ();
사용자는 자신의 구성 요소 클래스를 생성 할 수 있습니다 어셈블리를 다시로드의 paintComponent이 시간 필요에, 그림에 ().
사용자 자체 내장 된 구성 요소는 내용 창에 추가 할 수 있습니다.
공용 보이드가 (부울 b)는 setEnabled 세트 요소가 활성화 될 수 있는지 여부를.
변수 b의 값에 해당하는 경우, 구성 요소가 활성화 될 수있다.
파라미터 B에 거짓의 값은, 구성 요소가 활성화 될 수없는 경우.
기본적으로 어셈블리를 활성화 할 수 있습니다.
공공 무효로 setVisible (부울 B) 의 가시성 어셈블리 용기 내에 배치.
경우 용기에서 보이는 사실, 부품의 b 값.
허위의 B 값은, 성분은 용기에 표시되어 있지 않을 때.
창 조립 형 추가는 다른 유형의 구성 요소는 기본적으로 볼 수 있습니다.
파트 II : 실험 부분
실험 예 1 : 시험 절차 1 (6 포인트)
제 9 장 샘플 프로그램, 시험 절차 및 코드 주석을 소개했다.
※ 명령은 프로그램 이해의 실행 결과와 관련하여, 다음과 같은 세 가지 샘플 프로그램을 실행, JDK 편집을 사용하여 실행합니다;
※ 마스터 Vetor는, 스택, 해시 테이블은 세 개의 클래스와 공통 API를 사용합니다.
벡터 :
다음과 같이 실험 절차는 다음과 같습니다
1 임포트 java.util.Vector에, 오브젝트 // 자동 증가 어레이 (2) (3) {클래스 고양이. 4 개인의 INT catNumber;. . 5 고양이 (I INT) { 6 catNumber = I;. . 7} . 8 공극 인쇄 () { . 9 System.out에 .println ( "고양이 #"+ catNumber) (10)} . 11} 12 고양이 {공용 클래스 13 공공 정적 무효 메인 (문자열 []에 args) {이고 ; 14 벡터 <고양이> = 새로운 새 CATS Vector의 <고양이> () 15 ( 0 = I INT]. I <7; I ++) 16 cats.addElement (새 새로운 고양이 (I)) . (; I <cats.size INT (I = 0); 17 I가 ++) 18 인 (cats.elementAt (I)) .print (); // 필수 형변환 19} 20}
결과는 다음이다 :
스택:
다음과 같이 실험 절차는 다음과 같습니다
java.util의 * 1import ;. 클래스 2 // Public 클래스 스택 스택 (마지막 아웃) . (3) { . 4 정적 문자열 [] = {개월 "골드", "은색", "구리", "아이언"} . 5 공공 정적 무효 메인 (문자열 []에 args) { 6 스택 <문자열> 새로운 새 STK = 스택 <문자열> ();. . 7 (INT I = 0; I <months.length; I ++) 8 stk.push (개월 [I]).; // 푸시 . 9에서 System.out.println (STK) 10에서 System.out.println ( "요소 (2) ="+ stk.elementAt (2)) (11) 동안 (stk.empty ()!). 12 System.out에있다. 에 println (stk.pop는 ()); // 스택 중 출력 소자 (13)} 14}
결과는은 다음과 같다 :
해시 테이블 :
다음과 같이 실험 절차는 다음과 같습니다
. java.util의 * 가져 오기 클래스, 2 {클래스 카운터 3 = I INT 1; // 권한 수정없이 :.. 쉬운 유형 4 공공 문자열 toString () {// 데이터 문자열 타입으로 데이터의 다른 유형 5 반환 (I)를 Integer.toString를] . 6} . 7} . 8 . 9 통계 {공용 클래스 10 공공 정적 무효 메인 (문자열 []에 args)을 { 11 Hashtable의 새로운 새로운 HT = Hashtable의 (). 12위한 INT (I = 0; I <10000; ++ I) { 13 R 정수 새로운 새로운 정수 및 LT = ((INT) (인 Math.random () * 20)); //는 0-20 생성 () (20)를 포함하지 않는 임의의 정수 번호 14의 경우 (ht.containsKey (R)) // R 있는지 여부가 판정된다 해시 테이블의 핵심 요소 (15) ((카운터) ht.get (R )) // I ++ ;. 의 방법에 의해 그 값을 얻을 다른 16 . 19 HT에서 System.out.println ( ); . 17 ht.put (R, 새로운 신규 카운터 ( )); // HT가 존재하지 않습니다 18} 20} 21}
결과는 다음이다 :
실험 예 1 : 시험 절차 2 (6 포인트)
편집에 JDK 명령을 사용 ※ ArrayListDemo LinkedListDemo에게 프로그램의 결과가 프로그램을 이해 결합 된 두 개의 프로그램을 실행;
ArrayListDemo :
다음과 같이 실험 절차는 다음과 같습니다
1 수입하고있는 java.util. *; 2 개 3 Public 클래스 ArrayListDemo // ArrayList를使用了数组的实现 -4- { 5 공공 정적 무효 메인 (문자열 []는 argv) { 도 6의 ArrayList 알 = 새로운 ArrayList를 (); 7 // ArrayList의에 요소를 많이 추가 ... 8 al.add (새 정수 (11)); 9 al.add (새로운 정수 (12)); 10 al.add (새로운 정수 (13)); 11 al.add (새 문자열 ( "안녕하세요")); //下标从开始0, 4添加个元素 12 // 먼저 루프를 사용하여 인쇄. 13에서 System.out.println는 ( "인덱스 검색"); 14 (INT I = 0; I <al.size (); 나는 ++) { 15에서 System.out.println ( "요소"+ I + "="+ al.get (I)); 16} 17}
결과는 다음과 같다 :
LinkedListDemo :
다음과 같이 실험 절차는 다음과 같습니다
1 수입하고있는 java.util. *; 2 3 Public 클래스 LinkedListDemo -4- { 5 공공 정적 무효 메인 (문자열 []는 argv) 6 { 7 //创建一个链表 8에서 L = LinkedList의 새로운 LinkedList의 (); 9 l.add (새 개체 ()); 10 l.add ( "안녕하세요"); 11 l.add ( "zhangsan"); 12 반복자 리 l.listIterator = (0); 13 일 동안 (li.hasNext ()) (14)에서 System.out.println (li.next ()); 15 (l.indexOf ( "안녕하세요") <0)의 경우 16 System.err.println을 ( "조회하지 작업을 수행"); 17 다른 18 System.err.println을 ( "조회 작동");
실험 예 1 : 시험 절차 3 (6 분)
※ 편집 프로그램 실행 디버그 재료 Elipse 환경에서 프로그램을 이해하는 프로그램의 360 9-1 결합 된 결과;
일반적인 API의 ※ 마스터 ArrayList를, 사용 LinkList 두 클래스.
다음과 같이 실험 절차는 다음과 같습니다
1 수입하고있는 java.util. *; 2 3 / ** 4 *이 프로그램은 연결리스트에 대한 작업을 보여줍니다. 5 * 1.11 @version 2012-01-26 6 * 케이 HORSTMANN @author 7 * / 8 공용 클래스 LinkedListTest 9 { 10 공공 정적 무효 메인 (문자열 []에 args) 11 { 12 //创建和B两个链表 13 목록 <문자열> a)는 (> 새 LinkedList의를 <=; //泛型 14 a.add ( "에이미"); 15 a.add ( "칼"); 16 a.add ( "에리카"); (17) (18)에서 <문자열> B = 새 LinkedList의 <> (); //泛型 19 b.add ( "밥"); 20 b.add ( "덕"); 21 b.add ( "프랜시스"); (23) @ 24 개 B 병합 즉 25 , 26 반복자 <문자열> aIter a.listIterator = () 인 27 반복자 <문자열> = 무는 b.iterator (); 28 (29) 동안 (bIter.hasNext는 ()) 30 { 31은 IF (aIter.hasNext ()) aIter.next (); 32 aIter.add (bIter.next ()); 33이다} (34)는 35에서 System.out.println (A) (36) 리스트에서 37 // 매초 스페이서 요소 요소 삭제 38이고 , 39 = 무는 b.iterator () (40)가있는 동안은 (bIter.hasNext는 ()) {41되는 42 bIter.next ()이고; // 스킵 한 소자 IF는 (bIter.hasNext는 ()) (43)가된다 (44)는 { 45 bIter.next (); // 다음 이동 소자 46 bIter.remove (); // 삭제하도록 소자 } 47 48} 49 50에서 System.out.println (B) (51)가 52 // 일괄 운전은 : B에서의 모든 단어를 제거 53 54 a.removeAll (B)이고; 55 (56)에서 System.out.println (A)이다 / / 메소드 AbstractCollection의 클래스 구성된 toString 모든 요소의리스트를 출력 (57)} 58}
결과로서 다음이다 :
실험 2 : 시험 절차 1 (6 포인트)
다음 프로그램을 실행 ※ 프로그램의 결과를 관찰 .
javax.swing의 수입. *;
공용 클래스 SimpleFrameTest
{
공공 정적 무효 메인 (문자열 []에 args)
{
JFrame의 프레임을 새로운 JFrame의 () =;
frame.setBounds (0, 0300, 200);
frame.setDefaultCloseOperation (의 JFrame.EXIT_ON_CLOSE);
frame.setVisible (TRUE);
}
}
다음과 같이 실험 절차는 다음과 같습니다
* javax.swing에서 오기 1 ;.. 2 SimpleFrameTest Public 클래스 3 {. 4 공공 정적 무효 메인 (문자열 []에 args). (5) {. 6 JFrame의 = 새로운 새로운 프레임 JFrame의 (). // 클래스 객체 프레임을 생성 , 7 frame.setBounds (0 0,300, 200); // 좌표와 폭 및 높이를 정의 8 frame.setDefaultCloseOperation (의 JFrame.EXIT_ON_CLOSE)를 // 닫기 동작 윈도우 9 frame.setVisible를 true // 윈도우가 보이는 10} 11}
※에서 elipse IDE 디버거 실행 교과서 10-1 (407) 프로그램, 프로그램을 이해하는 프로그램의 결과와 함께 실행, 위의 절차, 사고의 유사점과 차이점에 비해;
빈 프레임 생성 방법을 파악 ※;
메인 스레드 및 이벤트 디스패치 스레드 개념을 이해 ※;
※ 마스터 GUI 기술은 최상위 창을 만들 수 있습니다.
다음과 같이 실험 절차는 다음과 같습니다
패키지 simpleFrame 1]. 2 . java.awt의 3 오기 ;. * 4 * 오기 javax.swing의 ;.. 5. 6 / **. 7 * 1.33 2015년 5월 12일 @version. 8 * @author 케이 HORSTMANN. 9 * /. 10 Public 클래스 SimpleFrameTest 11. { 12 공공 정적 무효 메인 (문자열 []에 args) 인 (13)는 { 14 EventQueue.invokeLater (()를 -> // 람다 식 : 스레드 열어 큐 15 { 16 SimpleFrame 새로운 새 SimpleFrame 프레임 = (); // 클래스 만들기 개체 17 frame.setDefaultCloseOperation (의 JFrame.EXIT_ON_CLOSE는) // 타겟 폐쇄 동작 클릭 설정 (TRUE)을 18 frame.setVisible // 페이지 표시 19}), (20)} (21)} (22) 는 SimpleFrame 23 인 JFrame의 클래스 확장 24 { 25 최종 개인 정적 INT의 DEFAULT_WIDTH = 300; 26 개인 최종 정적 INT = 200 DEFAULT_HEIGHT이다; 27 28 공중 SimpleFrame () // 생성자 29 { 30에는 setSize (DEFAULT_WIDTH, DEFAULT_HEIGHT) // 크기 설정 31 } 32}
결과는 다음이다 :
실험 2 : 시험 절차 2 (6 점)
※ elipse의 IDE 10-2 교과서 프로그램 (412)을 시운전의 평가 프로그램 실행 결과를 바인딩;
상기 방법은 상기 프레임 ※ 파 OK의 속성을 설정하는데 사용.
다음과 같이 실험 절차는 다음과 같습니다
패키지 simpleFrame 1]. 2 . java.awt의 3 오기 ;. * 4 * 오기 javax.swing의 ;.. 5. 6 / **. 7 * 1.34 2015년 6월 16일 @version. 8 * @author 케이 HORSTMANN. 9 * /. 10 Public 클래스 SizedFrameTest 11. { 12 공공 정적 무효 메인 (문자열 []에 args) 인 (13)는 { 14 EventQueue.invokeLater (() -> // 람다 식 : 스레드 열어 큐 15 { 16 새로운 새 SizedFrame JFrame에 프레임 = (); // 프레임을 만들기 클래스 오브젝트 17 frame.setTitle ( "SizedFrame는"); // 타이틀 세트 18 frame.setDefaultCloseOperation (의 JFrame.EXIT_ON_CLOSE)를 // 닫기 동작 19 frame.setVisible (참)을 // 가시성 세트 (20)}); 21} 22} (42) 이미지 IMG 새로운 이미지 아이콘 ( "icon.gif"를) = 된 GetImage을 ().; (23) 24 등급은 SizedFrame JFrame의 연장继承// 25 { 26 공용 SizedFrame () //构造器 27 { 28 //得到屏幕维度 29 //生成툴킷对象30 키트 키트 Toolkit.getDefaultToolkit = () 31 규격을 화면 크기 = kit.getScreenSize (); 32 = INT screenHeight screenSize.height; 33 = INT screenWidth screenSize.width; 34 35 // 집합 프레임의 폭, 높이 및하자 플랫폼 픽 화면 위치 (36) (37)에는 setSize (screenWidth / 2 screenHeight / 2) //尺寸大小 38 setLocationByPlatform (TRUE); 39 40 // 프레임 세트 아이콘 (41) (43) setIconImage (IMG); 44} 45}
결과는 다음과 같다 :
실험 2 : 시험 절차 3 (6 분)
※ elipse의 IDE에서 교과서 (418) 프로그램 10-3 시운전의 프로그램을 이해하는 결과를 운영 결합;
프레임에서 ※ 이해의 추가 구성 요소;
※ 마스터 사용자 정의 구성 요소를 사용.
다음과 같이 실험 절차는 다음과 같습니다
패키지 simpleFrame 1]. 2 . javax.swing의 3 오기 * ;. java.awt의 4 오기 * ;.. 5. 6 / **. 7 * 1.33 2015년 5월 12일 @version. 8 * @author 케이 HORSTMANN. 9 * /. 10 공용 클래스 NotHelloWorld 11. { 12 공공 정적 무효 메인 (문자열 [] 인수)는 13 {인 스레드 열어 큐> // 람다 식 - 14 EventQueue.invokeLater (() 15 { 16 NotHelloWorldFrame JFrame에 새로운 새로운 프레임 = () (17 frame.setTitle. "NotHelloWorld"); // 타이틀 18 frame.setDefaultCloseOperation (의 JFrame.EXIT_ON_CLOSE)된다 . 19 frame.setVisible (true로) , 20}) 21이다} 22이다} 23 인 24 / ** 메시지 패널을 포함 25 *는 프레임 (26) * / 27 클래스 NotHelloWorldFrame는 JFrame의 //继承연장 28 { 29 공용 NotHelloWorldFrame () //构造器 30 { //添加窗口31 추가 (새로운 NotHelloWorldComponent ())을 32 팩 (); 33} 34} 35 36 / ** 표시하는 메시지 (37) *는 성분. * 38 / 39 클래스 NotHelloWorldComponent는 JComponent의 연장 40 { 41 공공 정적 최종 INT의 MESSAGE_X = 75; 42 공공 정적 최종 INT의 MESSAGE_Y = 100; 43 44 개인 정적 최종 INT의 DEFAULT_WIDTH = 300; 45 개인 정적 최종 INT의 DEFAULT_HEIGHT = 200; (46) 47 공공 무효의 paintComponent (그래픽 g) //绘图 48 { 49 g.drawString ( "아니 안녕하세요, World 프로그램", MESSAGE_X, MESSAGE_Y); } 50 51 52 공중 치수로 getPreferredSize는 () {새로운 차원 (DEFAULT_WIDTH, DEFAULT_HEIGHT)을 반환; } 53}
实验结果如下:
셋째, 테스트 요약 : (19 점)
이번 주 학습, 나는 데이터 구조, 그가 이해할 수있는 이론 클래스 느낌의 지식을 달성하기 위해 자바 언어를 쉽게 배울하지만, 실제 클래스 A-에 손은 뒤에 배우고, 따라서 자신이 여전히 많은 지식이 모르는이 발견 뿐만 아니라, 코드를 연습 좀 더 책에 비해 몇 가지 세부 사항과 개념을 기억하는 것입니다. 이 과정을 배우려고 노력.