April 04, 2022

class Animal {
String name; // 객체 변수, 인스턴스 변수, 멤버 변수, 속성
public void setName(String name) { // 메소드 생성
this.name = name;
}
}
/**
* Sample
*/
public class Sample {
public static void main(String[] args) {
Animal cat = new Animal(); // 객체 생성, 초기화
cat.setName("kitty");
System.out.println(cat.name);
Animal dog = new Animal();
dog.setName("puppy"); // 객체 변수는 공유되지 않는다.
System.out.println(dog.name);
}
}보통의 경우 Class는 파일 단위로 관리된다. 위의 경우 Animal 클래스는 당연히 Animal.java에서 단독으로 관리하는것이 일반적이다.
class Animal {
}
public class Sample {
public static void main(String[] args) {
Animal cat = new Animal();
}
}new키워드를 통해 객체를 생성한다.Animal)는 설계도이며cat)은 객체가 된다.따라서 다음과 같이 무수히 많은 객체를 생성 할 수도 있다.
Animal cat = new Animal();
Animal dog = new Animal();
Animal horse = new Animal();
...💡 객체와 인스턴스
Class에 의해 만들어진 객체를Instance라고도 한다.- 즉,
Animal cat = new Animal()이렇게 만들어진cat은 객체이다. 그리고cat이라는 객체는Animal의 인스턴스 이다.- 인스턴스는 객체(
cat)이 어떤 클래스(Animal)의 객체인지를 관계 위주로 설명할 때 사용된다.- 따라서
cat은 인스턴스 보다는cat은 객체가 더 올바른 표현이며cat은Animal의 객체 보다는cat은Animal의 인스턴스 라는 표현이 올바른 표현이다.
class Animal {
String name;
}
public class Sample {
public static void main(String[] args) {
Animal cat = new Animal();
}
}객체 변수는 도트연산자(.)를 통해 접근 가능 하다.
cat.name // 객체: cat, 객체변수: namenull이 출력된다.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();
System.out.println(cat.name);
}
}위 예시, Animal 클래스에 생성된 setName 메소드는 다음과 같은 형태의 메소드이다.
String namevoid (리턴값 없음)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);
}
}메소드를 호출하기 위해서는 객체변수와 마찬가지로 도트연산자(.)를 사용한다.
cat.setName("boby");this는 클래스에 의해 생성된 객체를 지칭한다. 즉, Animal cat = new Animal()과 같이 cat 객체를 생성하고 cat.setName(”boby”)와 같이 cat객체에 의해 setName 메소드를 호출하면 setName 메소드 내부에 선언된 this는 cat을 가리킨다.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");
Animal dog = new Animal();
dog.setName("happy");
System.out.println(cat.name);
System.out.println(dog.name);
}
}
/* Output
boby
happy
*/Static을 이용하게 되면 객체 변수를 공유 하도록 만들 수 있다.