3-2주차 시작
클래스 선언
●클래스 선언
public class 클래스명{
}
public class Car{
}
public class CarExam{
public static void main(String args[]){
Car c1 = new Car();
Car c2 = new Car();
}
}
참조타입
●참조타입

출처 : https://school.programmers.co.kr/learn/courses/5/lessons/138
//기본형 타입
int i = 4;
//참조형 타입
String str = new String("hello");
String클래스
●String클래스
//new연산자를 이용하지 않고 인스턴스를 만드는 경우
String str1 = "hello";
String str2 = "hello";
1."hello"라는 문자열이 메모리 중에서 상수가 저장되는 영역에 저장, 상수는 변하지 않는 값을 의미
2.String str2 = "hello"; 이 문장이 실행될 때에 hello 라는 문자열 상수는 이미 만들어져 있으므로 str1이 참조하는 인스턴스를 str2도 참조
//new연산자를 이용해서 인스턴스를 만드는 경우
String str3 = new String("hello");
String str4 = new String("hello");
1.new연산자를 이용하여 인스턴스를 만들면 인스턴스는 무조건 새롭게 만들어짐
2.String str4 = new String("hello"); 이 문장이 실행될때도 새롭게 만들게 되므로, str3과 str4는 서로 다른 인스턴스를 참조
if(str1 == str2) //참조형이였을대는 실제 값을 비교하지않고 가르키고있는 주소가 같은지 비교, 같은 인스턴스를 참조하므로 결과는 true
System.out.println("str1과 str2는 같은 레퍼런스입니다.");
if(str1 == str3) //서로 다른 인스턴스를 참조하므로 결과는 false
System.out.println("str1과 str3는 같은 레퍼런스입니다.");
if(str3 == str4){ //str3과 str4는 서로 다른 인스턴스를 참조하므로 결과는 false
System.out.println("str3과 str4는 같은 레퍼런스입니다.");
//String의 큰특징중 하나가 한번 생성된것은 변하지않음
System.out.println(str1); //출력 hello
System.out.println(str1.substring(3)); //출력 lo
//substring-잘라주세요라는 의미를 가지고있음
//인덱스가 3번인거부터 보여주세요라는 뜻
//3번부터 나머지만 출력
System.out.println(str1); //출력 hello
//str1자체는 안바뀜
필드(field)선언
●필드(field)선언
public class Car {
//타입 필드명
String name;
int number;
}
public class CarExam {
public static void main(String[] args) {
Car c1 = new Car();
Car c2 = new Car();
c1.name = "소방차";
c1.number = 1234;
c2.name = "구급차";
c2.number = 1111;
System.out.println(c1.name); //출력 소방차
System.out.println(c1.number); //출력 1234
System.out.println(c2.name); //출력 구급차
System.out.println(c2.number); // 1111
}
}
3-2주차 후기
클래스 선언, 참조타입, String클래스, 필드(field)선언에 대해서 배웠는데,
명확하지 않았던 개념을 확실하게 알게된거같습니다.
특히 참조타입이라는걸 잘모르고있었는데, 새롭게 알게되었고 String클래스에 대해서는 다시한번더 개념을 똑바로 잡았습니다.