객체는 클래스명 변수명 = new 클래스명(); 형식으로 생성한다. (클래스명 변수명; 변수명 = new 클래스명(); 으로 나눠서 생성할 수도 있다.)
객체의 생성과 사용
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
animal.age = 3;
animal.name = "강아지";
System.out.println(animal.age); // 3 출력
System.out.println(animal.name); // "강아지" 출력
animal.ageUp();
animal.changeName("고양이");
System.out.println(animal.age); // 4 출력
System.out.println(animal.name); // "고양이" 출력
}
}
class Animal{
// 멤버변수
String name; // 이름
int age; // 나이
// 메서드
void ageUp() { // 나이 + 1
age++;
}
void changeName(String newName) { // 이름 바꾸기
name = newName;
}
}
위의 코드를 보자. 아래에 Animal이라는 클래스를 만들었다. Animal 클래스 안에는 String 타입의 이름과 int타입의 나이가 멤버변수로 있고, 나이 + 1 하는 ageUp과 이름을 바꾸는 changeName 메서드가 있다.
Animal 클래스는 객체가 생성되기 전까진 아무 기능도 할 수 없기 때문에 위의 Main 클래스에서
Animal animal = new Animal();로 Animal 타입의 객체를 생성해준다. 그럼 이제 참조변수 animal을 통해 Animal 클래스에 접근할 수 있게 된다. 객체 생성후 그 클래스에 있는 멤버변수를 사용하려면참조변수.멤버변수를 사용하고, 메서드를 사용하려면참조변수.메서드이름()을 사용하면 된다.따라서 Main 클래스에서
animal.age = 3;과animal.name = "강아지"로 초기화를 해준 후 출력을 해보면 3과 강아지가 출력이 된다. 그리고 메서드를 호출하기 위해animal.ageUp();과animal.changeName("고양이");를 해주어서 age에 age + 1의 값을 저장하고 name에 newName으로 넣어준 "고양이"의 값을 저장한다. (메서드 괄호 안에 값을 넣는것은 매개변수파트에서.. ) 그후 출력을 해보면animal.age의 값은 4로,animal.name의 값은 "고양이"로 잘 출력이 된다.