이차원 배열에서 각각의 length는 각각 열에 길이를 뜻한다.
1차원 -> 직선
2차원 -> 평면
3차원 -> 입체
객체 지향 프로그래밍
class 클래스명 {
변수정의
함수정의
}
참고) 관례적으로 클래스 이름은 카멜식 표기 + 맨앞도 대문자
ex) OrderInfo
변수.속성명
변수.함수명(...);
접근해서 값을 할당할 경우 메모리에 배정됨.
new로 설계도(class)를 통해 인스턴스를 생성함.
-실체 실제로 존재한다. (메모리를 할당함)
(생성된 객체)
정의에 불과하던 클래스 명세를 메모리에 실제로 생성된 객체.
인스턴스 == 객체
-클래스에 정의되어 있는 변수(실제 변수는 아님)
-클래스에 정의되어 있는 함수
반환값 자료형 함수명 (매개변수 ... ) {
//실행될 코드 정의
return 반환값;
}
return은 함수 외부에서 사용할때.
->
void 함수(){
}
함수명(값,...);
함수가 연산을 수행할때만 파라미터를 메모리에 할당, 완료시 제거
가장 마지막에 추가한 자료가 먼저 제거됨.
먼저 추가한 자료가 먼저 제거됨.
main: 가장 첫번째로 실행되는 함수 -> 가장 마지막에 해제됨
-> 바닥에 깔린 main함수. 그 후 정의된 함수 실행
객체전용 메모리
참조 자료형
클래스형태의 자료형 -> 객체가 되어야 사용 가능
참조 변수
생성된 객체의 주소값을 가지고 있는 변수
클래스로 생성된 객체를 참조 할 뿐이다.
그렇다고 같은 클래스로 생성된 여러 객체가 모두 같은 주소 값을 갖는것은 아니다.
각각 다른 객체를 생성한 후, 참조함.
s3 = s2 //null 할경우 연결이 끊겨버림. 힙 영역 메모리에서 해제되어버림
이런식으로 얕은 복사를 했다면 동일한 주소값을 가진다.
기본 생성자 (따로 정의하지 않았을 경우)
public 클래스명(){
}
public Student() {
//반환값 정의 X, return X -무조건 반환 값은 객체의 주소 값
//객체 생성 이후에 해야하는 작업들
//인스턴스 변수의 초기화 작업을 주로 진행
id = 1000;
name = "이름1";
}
생성자 함수는 반드시 주소값을 반환값으로 가진다. 변경 불가
매개변수를 통해 다양한 함수 구현이 가능하다.
함수의 이름 - 함수의 시그니쳐
패키지명 + 클래스명 + 반환값 + 함수명 + 매개변수 정의 + 예외 전가
복합적인 요소를 거쳐 함수의 이름을 구분하게 된다.
함수의 시그니쳐가 동일 -> 함수의 중복 정의 -> 오류
함수의 시그니쳐가 동일X -> 함수명이 같아도 다른 함수를 정의한 것
public Student(int _id, String _name, String _subject) { // 기본 생성자(Default 생성자)
id = _id;
name = _name;
subject = _subject;
}
public Student() { // 생성자 오버로드
int id;
String name ;
String subject;
}