Technology/Java 23

Java의 패키지에 대해 알아보자! (feat. 클래스패스, import)

패키지란? 패키지란 '서로 관련된 클래스(인터페이스 등 포함)들의 그룹'으로 클래스를 효율적으로 관리할 수 있다. 이때 클래스의 실제 이름은 클래스 자체의 이름뿐만 아니라 패키지명을 모두 포함한 이름으로, 이를 FQCN(Fully Qualified Class Name)이라고 한다. 따라서 클래스 이름이 같더라도 패키지만 다르면 다른 클래스인 것이다. 패키지에 포함된 클래스에 대한 소스코드를 작성할 때는 항상 패키지를 첫 번째 문장(주석, 공백 제외)에 선언해주어야한다. 이때 패키지 안에 또 다른 패키지가 존재할 수도 있는데, 이는 .을 이용하여 구분한다. package ikjo.java; class Example { // 최상위 패키지 ikjo에 속한 java 패키지 그리고 java 패키지에 속한 Exa..

Technology/Java 2022.09.01

Java의 상속에 대해 파헤쳐보자!

상속이란? 상속은 객체지향 4대 특성 중 하나의 특성인데, 상속이란 기존의 클래스(상위 클래스)를 '재사용 및 확장'한 새로운 클래스(하위 클래스)를 작성하는 것이다. 여기서 '재사용'이라는 표현을 사용했는데, 이는 상위 클래스의 멤버(변수, 메서드)를 하위 클래스가 모두 상속받아 (재)사용할 수 있기 때문이다. 이때 상위 클래스의 생성자나 초기화 블럭은 상속되지 않는다. 만일 여러 클래스들이 있을 때 '공통되는 멤버'가 있다면 상속 관계를 적용할 수 있는지 생각해볼 법하다. 또한 '확장'이라는 표현을 사용했는데, 이는 하위 클래스가 상위 클래스로부터 상속받은 멤버에 더해서 추가적인 멤버를 작성할 수 있기 때문이다. (메서드를 오버라이딩함으로써 재정의할수도 있다.) 이때 새롭게 추가되는 멤버는 상위 클래..

Technology/Java 2022.08.27

Java final 키워드의 여러가지 쓰임새

final 키워드란? final이란 '마지막'이라는 뜻을 가지고 있는데, 실제 자바에서 쓰임새도 이 의미와 유사하게 사용된다. 이때 final 키워드가 사용될 수 있는 대상은 '클래스', '메서드', '변수' 세가지 뿐으로 각각의 경우에 대해 알아보자. 클래스에 사용되는 final 클래스에 final 키워드가 사용되면 해당 클래스는 상속받을 수 없게 된다. 대표적인 final class에는 java.lang 패키지에서 제공하는 String 클래스와 Math 클래스가 있다. public final class Math { // ... public final class String implements java.io.Serializable, Comparable, CharSequence { // ... 이러한 f..

Technology/Java 2022.08.26

Java의 Object 클래스가 제공하는 기능 분석

Object 클래스란? 객체지향 프로그래밍 언어인 자바에서 모든 코드는 반드시 클래스 안에서 존재하며, 이러한 클래스는 서로 관련된 속성과 기능 간의 그룹으로 묶이게 된다. 이때 Object 클래스는 모든 클래스들의 최상위 클래스로, 모든 클래스들은 Obejct 클래스를 상속받는다. 우리가 어떤 클래스를 작성할 때 별도로 Object 클래스를 상속하지 않아도 됐었던 이유는 컴파일 시 자바 컴파일러가 'extents Object'를 자동으로 추가해주기 때문이다. 참고로 Object가 아닌 다른 클래스를 상속받도록 명기해준 경우에는 해당 클래스가 이미 Object를 상속받기 때문에 중복해서 추가해주진 않는다. Object 클래스가 제공하는 여러가지 기능들 하위 클래스가 상위 클래스를 상속받으면 상위 클래스의..

Technology/Java 2022.08.26

Java의 클래스와 객체 이해하기

클래스와 객체란? 우선 클래스란 무엇인가? 클래스란 '객체를 정의해놓은 것' 또는 '객체의 설계도 또는 틀'이라고 할 수 있다. 이러한 클래스는 객체를 생성하는데 사용된다. 그렇다면 객체란 무엇인가? 객체는 '클래스에 정의된 내용대로 메모리에 생성된 것'으로 서로 관련된 속성과 기능으로 구성된다. 이를 통틀어 멤버라고 한다. 이때 클래스로부터 객체를 만드는 과정을 '인스턴스화'라고 하며, 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다. 여기서 클래스가 분류의 개념이라면 객체는 해당 분류에 속하는 실체를 의미한다고 볼 수 있다. 예를 들면, 과일이라는 클래스가 있다면 그 안에 바나나, 사과, 딸기 등의 여러 객체들이 존재할 수 있는 것이다. 이처럼 바나나, 사과 등 각각의 ..

Technology/Java 2022.08.16