TIL [20240424]

이윤성·2024년 4월 24일
0

TIL

목록 보기
4/51

Java 문법 종합반 3주차

오늘은 Java의 객체지향 프로그래밍에 대한 핵심 개념과 원리를 공부했다. 객체지향 프로그래밍은 세상에 있는 물체(객체)를 기반으로 프로그램을 구성하는 방법론으로, 클클래스를 통해 객체를 정의하고 상태와 행위를 캡슐화하는 것이 핵심이다.

대부분의 개념이 C#과 유사하지만, final 키워드가 다소 낯설게 느껴졌다. 이는 C#의 sealed나 readonly 키워드와 유사한 역할을 하는 것 같다. 또한, Java에서 상수를 선언할 때는 static final을 사용하는데, 이는 C#의 const 키워드와 몇 가지 차이점이 있다.

값 할당 시점:

C#의 const는 컴파일 시점에 값이 할당되어야 합니다. 컴파일러는 const 변수를 해당 값으로 대체합니다.
Java의 final은 런타임에 값이 할당될 수 있습니다. final 변수는 선언 시점이나 생성자에서 초기화할 수 있습니다.


값 변경 가능성:

C#의 const는 한 번 할당된 값을 변경할 수 없습니다.
Java의 final도 한 번 할당된 값을 변경할 수 없지만, 객체 참조의 경우 객체 내부의 상태는 변경될 수 있습니다.


적용 대상:

C#의 const는 기본 데이터 타입(primitive types)과 string 타입에만 사용할 수 있습니다.
Java의 final은 기본 데이터 타입, 객체 참조, 클래스, 메서드 등 다양한 대상에 사용할 수 있습니다.


상수 표현식:

C#의 const는 컴파일 시점에 평가되는 상수 표현식(constant expressions)에 사용됩니다.
Java에서는 상수 표현식을 위해 static final 키워드를 함께 사용합니다.

또한, 상속 시 extends 키워드를 사용해야 하는 점과 인터페이스 사용 방법에서도 C#과 다른 점이 보여 주의 깊게 학습해야 할 것 같다.

오늘은 개인 과제, 강의 끝마다 제출하는 숙제 할 때를 제외하면 집중이 잘 안되었던 것같다. 코딩할 때를 제외하고는 집중력이 떨어지는 경향이 있어, 하루 종일 강의만 듣기보다는 오전과 오후로 계획을 나누어 다른 공부를 병행하는 것이 효과적일 것 같다. 오전에는 강의를 듣고, 오후에는 코딩 테스트 연습을, 저녁 이후에는 개인 과제를 진행하는 방식으로 스케줄을 조정해 볼 계획이다.

0개의 댓글