멤버 변수라고도 함
객체의 데이터, 상태를 저장하는 변수
기본타입 또는 참조타입으로 정의
일반적으로 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막음
객체의 외부에서 객체 내부 데이터를 마음대로 읽고 쓸 경우 무결성 보장에 어려움
메소드를 통한 접근을 하게 되면 객체의 데이터를 변경할 경우 무결성 체크 가능
클래스를 정의 할 때 필드는 private
로 하여 객체 내부의 정보를 보호(정보은닉)
필드에 대한 Setter와 Getter를 두어 객체의 값을 변경하고 참조하는 것이 좋다.
DTO (Data Transer Object)
- 기본 생성자
- 필드는 은닉(private)
- Getter/Setter 설정 (우회접근)
- 내부 로직은 넣지 않는다
객체의 필드와 메서드에 접근을 제한하기 위해 사용
정보 은닉을 위한 방법(캡슐화)
정보 접근 수중에 따라 public, protected, default, private 네 가지가 있음
객체의 기능 또는 행동을 정의
public int getSum (int i, int j) {
int result = i + j;
return result;
}
메서드를 선언할 때 괄호 안에 표현 된 Input 값을 나타내는 변수
메서드 호출에서 들어가는 구체적인 값은 인자argument
라고 함
메서드는 0개 혹은 1개의 값을 Output으로 반환
void
int
, boolean
, String
, Object
, ...자바의 식별자 규칙에 맞게 생성 할 수 있음
관례에 따라 소문자로 작성, 두단어가 조합될 경우 두번째 시작 문자는 대문자로 작성 (camelcase)
기능을 알기 쉽게 작성하는 것이 좋다.
매소드의 매개 변수의 개수를 알 수 없을 때 사용
double sum (double[] valuse) {}
double sum (double ... valuse) {}
new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되고 객체의 초기화를 담당
class -> Instance 생성
생성자를 실행 시키지 않고 클래스로 부터 객체를 만들 수 없다
생성자가 성공적으로 실행되면 JVM의 Heap 영역에 객체가 생성되고 객체의 참조값이 변수에 저장
public class Goods {
String name; int price;
public Goods() { // 기본 생성자 (instance 생성 만 수행)
// 초기화 코드
}
public Goods( String name, int price ) {
// 초기화 코드
this.name = name; this.price = price;
}
}
this
Keyword메서드 호출을 받는 객체를 의미 -> 현재 사용중인 객체 그 자체를 의미
this()는 클래스의 한 생성자에서 다른 생성자를 호출할 때 사용
super
: 상위(부모)Class
를 지칭
this
: 현재(자식)Class
를 지칭
하나의 클래스에 같은 이름의 메서드가 여러 개 존재 가능
각 메서드들은 매개변수 타입, 개수, 순서method signature가 다른 형태로 구별
void draw() { ... }
void draw(boolean bDraw) { ... } // 같은 이름 다른 매개변수의 overloading 된 함수