패키지: 패키지는 클래스들을 그룹화하여 이름을 붙여놓은 것이다.
클래스: 클래스는 변수와 메소드를 그룹화 한 것이다
인스턴스: 일회용이 아닌 긴맥락의 작업을 할 때는 Constructor를 사용하여 클래스를 복제하는데 복제한 클래스가 인스턴스이다. 인스턴스의 앞부분에는 그 속성을 알기위해 클래스의 이름을 붙여주며, 각각의 인스턴스마다 서로다른 성질을 내장한다.
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
// PrintWriter를 사용하기 위해 다른 클래스를 임포트
public class InstanceApp {
public static void main(String[] args) throws IOException {
// Instance
PrintWriter p1 = new PrintWriter("result1.txt");
p1.write("Hello 1");
p1.close();
PrintWriter p2 = new PrintWriter("result2.txt");
p2.write("Hello 2");
p2.close();
}
}
변수와 인스턴스의 차이점
- a=1
b=class
c=new instance() <- 인스턴스
위와 같이 왼쪽의 변수는 오른쪽의 데이터들에 이름을 붙인 것이라고 할 수 있다.
상속: 클래스는 서로 계층적인 관계를 가지고 있어서 자식에 해당하는 클래스는 부모클래스의 모든 변수와 메소드를 사용할 수 있다.
오버라이드: 자식클래스가 메소드를 사용할 때 부모클래스에도 있으면 덮어씌우는데 오버라이드라고 한다.