클래스와 객체
클래스의 정의 : 클래스란 객체를 정의해 놓은 것
클래스의 용도 : 클래스는 객체를 생성하는데 사용
객체의 정의 : 실제로 존재하는 것. 사물 또는 개념
객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름
| 클래스 | 객체 |
|---|---|
| 제품 설계도 | 제품 |
| TV 설계도 | TV |
객체의 구성요소 - 속성과 기능
객체 = 속성(변수)+기능(메서드)
| 속성 | 크기,길이,높이,색상 |
|---|---|
| 기능 | 켜기, 끄기, 볼륨 높이기 |
객체와 인스턴스
객체 : 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래스로부터 생성된 객체(예:TV인스턴스)
클래스(설계도) (인스턴스화) →인스턴스(객체,제품)
하나의 소스파일에 여러 클래스 작성
| 올바른 예 | 설명 |
|---|---|
| Hello2.java / public class Hellow2 {} class Hello3 {} | public class가 있는 경우, 소스파일의 이름은 반드시 public class 의 이름과 일치해야한다. |
| Hello2.java / class Hellow2 {} public class Hello3 {} | public class가 하나도 없는 경우, 소스 파일의 이름은 “Hello2,java” “Hello3.java” 둘다 가능하다. |
| 잘못된 작성 예 | 설명 |
|---|---|
| Hello2.java / public class Hellow2 {} ublic class Hello3 {} | 하나의 소스파일에 둘 이상의 public class가 존재하면 안 된다. 각 클래스를 별도의 소스파일에 나눠서 저장하거나 아니면 둘 중의 한 클래스에 public을 붙이지 않아야 한다. |
| Hello3.java / public class Hellow2 {} class Hello3 {} | 소스파일의 이름이 public class의 이름과 일치하지 않는다. 소스파일의 이름을 ‘Hello2.java로 변경해야 맞다. |
| hello2.java / public class Hellow2 {} class Hello3 {} | 소스파일의 이름과 public class의 이름이 일치하지 않는다. 대소문자를 구분하므로 대소문자까지 일치해야한다. 소스파일의 이름에서 ‘h’를 ‘H’로 바꿔야 한다. |
ex-class, 소스파일
public class Hello1 {
class ex2 {}
class ex3 {}
//소스파일의 이름은 public class 이름과 일치해야한다.
//하나의 소스파일에는 하나의 public class만 허용
//하나의 소스파일에는 하나의 클래스만 작성하는 것이 바람직
}
객체의 생성과 사용
클래스명 변수명;
변수명 = new 클래스명();
TV t; //TV 클래스 타입의 참조 변수 t를 선언
t = new TV(); //TV인스턴스를 생성한 후, 생성된 TV인스턴의 주소를 t에 저장
`t.channel = 7; TV인스턴스의 멤버번수의 값을 7로 한다.`
t.channelDown(); //TV 인스턴스의 메서드channelDown(); 호출한다.
System.out.println(”현재 채널은”+t.channel);
ex 객체 사용 예제