자료구조 : 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계
배열 : 같은 자료형의 변수로 이루어진 구성 요소가 모인 집합 >> 가장 기본적인 자료구조
int[] arr; // arr는 자료형이 int형인 배열 >> 더 자주 사용 : int형인 배열이라는 것을 명확하게 표현
int arr []; // arr는 자료형이 int형인 배열
arr = new int[5]; >> int형의 배열 본체를 생성, 변수 a가 “참조” 하도록 설정한다는 선언
new >> 배열 본체에 대한 참조 생성
arr.length // 배열의 구성 요솟수
배열의 구성 요소는 자동으로 0으로 초기화됨.
int[] arr = new int[] {1, 2, 3, 4, 5}; >> 초기화 방법
arr.clone() // 배열의 복제
ex) 배열 요솟수 중 최댓값 구하기
max = arr[0];
for (int i = 1; i < arr.length(); ++i) {
if (a[i] > max)
max = a[i];
}
위 방식을 주사(traverse)라 표현. 데이터를 하나씩 지나면서 살피고, 조사한다는 뜻.
접근 제한자 : 객체 멤버에 대한 접근을 제한함.
public : 모든 접근 허용
protected : 같은 패키지(폴더)의 객체, 상속 관계의 객체 허용
default : 같은 패키지(폴더)의 객체 허용
private : 현재의 객체 안에서만 허용
사용
클래스 : public, default
생성자 : public, protected, default, private
멤버 변수 : public, protected, default, private
멤버 메서드 : public, protected, default, private
지역 변수 : 사용불가
전위형 증가 연산자와 후위형 증가 연산자
++a : 피연산자 증가 시킨후 식 전체를 평가
ex)
a = 3;
b = ++a; >> b = 4, a =4
a++ : 식 전체를 평가한 후 피연산자 증가
ex)
a = 3;
b = ++a; >> b = 3, a =4
2차원 배열 : 배열을 구성원으로 삼는 배열이라 생각하면 편함.
확장 for문
for (double i : a)
sum += i;
: >> ~의 안에 있는 in이라고 읽음. 즉 배열 a의 처음부터 끝까지 모든 요소를 한 개씩 스캔.
장점 : 배열의 길이를 조사하지 않아도 됨, iterator와 같은 방법으로 스캔할 수 있음.
클래스 : 임의의 데이터형을 자유로이 조합하여 만들 수 있는 자료구조.
class XYZ {
int x; // x는 int형 필드
long y; // y는 long형 필드
double z; // z는 double형 필드
}
XYZ a; // XYZ형의 클래스형 변수 a 선언
a = new XYZ(); // XYZ형의 클래스 인스턴스(실체) 생성
XYZ a = new XYZ(); // 변수와 인스턴스 생성