Lecture 05 문자열, 배열, 디버깅 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018
문자열 (string) 문자열의 선언과 생성 문자열 리터럴은 내부적으로 new String()을 호출해 생성한 객체 s1은 new String(“안녕, 자바!”)를 호출해서 생성한 객체 내용이 같은 문자열 리터럴이라면 더 이상 새로운 String 객체를 생성하지 않은 채 기존 리터털을 공유. 따라서 s1과 s2는 동일한 String 객체
문자열 문자열의 비교 ==와 != 연산자는 두 문자열의 내용을 비교하는 것이 아니라 동일한 객체 인지 검사 예제 : sec01/String1Demo.java
문자열 문자열 비교 String 클래스에서 제공하는 문자열 비교 메서드 예제 : sec01/String2Demo.java
문자열 문자열 조작 : String 클래스에서 제공하는 메서드
문자열 문자열의 조작 예제 : sec01/String3Demo.java 예제 : sec01/String4Demo.java
배열 (array) 배열이란
배열 배열의 필요성
배열 기초 배열의 선언과 생성 배열의 선언 : 실제는 배열 변수의 선언 배열의 선언과 생성 : 실제는 배열 변수의 선언과 초기화
배열 배열의 선언과 생성
배열 배열 원소의 접근 배열의 크기 예제 : sec02/Array1Demo.java 배열이 생성될 때 배열의 크기가 결정 배열의 length 필드가 배열의 크기를 나타냄. scores가 가리키는 배열의 크기는 scores.length 예제 : sec02/Array1Demo.java
배열 기초 다차원 배열 (multi-demension array) 배열의 배열 학생 3명의 5과목 성적을 처리하는 정수 타입 2차원 배열(3행 × 5열)인 scores를 선언하고 생성.
배열 다차원 배열 선언과 초기화 예제 : sec02/Array2Demo.java
배열 동적 배열 (static array) 처리할 데이터의 개수가 고정된 경우가 아니라면 정적 배열은 자원을 낭 비하거나 프로그램을 다시 컴파일 자바는 크기가 유동적인 배열을 지원하기 위하여 ArrayList 클래스를 제공
배열 기초 동적 배열 ArrayList 객체 생성 ArrayList 원소 접근 예제 : sec02/ArrayListDemo.java 기초 타입이라면 Integer, Long, Short, Float, Double 등을 사용한다.
배열 응용 배열을 위한 반복문 for~each 반복문 : JDK 5부터 도입된 것으로 for 문을 개선한 방식. 특정 원소 를 나타내기 위한 인덱스를 사용하지 않음. 예제 : sec03/ForEachDemo.java
배열 응용 메서드의 인수로 배열 전달 예제 : sec03/IncrementDemo.java
배열 응용 메인 메서드의 매개변수 전달 명령창에서의 실행 명령 예제 : sec03/MainArgumentDemo.java
배열 응용 메인 메서드의 매개변수 전달 이클립스에서 매개변수 제공
배열 응용 가변 개수 인수 JDK 5부터는 메서드에도 데이터 타입이 같은 가변 개수(variable length)의 인 수를 전달 가능 한 개의 가변 개수 매개변수만 사용 가능하며 가변 개수 매개변수는 마지 막에 위치 가변 개수 인수를 가진 메서드를 호출하면 내부적으로 배열을 생성하여 처리 예제 : sec03/VarArgsDemo.java
배열 응용 객체의 배열 객체 배열은 객체를 참조하는 주소를 원소로 구성 Ball 클래스의 객체로 구성된 배열을 선언하고 초기화
배열 응용 객체의 배열 예제 : sec03/CircleArrayDemo.java
배열 응용 매개변수로 객체 전달 예제 : sec03/ObjectArgumentDemo.java
디버깅 오류의 종류 변수 n2에는 n2, 변수 n3에는 n3, 변수 m에는 n/d을 대입하는 예제
디버깅 이클립스를 이용한 디버깅 과정 이클립스는 에디터 뷰에 문법 오류는 알려주지만 논리 오류는 알려주지 않음 이클립스는 에디터 뷰에 문법 오류는 알려주지만 논리 오류는 알려주지 않음 논리 오류는 프로그램 실행 도중에 변수 상태를 추적하는 것이 가장 기본 적인 오류 점검 방식 디버그 퍼스펙티브로 이동
디버깅 디버깅 명령어와 이클립스 단축키
디버깅 샘플 프로그램 예제 : sec04/Debug2Demo.java
디버깅 디버그 퍼스펙티브와 중단점 설정
디버깅 디버그 퍼스펙티브와 각종 실행 버튼
디버깅 디버그 퍼스펙티브와 변수 추적
디버깅 디버그 퍼스펙티브와 실행 결과