클래스의 정의 클래스란 객체를 정의해 놓은것
클래스의 용도 클래스는 객체를 생성하는데 사용
객체의 정의 실제로 존재하는것. 사물 또는 개념
객체의 용도 객체가 가지고 있는 기능과 속성에 따라 다름
| 클래스 | 객체 |
|---|---|
| 제품 설계도 | 제품 |
| TV 설계도 | TV |
| 붕어빵 기계 | 붕어빵 |
객체지향개념
객체 = 속성(변수) + 기능(메서드)
객체: 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래스로부터 생성된 객체(예:Tv인스턴스)
객체 = 인스턴스 같은 의미는 맞으나 보통 부를때는
인스턴스를 대표할때 객체라고 부르는거고
특정 클래스로부터 생성된 객체는 인스턴스라고 부른다고 합니다.
클래스는 설계도라고 생각하고 인스턴스는 제품이라고 생각하면 될것같다.
Q.클래스가 왜 필요한가? (설계도)
A.객체를 생성하기 위해 (제품)
Q.객체가 왜 필요한가? (제품)
A.객체를 사용하기 위해 (제품)
Q.객체를 사용한다는것은? (TV)
A.객체가 가진 속성과 기능을 사용하려고 (TV)
속성(변수), 기능(메서드)
한 파일 여러 클래스 작성하기
| 올바른 작성 예 | 설명 |
|---|---|
| Hello2.java public class Hello2{} class Hello3{} | public class가 있는 경우. 소스파일의 이름은 반드시 public class의 이름과 일치해야한다. |
| Hello2.java class Hello2{} class Hello3{} | public class가 하나도 없는 경우. 소스파일의 이름은 'Hello2.java' , 'Hello3.java' 둘 다 가능하다. |
| 잘못된 작성 예 | 설명 |
|---|---|
| Hello2.java public class Hello2{} | 하나의 소스파일에 둘 이상의 public class가 존재하면 안된다. 각 클래스를 별도의 소스파일에 나눠서 저장하던가 아니면 둘 중의 한 클래스에 public을 붙이지 않아야한다. |
| Hello3.java public class class Hello3{} | 소스파일의 이름과 public class의 이름이 일치하지않는다. 대소문자를 구분하므로 대소문자까지 일치해야한다. 그래서 소스파일의 이름에서 'h'를 'H'로 바꿔야한다. |
클래스명 변수명; //클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t; //Tv클래스 타입의 참조변수 t를 선언
t = new Tv(); //Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
Tv t = new Tv(); // 이렇게 써도됨
t.channel = 7; //Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown(); //Tv인스턴스의 메서드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다.);
1.클래스작성 (설계도)
2.객체생성 (제품)
3.객체사용 (제품사용)