String 클래스
- 자바에서는 문자열을 객체로 취급한다.
- 동일한 인스턴스를 중복해서 생성하지 않는다.
강제로 인스턴스를 생성하고자 한다면 new를 이용해서 생성.
- 절대로 수정 불가.
수정 가능 : StringBuffer, StringBuilder
수정이 가능하기 때문에 true가 나온다.
Conmmand Line Argument(명령행 인자)
argument / parameter
argument는 전달인자 즉 함수와 메서드의 입력값. (value)
parameter는 매개변수 즉 함수와 매서드 입력의 변수명이다. (variable)
※ 데이터 처리 흐름.
ㄴ 변수 => 배열=>클래스
배열의 장점
- 값을 1개만 저장
배열의 단점
- 같은 타입끼리만 묶어야 함.
- 삽입/삭제가 불편
클래스
- 서로 다른 타입도 묶을 수 있음.
*Stack과 Heap (memory)
(1) Stack
지역변수
메서드의 복귀 주소
임시 데이터나 주소값 저장.
(2) heap
실제 데이터 저장.
별도의 처리가 없는 한 지속적인 값의 저장의 보장함.
중괄호 안에 저장되어 있는 것처럼, 해당 변수가 저장될 메모리 공간을 heap이라고 함.
7. Class Part3
Access Modifier(접근 제한자, 접근 지정자) : 클래스, 메서드, 필드
1. default : 부분허용
2. public : 완전 허용
3. private : 완전 거부
4. protected : 부분 거부
메서드 ★★★★★
1. 값에 의한 전달(Call by Value)
- 소량의 데이터, 간단한 데이터
2. 참조(주소)에 의한 전달(Call By Reference)
- 대량의 데이터 , 복잡한 데이터
간혹 소량의 데이터라고 할지라도 반드시 참조에 의한 전달을 사용해야 하는 경우가 있음.
값 전달, 힙 전달. [ call ]
클래스에 의한 참조 전달.
재귀함수(RecursiveTest)
Static
1. 클래스, 메소드, 변수에 사용 가능.
2. 인스턴스와는 별도로 만들어지는 메모리.
ㄴ다른 모든 인스턴스들이 공동으로 사용하는 메모=
4. Static(정적) 변수 클래스 변수
5. Static이 붙은 메서드는 this가 존재하지 않는다.
6. Static block
static int i:
...
static int j:
...
static int k:
static {
i = 10;
j = 20;
k = 30;
}
***디자인 패턴
Singleton Pattern
- 인스턴스를 단 한 개만 만들어지게 하는 방법
ㄴ 불필요한 인스턴스 생성을 방지
- 생성자, private, static
- 작성 순서
ㄴ 인스턴스 외부에서 생성할 수 없게 한다.
ㄴ 클래스 내부에서 인스턴스를 단 1개만 생성할 수 있도록 한다.
ㄴ 생성된 인스턴스를 외부에서 사용할 수 있게 한다.
4. 중첩 클래스 (내부 클래스)
클래스 내부에 다른 클래스를 포함시키는 것.
사용하는 이유
ㄴ 클래스들끼리 자주 접근해야 하는 이유
ㄴ 전용 클래스로 사용할 경우.
내부 클래스 종류
ㄴ General Class (비정적 클래스)
ㄴ Static Class (정적 클래스)