[용어 정리] 리터럴(literal) 과 상수(constant)

정현명·2022년 2월 15일
0

용어정리

목록 보기
1/1
post-thumbnail

리터럴과 상수의 차이

상수와 리터럴 둘 다 변하지 않는 값을 의미한다

상수

  • 상수는 변하지 않는 변수를 의미한다
  • 상수는 숫자, 문자 뿐만 아니라 클래스나 객체를 넣을 수 있다
  • 참조변수를 상수로 지정할 때 해당 상수는 참조변수의 주소값을 가지기 때문에 그 주소가 가리키는 데이터 내부는 바뀔 수 있다
  • 자바 예시
class Student{
	int age;
	
	Student(int age){
		super();
		this.age = age;
	}
}

final Student s1 = new Student(20); // 클래스를 상수로 선언

s1 = new Student(15); // s1 변수가 상수이고 이를 가리키던 주소와 다른 주소를 대입했기 때문에 오류
s1.age = 21; // s1 변수가 가리키던 주소 내의 데이터를 바꾼 것이기 때문에 가능


리터럴

  • 리터럴은 변수 안에 넣는 데이터 그 자체이다
  • boolean, char, double, long, int... 등 변하지 않는 데이터를 리터럴(literal)이라 부른다
  • 값이 언제 바뀔 지 모르는 인스턴스는 리터럴이 될 수 없다 (class .. 등)
  • 예외로 데이터가 변하지 않도록 설계한 클래스를 불변 클래스(immutable class)라고 부른다
  • 불변 클래스에서 객체를 생성하면 해당 객체의 데이터는 변하지 않는다 ( String => 객체 리터럴 )

상수와 리터럴 참고

profile
꾸준함, 책임감

0개의 댓글