변수
: 메모리의 위치
참조 자료형 : 클래스를 변수의 자료형으로 사용
- JDK가 제공하는 클래스 : String name
- 직접 구현한 클래스로 선언된 변수 : Student Lee
클래스
: 객체지향 프로그램의 가장 기본 단위
호스트네임 ADsccmadmin
멤버 변수
- 모든 객체의 속성은 멤버 변수에 의해 변경
- 멤버 변수의 다른 말 : member variable, attribute, property, data field
- 멤버 변수 선언 <접근제어자> <자료형> <변수명>:
메서드
- 멤버 변수를 사용해 클래스 기능 구현
- 외부로부터 멤버 변수를 보호하는 역할
- 메서드 이름은 클래스를 사용하는 입장에서 명명
웹은 request가 처리되는 클래스들이 구동되는 방식
웹은 메인클래스로부터 구동되지 않음
패키지
- 소스의 묶음 카테고리
- 소스를 계층구조로 관리하도록 구성
- 소문자로 명명
new로 생성한 class를 인스턴스라고 함
객체의 멤버에 접근
- <참조변수>.<멤버>
- 참조변수를 통해 객체의 멤버 변수와 메서드에 접근 가능
- 단 멤버의 접근제한자가 private인 경우 접근 불가
<<용어 정리>>
- 객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스
- 클래스 : 객체를 프로그래밍하기 위해 코드로 만든 상태
- 인스턴스 : 클래스가 메모리에 생성된 상태
- 멤버 변수 : 클래스의 속성, 특성
- 메서드 : 멤버변수를 이용해 클래스 기능 구현
- 참조 변수 : 메모리에 생성된 인스턴스를 가리키는 변수
- 참조 값 : 생성된 인스턴스의 메모리 주소 값
생성자
: 객체를 생성할 때 초기화할 명령어의 집합
- 메서드가 아님
- 객체 생성 시 호출
- 상속 x, 리턴 값 x
생성자의 역할 : class를 instance로 만들 때 호출됨
생성자의 호출 : 일반 메서드 -> 참조 변수를 이용해서 항상 호출 가능
생성자 -> new로 호출
생성자의 이름 = 클래스의 이름
- 하나의 클래스에는 하나 이상의 생성자가 존재
- 프로그래머가 생성자를 기술하지 않으면 기본 생성자가 자동으로 생김(컴파일러가 코드에 넣어줌)
- 기본 생성자는 인수 및 구현부가 없음
- 만약 클래스에 아규먼트가 있는 다른 생성자를 추가하면 기본 생성자는 제공되지 않음
- 생성자는 주로 멤버 변수를 초기화하는 일을 함
생성자 오버로딩 : 매개변수를 달리하는 생성자를 여러 개 선언
- 클래스에 생성자가 두 개 이상 제공되는 것
- 매개변수가 다른 여러 개 생성자를 만들 수 있음
- 주로 멤버 변수 초기화를 위한 생성자 구현
- 매개변수가 있는 생성자를 구현하는 경우 컴파일러는 기본 생성자를 제공하지 않음
접근 제어자
- private 선언은 정보 은닉 제공.
- 객체 생성 시 감춘 변수를 넣는 방법은
생성자에서 매개변수를 넘김 -> 매개변수에 의해 초기화 -> 변수가 들어감
모든 멤버 변수를 private하지 않는 이유
- 외부 변수 접근에 제한을 받을 수 있음
-> 필요한 변수만 private하게 하기
- 정보 은닉(private)을 활용한 경우
- get만 제공하고 set을 제공하지 않으면 외부에서 값을 바꿀 수 없음
- 변수에 대한 오류를 막을 수 있음
this
private 사용 시 정보 사용 및 오류 방지 가능
인스턴스 변수와 매개변수가 다를 경우 this를 사용하지 않음
this의 역할
- 자신의 주소를 가리킬 때
- 생성자에서 다른 생성자를 호출할 때 super = this 역할
- 자기 자신을 반환할 때
this 사용 시 주의할 점
static
- class attribute, class method로 불림
- 다른 언어에도 비슷한 개념으로 사용하고 있는 변수
- static 변수를 사용해 모든 인스턴스가 동일한 값 참조 가능
- static variable과 static method는 객체를 생성하지 않고 사용 가능
- static 변수는 인스턴스 생성과 상관없이 먼저 생성
static의 특징
- 인스턴스가 공통으로 사용하는 것
- new할 때 생기는 변수는 아님
- 인스턴스와 상관없이 먼저 생성됨
- static 변수와 메서드는 클래스에 기반한 변수
- static 변수는 인스턴스 생성과 상관없이 사용 가능
- static 변수는 생성 시점이 인스턴스 변수와 다름
static 변수 / static 메서드 = 클래스 변수 / 클래스 메서드
static 메서드에서는 인스턴스 변수 사용 불가
static 변수는 객체의 생성과 상관없이 바로 사용 가능
변수의 종류별로 사용하는 메모리, 생성 시기, 생존 주기 등이 다르다.