| 클래스 | 객체 | 
|---|---|
| 설계도 | 제품 | 
| 속성(변수) | 크기, 길이, 높이, 색상, 볼륨, 채널 등 | 
|---|---|
| 기능(메서드) | 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널변경, 등 | 
class Tv {
  // 변수
  String color;
  boolean power;
  int channel;
  
  // 메서드
  void power() {
    power = !power;
  }
  void channelUp() {
    channel++;
  }
  void channelDown() {
    channel--;
  }
}
객체 : 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래서로부터 생성된 객체(ex) Tv인스턴스)
클래스 ---인스턴스화---> 인스턴스(객체)
설계도 --- 제품생성---> 제품 사용
Q1. 클래스가 왜 필요한가?
A1. 클래스(설계도), 객체(제품)를 생성하기 위해
Q2. 객체가 왜 필요한가?
A2. 객체(제품)를 사용하기 위해
Q3. 객체를 사용한다는 것은?
A3. 객체(TV)가 가진 속성(변수)과 기능(메서드)을 사용하는 것
올바른 작성 예
      
  | 
    public class가 있는 경우, 소스파일의 이름은 반드시 public class의 이름과 일치해야 한다. | ||
      
  | 
    
      public class가 하나도 없는 경우, 소스파일의 이름은 class의 이름 중 아무거나 가능하다. 즉, 'Hello2.java', 'Hello3.java' 둘 다 가능하다.  | 
  
잘못된 작성 예
      
  | 
    
      하나의 소스파일에 둘 이상의 public class가 존재하면 안된다. 각 클래스를 별도의 소스파 일에 나눠서 저장하던가 아니면 둘 중 한 클래스에 public을 붙이지 않아야 한다.  | 
  ||
      
  | 
    
      소스파일의 이름이 public class의 이름과 일치하지 않는다.  소스파일의 이름을 'Hello2.java'로 변경해야 맞다.  | 
  ||
      
  | 
    
      소스파일의 이름과 public class의 이름이 일치하지 않는다. 대소문자를 구분하므로 대소문자까지 일치해야한다. 그래서, 소스파일의 이름에서 'h'를 'H'로 바꿔야 한다.  | 
  
ex) Hello2.java
// 하나의 소스파일(*.java)에는 하나의 클래스만 작성하는것이 바람직
public class Hello2 {} // 소스파일 이름은 public class이름과 일치
class Hello3 {} // 하나의 소스파일에는 하나의 public class만 허용
class Hello4 {}