// 상속 : 부모의 기능을 상속받아 확장해나간다.
class Saram {
protected String name;
}
class 학생 extends Saram {
private String schoolName;
public 학생(String schoolName, String name){
this.name = name;
this.schoolName = schoolName;
}
}
public class accessTest {
public static void main(String[] args){
학생 obj = new 학생("영도중학교", "김기준");
}
}
class Sample2 {
int a; // 객체마다 소유한다 > this로 객체를 구별한다.
static int b; // 객체들이 공유한다 > this가 존재하지 않는다.
static {
System.out.printIn("정적 초기화 영역");
b = 20;
System.out.printIn(b);
}
Sample2(){
System.out.printIn("생성자");
}
}
public class forNameTest2 {
public static void main(String[] args) thorws ClassNotFoundException{
// 프로그램을 실행하려면 저장된 프로그램을 읽어온 다음 인스턴스를 생성
// Sample2.java 파일을 자바가 번역하면 Sample2.class 파일이 만들어진다.
// Sample2의 객체를 생성하면 Sample1.class를 읽어와서 객체찍어내기
// Class.forName으로 클래스를 읽어올 수 있다.
Class clz = Class.forName("com.icia.example5.Sample2");
}
}
Class 클래스는 클래스들의 정보(클래스의 필드, 메서드, 클래스의 종류(인터페이스 등))를 담는 메타 클래스이고 JVM은 이 Class 클래스를 통해 클래스들에 대한 정보를 로드한다.
로드되어 있지 않다면 ClassLoader 클래스 혹은 그를 상속받은 클래스들을 이용하여 A 클래스를 로드하려고 할 겁니다. 만약 찾지 못하면 ClassNotFoundException이 발생하게 되는 것