본문 바로가기
728x90
반응형

자바21

[자바(Java) 공부하기] 21. 추상화 - 우당탕탕 개발자 되기 프로젝트 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면, 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 합니다. 추상 클래스가 부모, 실체 클래스가 자식으로 구현되면 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성을 가질 수 있습니다. 추상 클래스를 선언할 때는 선언에 abstract 키워드를 붙여야 합니다. abstract를 붙이면 new 연산자를 이용해서 객체를 만들지 못하고, 상속을 통해 자식 클래스를 만들 수 있습니다. 실체 클래스를 설계하는 사람이 여러 사람일 경우, 실체 클래스마다 필드와 메서드가 각기 다른 이름을 가질 수 있습니다. 추상 클래스는 실체 클래스의 공통된 필드와 메서드의 이름을 통일할 용도로 사용합니다. 실체 클래스가 가져야 할 필.. 2023. 7. 21.
[자바(Java) 공부하기] 20. 다형성 - 우당탕탕 개발자 되기 프로젝트 여러 개의 형태를 갖는다라는 의미의 그리스어에서 유래된 다형성(polymorphism)은 하나 이상의 형태를 뜻합니다. Java에서 다형성이란 동일한 이름을 사용하지만 다양한 객체를 이용해서 다양한 실행 결과가 나오도록 하는 성질을 말합니다. 다형성은 부모 타입으로 자식 객체를 사용하는 것이므로 다형성을 구현하려면 메서드 재정의와 타입 변환이 필요합니다. 자식은 부모 타입으로 자동 타입 변환이 가능합니다. 이를 업캐스팅 또는 자동 타입 변환이라고 합니다. 업캐스팅은 부모 타입 변수 = 자식 객체; 형식으로 작성할 수 있습니다. 부모 타입으로 자동 타입 변환된 이후에는 부모 클래스에 선언된 필드와 메서드만 접근이 가능합니다. 변수는 자식 객체를 참조하지만, 변수로 접근 가능한 멤버는 부모 클래스 멤버로만 .. 2023. 7. 20.
[자바(Java) 공부하기] 19. 상속 - 우당탕탕 개발자 되기 프로젝트 Java에서 상속이란 부모 클래스의 멤버를 자식 클래스에게 물려주는 것을 말합니다. 프로그램에서는 부모 클래스를 상위 클래스라고 부르고, 자식 클래스를 하위 클래스라고 부릅니다. 현실에서 상속은 부모가 자식을 선택해서 물려주지만, 프로그램에서는 자식이 부모를 선택합니다. 자식 클래스를 선언할 때 어떤 부모 클래스를 상속받을 것인지 결정하고, 선택된 부모 클래스는 extends를 적어 그 뒤에 나타내줍니다. 상속은 반복적으로 들어가는 공통적인 부분을 빼서 묶어주고 따로 속성을 추가적으로 지정할 수 있습니다. 따라서 상속을 사용하면 공통적인 부분을 일일이 기능 구현해 줄 필요가 없어지고, 코드도 쓸데없이 길어지지 않고 깔끔해져 나중에 수정할 때도 공통적인 부분 하나만 수정해 주면 되기 때문에 유지 보수가 쉽.. 2023. 7. 19.
[자바(Java) 공부하기] 18. 중첩 클래스 - 우당탕탕 개발자 되기 프로젝트 객체지향 프로그래밍에서 클래스는 서로 긴밀한 관계를 맺고 상호작용합니다. 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋지만, 특정 클래스와 관계를 맺는 경우에는 클래스 내부에 선언하는 것이 좋습니다. 이렇게 클래스 내부에 선언한 클래스를 중첩 클래스라고 합니다. 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있습니다. 중첩 클래스는 클래스 내부에 선언되는 위치에 따라서 두 가지로 분류됩니다. 클래스의 멤버로 선언되는 중첩 클래스를 멤버 클래스라고 하고, 생성자 또는 메서드 내부에서 선언되는 중첩 클래스를 로컬 클래스라고 합니다. 멤버 클래스는 다시 인스턴스 멤버 클래스와.. 2023. 7. 18.
[자바(Java) 공부하기] 17. 지정 예약어 - 우당탕탕 개발자 되기 프로젝트 지정 예약어에 대해 알아보기 전에 Java의 인스턴스와 정적 멤버에 대해 먼저 알아보겠습니다. 클래스로부터 객체(인스턴스)는 하나가 아니라 여러 개가 만들어질 수 있습니다. 이때 객체마다 필드 값이 달라야 한다면 해당 필드는 객체마다 가지고 있는 것이 맞지만, 객체의 필드 값이 모두 같아야 한다면 이 필드를 객체마다 가지고 있을 필요가 없게 됩니다. Java는 이런 경우를 위해 클래스 멤버를 인스턴스와 정적으로 구분해서 선언할 수 있도록 합니다. 인스턴스 멤버란 객체를 생성한 후 사용할 수 있는 필드와 메서드를 말하는데, 이들을 각각 인스턴스 필드와 인스턴스 메서드라고 부릅니다. 그리고 이는 생성한 객체를 참조 변수로 사용하여 접근해야 합니다. 필드와 메서드 앞에 static 키워드를 추가적으로 붙이면 .. 2023. 7. 17.
[자바(Java) 공부하기] 16. 접근제한자 - 우당탕탕 개발자 되기 프로젝트 접근 제한자는 말 그대로 접근을 제한하기 위해 사용됩니다. 접근은 클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근을 말합니다. 접근 제한자는 public, protected, private 세 가지 종류가 있습니다. 먼저 클래스의 접근 제한부터 알아보자면, 클래스는 public, default 접근 제한을 가집니다. 클래스를 선언할 때 public을 생략했다면 클래스는 default 접근 제한을 가지게 됩니다. 클래스가 default 접근 제한을 가지면 같은 패키지(package)에서는 사용할 수 없습니다. 물론 경우에 따라 import를 활용하여 클래스에 접근할 수도 있습니다. 클래스에 public을 붙였다면 클래스는 다른 패키지에서도 아무런 제한 없이 사용할 수 있습니다. 다음으로 생성자.. 2023. 7. 16.
[자바(Java) 공부하기] 15. 클래스 배열(객체 배열) - 우당탕탕 개발자 되기 프로젝트 각 원소가 클래스로 이루어진 배열을 만들 수 있는데, 이런 클래스 배열은 자료의 값을 담는 기본 자료형 배열과는 다르게 객체 자체를 담는 배열입니다. 객체는 생성자를 통해 만드는 인스턴스를 뜻합니다. 기본 자료형이 직접 값을 메모리에 넣는 기본 자료형 배열과는 다르게 객체 배열은 주소값을 넣습니다. 클래스 배열은 기본적으로 클래스를 만들고 클래스 이름[] 변수 이름 = new 클래스 이름[배열 길이]; 형식으로 선언할 수 있고 변수 이름[index 값] = new 생성자(매개변수,...); 형식으로 클래스 배열을 각각 생성할 수 있습니다. 객체 배열은 기본 자료형 배열과 마찬가지로 index를 활용하여 각 원소에 접근할 수 있습니다. 접근한 원소는 각각 객체이기 때문에 그 객체가 가지고 있는 필드나 메서.. 2023. 7. 15.
[자바(Java) 공부하기] 14. 생성자 - 우당탕탕 개발자 되기 프로젝트 생성자(constructor)는 new 연산자로 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화 역할을 합니다. 객체 초기화란 필드를 초기화하거나 메서드를 호출해서 객체를 사용할 준비를 하는 것을 말합니다. 생성자를 실행하지 않고는 클래스로부터 객체를 만들 수 없습니다. new 연산자에 의해 성성자가 성공적으로 실행되면 힙(heap) 영역에 객체가 생성되고 객체의 주소가 반환됩니다. 반환된 객체의 주소는 클래스 변수에 저장됩니다. 모든 클래스는 생성자가 반드시 존재하며, 생성자를 하나 이상 가질 수 있습니다. 클래스 내부에 생성자 선언을 생략했다면 컴파일러는 중괄호 { } 블록 내용이 비어있는 기본 생성자를 자동을 생성합니다. 기본 생성자 외의 생성자를 선언하려면 생성자의 매개변수의 내용과 이에 따.. 2023. 7. 14.
[자바(Java) 공부하기] 13. 필드 - 우당탕탕 개발자 되기 프로젝트 필드(field)에 대해 자세하게 알아보겠습니다. 필드는 객체의 고유 데이터로 객체의 현재 상태 데이터를 저장하는 곳입니다. 필드 선언은 클래스 중괄호 { } 블록 어디에서든 가능합니다. 생성자 선언과 메서드 선언의 앞이나 뒤, 어떤 곳에서도 필드 선언이 가능합니다. 하지만 생성자와 메서드 중괄호 { } 블록 내부에서는 선언할 수 없습니다. 생성자와 메서드 중괄호 내부에 선언되는 것은 모두 지역 변수가 되기 때문입니다. 필드를 사용하는 것은 필드값을 읽고 변경하는 작업을 말합니다. 클래스 내부의 생성자나 메서드에서 사용할 경우 필드 이름 자체로 읽고 변경할 수 있지만, 클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤에, 필드를 사용해야 합니다. 객체를 이용해서 필드나 메서드를 호출할.. 2023. 7. 13.
[자바(Java) 공부하기] 12. 클래스 - 우당탕탕 개발자 되기 프로젝트 클래스를 알아보기 전에 객체에 대해 먼저 알아보겠습니다. 객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별이 가능한 것을 말합니다. 객체는 속성과 동작(기능)으로 구성되어 있는데, 이 속성과 동작을 Java에서는 각각 필드(field)와 메서드(method)라고 합니다. 객체들은 각각 독립적으로 존재하며, 다른 객체와 서로 상호작용하면서 동작합니다. 객체들 사이의 상호작용 수단이 메서드이고, 이때 객체가 다른 객체의 기능을 이용하는 것이 메서드 호출입니다. 객체는 설계도를 바탕으로 만들어지는데, Java에서 이 설계도를 클래스(Class)라고 합니다. 클래스에는 객체를 생성하기 위한 필드와 메서드가 정의되어 있습니다. 클래스로부터 만들어진 객체를 해당 .. 2023. 7. 12.
728x90
반응형