1. 자바의 클래스
자바에서 클래스 = 붕어빵틀, 인스턴스 = 붕어빵틀로 찍어낸 붕어빵 으로 비유되곤 한다.
변수의 자료형은 두가지로 나뉘는데, (기본/비기본) 또는 (원시형/참조형)으로 구분한다. 여기에서 클래스로 생성하는 변수는 참조형 변수가 된다.
- 기본 자료형(원시 자료형)의 생성자 = 변수
- 비기본 자료형(참조 자료형)의 생성자 = 인스턴스, 클래스로부터 생성됨, new 키워드 사용
추가적으로, String의 자료형은 예외적으로 인스턴스가 아닌 변수라고 많이 얘기하지만, String 변수라고 이야기를 하더라도 String 객체의 참조 자료형이라고 확실히 알고 있어야 한다. (* 참조 - 빵형의 java)
// 기본 자료형의 생성자
int num = 10;
// 참조 자료형의 생성자
Class cls = new Class(); // --> Class 는 본인이 정의한 Class
- “=” 기준으로 좌변 우변 같은 자료형으로 되어야 한다.
- 비기본 자료형(참조 자료형)의 생성자는, 자료형의 생성자나 자료형을 상속받은 클래스의 생성자를 사용
클래스의 구성요소는 아래와 같다.
① 멤버 변수 (field)
② 메서드 (method)
③ 생성자 (constructor)
2. 클래스의 구성요소
① 멤버 변수 (field)
클래스 내에 위치하는 변수를 멤버 변수라고 하며, 필드라고도 부른다.
public class TmpVO {
String name;
int age;
static final int ONE = 1;
static final int TWO = 2;
static final int THREE = 3;
}
위의 코드를 기준으로,
TmpVO 클래스의 인스턴스를 new 키워드를 사용하여 인스턴스를 생성한 뒤에 사용할 수 있는 변수를 인스턴스 변수 라고한다.
반면 TmpVO 클래스로 인스턴스를 만들어서 접근하지 않고 바로 사용할 수 있는 변수를 클래스 변수라고 한다.
public class Main {
public static void main(String[] args) throws Exception{
// 클래스 변수, static 변수
System.out.println(TmpVO.ONE);
// 인스턴스 변수
//System.out.println(TmpVO.age); -> 사용 불가
TmpVO tmpVO = new TmpVO();
System.out.println(tmpVO.age);
}
}
class TmpVO {
String name = "name"; // 인스턴스 변수
int age = 1; // 인스턴스 변수
static final int ONE = 1; // 클래스 변수
static final int TWO = 2; // 클래스 변수
static final int THREE = 3; // 클래스 변수
}
/* 결과
1
1
*/
② 메서드 (method)
함수의 작은 개념. 클래스에 종속된 함수. 메서드명은 소문자로 시작하며, 주로 동사형으로 작성한다.
어떤 문제를 처리하기 위한 처리 과정을 구현해준다.
// 메서드 구조
[접근제어자] [반환자료형] [메서드명] ([매개변수]) {
... 처리 코드
return 반환결과;
}
메서드 구조 설명.
[접근제어자]
접근 가능한 범위에 대한 표시로, 클래스, 변수, 메서드 전체적으로 사용함.
- private : 같은 클래스 내에서만 접근 가능
- default : 같은 클래스, 같은 패키지면 접근 가능 (명시적으로 작성하지 않으며 생략하는 형태로 사용)
- protected : 같은 패키지, 혹은 상속 관계에 있는 객체까지만 접근 가능
- public : 모든 접근 허용
[반환자료형]
결과값으로 반환될 데이터의 자료형 작성하되, 반환될 데이터가 없다면 void
반환될 데이터는 return 을 통해 돌려준다.
public int myNumber(){
int myNum = 10;
return myNum;
}
// --> myNumber() 메서드 호출 시 무조건 10의 int 형 데이터를 리턴받는다.
[매개변수]
메서드 = 클래스 안에서 선언되어 멤버변수를 처리하는 함수,
멤버변수 = 클래스 안에 선언되어 있는 변수
* 변수 구분 1
메서드 내의 변수를 지역변수(local variable)
메서드에 전달받은 변수를 매개변수(parameter)
메서드로 전달한(메서드를 호출할 때 전달한) 변수를 인자(argument)
라고 한다.
* 변수 구분 2
변수명이 겹칠 경우, 메서드에 전달된 매개변수가 우선순위가 된다.
멤버변수와 구분을 원할 경우 this 키워드를 사용하면 this.변수명은 멤버변수를 가르키게 된다.
③ 생성자 (constructor)
생성자는 클래스를 최초에 초기화해주는 역할을 한다.
// 생성자의 구조
[접근 제어자] 클래스명([매개변수 ...]){
처리 명령
}
** 생성자 특징
- 반환값이 없다(return).
- 생성자명은 클래스명과 같다.
- 1개의 클래스 당 1개 이상의 생성자를 가질 수 있다.
혹여나 본인이 따로 매개변수가 필요없다면,, 클래스 내에 생성자를 따로 작성해 주지 않아도 된다. 생략된 형태로 자동 생성 되어있음.
** this 키워드
클래스 내에서 같은 생성자를 호출하는 키워드.
this(매개변수1, 매개변수2) 를 통해 두번째 생성자를 호출하고 있음. 클래스 내에서 this 키워드는, 해당 클래스 내의 것들을 가리키게 한다.
'study_java > 자바 공부하기' 카테고리의 다른 글
자바의 제네릭(Generic) (0) | 2023.06.13 |
---|---|
프로그래밍 언어에 대한 간략한 개념들 - [절차지향과 객체지향], [런타임과 컴파일타임], [컴파일 언어와 인터프리터 언어] (0) | 2023.04.06 |
반복문의 continue와 break (0) | 2023.04.06 |
List와 Array 구분 (List형 컬렉션프레임워크와 배열의 구분) (0) | 2023.03.30 |
java 배열의 할당 (0) | 2023.03.30 |