1. 클래스 정의하는 방법
2. 객체 만드는 방법 (new 키워드 이해하기)
3. 메소드 정의하는 방법
4. 생성자 정의하는 방법
5. this 키워드 이해하기
1. 클래스 정의하는 방법
클래스
- 어떠한 객체의 변수, 메소드의 집합이다.
생성자
- 클래스로부터 객체를 생성할 때 초기 데이터를 전달받는 역할이다.
- 필수로 작성하지 않아도 자동으로 default 생성자가 정의된다.
- 반환 값이 없고, 클래스의 이름과 정확히 같아야 한다.
- 매개 변수의 개수를 다르게 해 여러 개 정의할 수 있다.
- public으로 정의해야 한다.
getter와 setter
- getter : 내부의 멤버 변수에 저장된 값을 외부로 리턴한다.
- setter : 외부로 데이터를 전달 받아 멤버 변수에 저장한다.
- 멤버 변수는 private으로 선언한다.
- private는 해당 클래스 외부에서 사용할 수 없으므로 해당 멤버 변수에 접근하기 위해 사용한다.
class Animal {
# 변수
private String name;
# 생성자
public Animal(String name){
this.name = name;
}
# setter
public void setName(String name){
this.name = name;
}
# getter
public String getName(){
return this.name;
}
# 메소드
public void printName(){
System.out.println(this.name);
}
}
2. 객체 만드는 방법
- 객체 변수 선언
- new 연산자를 이용하여 객체 생성
- 객체 변수를 통해 멤버 변수 및 멤버 함수에 접근
Animal animal = new Animal("nya");
new 연산자
- 객체를 생성해주는 역할을 한다.
- 메모리에 데이터를 저장할 공간을 할당 받고, 그 공간의 참조값을 객체에게 반환하며, 생성자를 호출한다.
3. 메소드 정의하는 방법
- 클래스 내에 함수를 작성한다.
# 함수
public void printName(){
System.out.println(this.name);
}
4. 생성자 정의하는 방법
- 클래스로부터 객체를 생성할 때 초기 데이터를 전달받는 역할이다.
- 필수로 작성하지 않아도 자동으로 default 생성자가 정의된다.
- 반환 값이 없고, 클래스의 이름과 정확히 같아야 한다.
- 매개 변수의 개수를 다르게 해 여러 개 정의할 수 있다.
- public으로 정의해야 한다.
# 생성자
public Animal(){
this.name = null;
}
public Animal(String name){
this.name = name;
}
5. this 키워드 이해하기
- 인스턴스의 자기자신을 의마한다.
- 자기자신의 메모리 주소를 담고 있는 키워드다.
- 생성자에서 다른 생성자를 호출할 때 사용한다.
- 인스턴스 자신의 주소를 반환할 때 사용한다.
자기 자신의 메모리를 가리킨다.
- 매개 변수의 이름과 멤버 변수의 이름이 같은 경우 this를 사용하지 않으면 매개 변수로 인식한다.
class Animal {
String name;
public Animal(String name){
name = name;
}
public void printName(){
System.out.println(name);
}
public static void main(String[] args){
Animal dog = new Animal("choco");
dog.printName();
// 결과 : null
}
}
생성자에서 다른 생성자를 호출 할 경우 사용한다.
- 매개 변수가 없는 생성자에서 this를 이용하여 다른 생성자를 호출하는 경우 첫 문장에서 실행해야 한다.
class Animal {
String name;
public Animal(){
this("bebe");
}
public Animal(String name){
this.name = name;
}
public void printName(){
System.out.println(name);
}
public static void main(String[] args){
Animal dog = new Animal();
dog.printName();
// 결과 : bebe
}
}
인스턴스 자신의 주소를 반환할 때 사용한다.
class Animal {
String name;
public Animal(String name){
this.name = name;
}
public Animal self(){
return this;
}
public void printName(){
System.out.println(name);
}
public static void main(String[] args){
Animal dog = new Animal("choco");
Animal cat = dog.self();
dog.printName(); // 결과 : choco
cat.printName(); // 결과 : choco
}
}
'Programming > JAVA' 카테고리의 다른 글
Te JAVA (3) - 자료구조 구현 (Binary Tree) (0) | 2023.10.13 |
---|---|
Te JAVA (3) - 상속 (0) | 2023.10.13 |
Te JAVA (2) - 자료구조 구현 (Queue) (1) | 2023.10.03 |
Te JAVA (2) - 자료구조 구현 (Stack) (1) | 2023.10.03 |
Te JAVA (2) - 자료구조 구현 (LinkedList) (0) | 2023.10.03 |