본문 바로가기

Java Study31

this 키워드와 super 키워드 this 키워드 자바와 같은 객체 지향 프로그래밍 언어에서 사용되는 특수한 키워드입니다. this는 현재 객체를 가리키는 참조(Reference)를 의미하며, 주로 다음과 같은 상황에서 사용됩니다.  1.  현재 객체의 인스턴스 변수에 접근this 키워드를 사용하여 현재 객체의 인스턴스 변수에 접근할 수 있습니다. 이는 특히 메서드의 매개변수와 인스턴스 변수의 이름이 같을 때 유용합니다.public class MyClass { private int x; public void setX(int x) { this.x = x; // this를 사용하여 인스턴스 변수에 접근 }}위 예제에서 setX 메서드의 매개변수 x와 인스턴스 변수 x의 이름이 같기 때문에 this를 사용하여 인.. 2024. 7. 15.
접근 제어자(access modifier) 객체 지향에서 정보 은닉(data hiding)이란 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념입니다.그렇게 함으로써 사용자는 언제나 최소한의 정보만으로 프로그램을 손쉽게 사용할 수 있게 됩니다.자바에서는 이러한 정보 은닉을 위해 접근 제어자(access modifier)라는 기능을 제공하고 있습니다.접근 제어자를 사용하면 클래스 외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보 은닉을 구체화할 수 있습니다. 자바에서는 다음과 같은 네 가지의 접근 제어자를 제공합니다. 1. private2. public3. default4. protected  private 접근 제어자 private 접근 제어자를 사용하여 선언된 클래스 멤버는 외부에 공개되지 않으며, 외부에서는 직.. 2024. 7. 15.
게터(getter)와 세터(setter) 메서드 getter와 setter는 데이터 캡슐화를 구현하는 데 사용되는 메서드입니다. 주로 private으로 선언된 인스턴스 변수의 값을 읽거나 설정하는 역할을 합니다. 이 메서드들은 객체 지향 프로그래밍에서 정보 은닉(information hiding)을 실현하는 데 중요한 역할을 합니다. Getter  메서드Getter 메서드는 주로 인스턴스 변수의 값을 반환하는 역할을 합니다. 일반적으로 다음과 같은 특징을 가집니다:접근 제어자: 대부분 public으로 선언되어야 합니다. 외부에서 접근할 수 있어야 변수 값을 읽을 수 있습니다.메서드 이름: 보통 get으로 시작하며, 그 뒤에 변수명의 첫 글자를 대문자로 시작한 이름을 붙입니다. 예를 들어, getName() 메서드는 name 변수의 값을 반환합니다.반환.. 2024. 7. 15.
클래스(static) 메서드와 인스턴스 메서드 클래스 변수와 인스턴스 변수에서도 그랬듯이, 메서드 앞에 static이 붙으면 클래스 메서드, 없으면 인스턴스 메서드 입니다.클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 "클래스이름.메서드이름(매개변수)"와 같은식으로 호출이 가능합니다.반면에, 인스턴스 메서드는 반드시 객체를 생성해야만 호출이 가능합니다. 인스턴스 메서드인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드입니다.인스턴스 변수는 인스턴스를 생성해야만 만들어지므로 인스턴스 메서드 역시 인스턴스를 생성해야만 호출할 수 있습니다. 클래스(static) 메서드인스턴스와 관계없는 ( 인스턴스 변수나 인스턴스 메서드를 사용하지 않는 ) 메서드를 클래스 메서드라고 합니다... 2024. 7. 11.
리팩토링(Refactoring) 리팩토링(Refactoring)은 기존의 코드의 기능을 변경하지 않으면서, 코드를 더 이해하기 쉽고, 유지보수하기 쉽게 만드는 일련의 과정입니다. 리팩토링의 주요 목적은 코드의 품질을 향상시키고, 코드를 더 효율적이고 읽기 쉽게 만들며, 버그를 줄이는 것입니다. 리팩토링의 필요성코드 가독성 향상: 잘 읽히는 코드는 더 쉽게 이해되고, 유지보수하기 쉬워집니다.코드 중복 제거: 반복되는 코드를 제거하여 유지보수를 용이하게 합니다.변경 용이성: 코드 구조를 개선하여 새로운 기능 추가나 수정이 더 쉽게 이루어질 수 있습니다.버그 감소: 코드가 더 명확해지면 버그가 발생할 가능성이 줄어듭니다.성능 향상: 리팩토링을 통해 성능을 최적화할 수 있습니다.리팩토링의 기본 원칙작은 단계로 진행: 큰 변화를 한 번에 하지 .. 2024. 7. 10.
"섀도잉(Shadowing)"과 "하이딩(Hiding)" "섀도잉(Shadowing)"과 "하이딩(Hiding)"비슷한 개념처럼 보일 수 있지만, 약간의 차이가 있습니다. 두 개념 모두 서브클래스에서 슈퍼클래스의 멤버를 다시 정의하는 경우를 다루지만, 적용되는 멤버 유형과 그 동작 방식에서 차이가 있습니다. 섀도잉(Shadowing)섀도잉은 서브클래스에서 슈퍼클래스의 인스턴스 변수(필드)를 다시 정의할 때 발생합니다. 이 경우, 서브클래스의 필드가 슈퍼클래스의 필드를 "섀도"합니다.자바에서 클래스의 필드와 메서드의 로컬 변수 간에 이름이 동일할 때, 로컬 변수가 해당 이름을 "섀도우"(shadow)합니다. 즉, 메서드 내에서 동일한 이름을 가진 로컬 변수가 필드를 가리기 때문에, 해당 메서드 내에서는 로컬 변수가 사용됩니다.class SuperClass { .. 2024. 7. 8.