class Animal {
}
public class Sample {
public static void main(String[] args) {
Animal cat = new Animal();
}
}
new
는 객체를 생성할 때 사용하는 키워드입니다. 이렇게 하면 Animal 클래스의 인스턴스(instance)인 cat, 즉 Animal의 객체가 만들어집니다.
Animal cat = new Animal();
Animal dog = new Animal();
Animal horse = new Animal();
class Animal {
String name;
}
public class Sample {
public static void main(String[] args) {
Animal cat = new Animal();
}
}
객체의 변수에 접근할 떄는 다음과 같이 .
을 사용합니다
객체.객체변수
ex)
Animal cat = new Animal()
cat.name // 객체: cat, 객체변수: name
메서드는 클래스 내에 구현된 함수를 의미하는데 보통 함수라고 말하지 않고 메서드라고 합니다.
class Animal {
String name;
public void setName(String name) {
this.name = name;
}
}
public class Sample {
public static void main(String[] args) {
Animal cat = new Animal();
cat.setName("boby"); // 메서드 호출
System.out.println(cat.name);
}
}
메서드명이 클래스명과 동일하고 리턴 자료형을 정의하지 않는 메서드를 생성자(Constructor)라고 합니다.
생성자의 규칙
생성자의 입력 항목이 없고 생성자 내부에 아무 내용이 없는 생성자를 디폴트 생성자라고 합니다.
class Dog extends Animal {
Dog() {
}
void sleep() {
System.out.println(this.name + " zzz");
}
}
입력 항목이 다른 생성자를 여러 개 만들 수 있는데 이런 것을 생성자 오버로딩(Overloading)이라고 한다.
class HouseDog extends Dog {
HouseDog(String name) {
this.setName(name);
}
HouseDog(int type) {
if (type == 1) {
this.setName("yorkshire");
} else if (type == 2) {
this.setName("bulldog");
}
}
}
클래스 상속을 위해서는 extends
라는 키워드를 사용합니다.
보통 부모 클래스를 상속받은 자식 클래스는 부모 클래스의 기능에 더하여 좀 더 많은 기능을 갖도록 작성합니다.
참고로 자바는 다중 상속을 지원하지 않습니다.
class Animal {
String name;
void setName(String name) {
this.name = name;
}
}
class Dog extends Animal {
void sleep() {
System.out.println(this.name+" zzz");
}
}