참조형 자료형(기본 자료형 8가지를 제외한 모든 자료형. 예를 들어 String이 있음)은 객체의 주소값을 갖고 있다. 객체는 알맹이이고, 사실 bw.method10(); 이런 것들이다. 클래스가 있어야 객체를 만들 수 있다. 직접 만든 것은 객체이고 객체를 만들기 위한 도면을 클래스라고 한다. 각각의 기능들은 메소드가 된다. 객체가 할 수 있는 기능을 메소드라고 봐도 된다.
모든 참조형 자료형은 기본값으로 null을 갖고 있다.
String str = ""; 공간 하나 만들어서 그것에 대한 주소값을 갖고 있다.
String str = null; 아무것도 참조하고 있지 않다. 가리키고 있는 게 없다.
null 때문에 가장 많이 나는 에러 -> NullPointerException ->
String str = null;
while(!str.equals("exit")) { 아무 곳도 가리키지 않는데 메소드를 갖고 오라고 해서 갖고 올 수가 없어서 에러가 난다.
// while
/*
String str = "";
while(!str.equals("exit")) {
System.out.print("문자열 입력 : ");
str = sc.nextLine();
System.out.println("str : " + str);
}
*/
// do~while
String str = null;
do {
System.out.print("문자열 입력 : ");
str = sc.nextLine(); // str은 더 이상 null이 아니다. 내가 입력한 값이 있는 것이다.
System.out.println("str : " + str);
} while(!str.equals("exit"));