전체 글

개발 여행에 대한 기록
기타 제어자란?자바에는 우리가 자주 보는 public, private 같은 접근 제어자 외에도, 변수나 메서드의 "성격"이나 "동작 방식"을 정해주는 키워드들이 있습니다. 즉, 변수, 메서드, 클래스에게 “이건 어떻게 동작해야 해” 라는 성격을 부여하는 키워드입니다.기타제어자를 올바르게 사용하면 코드의 재사용성, 안정성, 효율성이 올라갑니다!💡 보통 접근 제어자(누가 접근할 수 있는가)와 함께 사용됩니다.public static final int MAX = 100;여기엔 public, static, final 세 가지가 붙어 있는데, 그중 static, final이 기타 제어자입니다.기타 제어자의 대표 종류제어자사용 위치의미사용 목적static변수, 메서드클래스 전체에서 공유공용 설정final변수, 메..
접근 제어자란?클래스, 변수, 메서드 등에 누가 접근할 수 있는지를 정해주는 키워드입니다. 말 그대로 "이건 누가 볼 수 있고, 누가 못 보게 막을지"를 정하는 키워드입니다.➡ 캡슐화(정보 은닉)를 구현하는 핵심 도구입니다. ✅ 캡슐화에 관한 자세한 내용은 아래 글을 참고해주세요캡슐화 [Java] 10. 캡슐화란?캡슐화란?객체의 속성(데이터)과 메서드(동작)를 하나로 묶고, 외부에서 직접 접근하지 못하도록 감추는 것을 말합니다. 즉, 데이터를 보호하고, 의도하지 않은 결과가 일어나지 않게, 통development-world.tistory.com 접근 제어자의 종류자바에는 총 4가지 접근 제어자가 있습니다.접근 제어자같은 클래스같은 패키지자식 클래스전체 접근 (외부)private✅❌❌❌(default..
제어자란?누가 어디까지, 어떻게 쓸 수 있는지 정해주는 키워드입니다.public class Person { private String name; public void sayHello() { System.out.println("안녕하세요!"); }}여기서 public, private 같은 키워드가 바로 제어자입니다. "이 변수는 아무나 못 보고", "이 메서드는 모두가 사용할 수 있어!" 같은 규칙을 정해주는 역할을 합니다. 제어자의 필요성 프로그래밍에서 제어자를 쓰는 이유는 크게 두 가지입니다:코드를 안전하게 보호하기 위해명확한 규칙과 설계를 위해 ❌ 제어자가 없으면,누가 변수 값을 마음대로 바꿀 수도 있음쓸 수 없어야 할 기능을 외부에서 호출할 수도 있음 ✅ 제어자를 붙이면..
디자인 패턴이란? ✅ 자바 개발자를 위한 설계의 시작이라고 할 수 있습니다. 소프트웨어를 개발하다 보면, 우리는 이런 비슷한 문제를 반복적으로 마주하게 됩니다.이 로직, 재사용할 수 없을까?이 클래스 간의 결합도가 너무 높은데 어떻게 분리하지?나중에 요구사항이 바뀌어도 쉽게 대응할 수 있도록 설계하려면? 이런 고민을 해결하기 위해 등장한 것이 바로 디자인 패턴(Design Pattern) 입니다. 디자인 패턴은 소프트웨어 설계 과정에서 반복적으로 발생하는 문제를 해결하기 위한 검증된 설계 방법입니다.즉, 앞서 많은 개발자들이 경험을 통해 만들어낸 "문제 해결을 위한 베스트 설계 방법"이라고 할 수 있습니다. 디자인 패턴의 필요성1. 코드의 재사용성과 유지보수성 향상디자인 패턴을 적용하면 구조화된 설계가..
super란?✅ 부모 클래스를 가리키는 키워드로 자식 클래스가 부모 클래스의 멤버(변수, 메서드, 생성자)를 참조할 때 사용하는 키워드입니다. 자식 클래스는 부모 클래스의 속성과 기능을 상속받기 때문에, 필요할 때 부모의 메서드나 생성자에 접근할 수 있어야 합니다. 이럴 때 사용하는 것이 바로 super입니다! 사용 예시super 키워드를 언제 사용해야 할까요? 다음과 같은 세 가지 상황에서 사용할 수 있습니다!상황호출 방법부모의 생성자를 호출할 때super()부모의 변수에 접근할 때super.변수명부모의 메서드를 호출할 때super.메서드명() * super() – 부모 클래스의 생성자 호출자식 클래스가 생성될 때, 부모 클래스의 생성자를 먼저 호출하고 싶을 때 사용합니다. * Parent1 클래스..
오버라이딩(Overriding)이란? 상속받은 부모 클래스의 메서드를 자식 클래스에서 다시 정의(재정의)하는 것 자식 클래스가 부모의 기능을 그대로 사용하지 않고, 자기 상황에 맞게 내용만 바꿔서 사용하는 기능입니다. 📌 상속이 전제되어야 하며, 메서드 이름, 매개변수, 반환 타입이 모두 같아야 합니다. 예제* Animal 클래스 - 부모 클래스class Animal { public void sound() { System.out.println("동물이 소리를 냅니다."); }}* Dog 클래스 - 자식 클래스class Dog extends Animal { @Override public void sound() { System.out.println("멍멍!"..
오버라이딩이란?부모 클래스에 정의된 메서드를 자식 클래스에서 ‘다시 정의(재정의)’하는 것을 말합니다. 자식 클래스가 부모 클래스의 메서드를 그대로 사용하는 것이 아니라, 자기 상황에 맞게 메서드의 내용(기능)을 바꿔서 사용할 수 있게 해주는 기능입니다.  오버라이딩의 필요성상속을 통해 부모의 기능을 물려받았지만, 자식 클래스 입장에서는 동작 방식이 다를 때 오버라이딩을 사용합니다. 예를 들어,Animal이라는 클래스의 sound() 메서드는 “동물이 소리를 냅니다.”라고 되어 있습니다.Dog 클래스는 "멍멍!"으로 출력하고 싶습니다.Cat 클래스는 "냐옹!"으로 출력하고 싶습니다.➡ 각 클래스에서 sound()를 오버라이딩하면 됩니다! * Animal 클래스 - 부모 클래스public class Ani..
상속이란? 기존의 클래스(부모 클래스)가 가지고 있는 "속성과 기능(변수와 메서드)"을 새로운 클래스(자식 클래스)가 그대로 물려받는 것입니다.마치 현실에서 부모가 자식에게 유산을 물려주듯, Java에서도 기능(변수/메서드)을 물려주는것 입니다! 즉, 부모 클래스의 코드를 새로 작성하지 않고 재사용해서 새로운 클래스를 만들 수 있게 해주는 기능입니다. 부모클래스👉 자식에게 물려줄 기능을 가지고 있는 기존 클래스 자식클래스👉 부모 클래스를 상속받아 기능을 이어받고, 여기에 새로운 기능을 추가하거나, 기존 기능을 재정의(Overriding) 할 수 있는 클래스  기본 문법 ✅ 상속의 키워드는 바로 extends 입니다! 해당 키워드를 사용하여 물려 받을 부모클래스를 정의하면 됩니다.  상속의 필요성Ja..
자바를 배우다 보면 비슷하게 생긴 this와 this()를 자주 마주치게 됩니다. 이 둘은 이름은 비슷하지만 전혀 다른 역할을 가지고 있어요. 이번 글에서는 이 둘의 차이와 사용법을 예제를 통해 쉽게 알아보겠습니다.  this란?현재 객체 자신을 가리키는 키워드입니다.객체가 생성되면 자바는 그 객체가 자기 자신을 가리킬 수 있도록 this라는 키워드를 자동으로 제공합니다.즉, 클래스 내부에서 this를 사용하면 "내 자신", 즉 현재 만들어진 그 객체를 의미합니다.  this의 필요성객체 안에서는 멤버 변수(필드)와 매개변수(입력값)가 같은 이름일 때가 많습니다.이 경우, 자바는 어떤 게 멤버 변수인지, 어떤 게 매개변수인지 헷갈릴 수 있습니다. 예를 들어 아래 코드를 볼까요?public class St..
생성자란?자바에서 객체가 생성될 때 자동으로 호출되는 메서드입니다. 객체의 초기 상태를 설정하거나 값 초기화에 사용됩니다. 즉, 객체를 만들자마자 어떻게 만들어질지를 지정하는 것이 바로 생성자의 역할입니다.TestObject to = new TestObject();TestObject는 클래스 이름이고,to는 참조 변수(객체를 가리키는 변수) 입니다.new TestObject()는 객체를 생성하는 코드이며,이때 생성자가 자동으로 호출됩니다.“TestObject 클래스의 객체를 하나 생성하고, 그 주소를 to라는 변수에 저장해라” 라는 의미입니다.   생성자, 우리가 직접 만들지 않아도 되는 이유? 지금까지 우리는 클래스만 만들고, 별도로 생성자를 정의하지 않았는데도 객체를 만들 수 있었습니다.그 이유는 J..
WooZzing
Hello Development World !