728x90 자바기초53 [JAVA] super와 super()의 완벽 분석: 부모 객체로 향하는 두 가지 통로 자바 프로그래밍에서 상속(Inheritance)을 공부하다 보면 필연적으로 마주치는 두 키워드가 있습니다. 바로 super와 super()입니다. 이름은 비슷하지만, 하나는 참조 변수이고 다른 하나는 생성자 호출문이라는 명확한 차이가 있습니다. 이 두 개념을 혼동하면 코드의 가독성이 떨어질 뿐만 아니라, 런타임에서 의도치 않은 버그를 발생시킬 수 있습니다. 오늘은 자바의 객체 지향 원리를 깊이 있게 이해하기 위해 super와 super()의 정의부터 실무 활용법, 그리고 주의사항까지 핵심 내용을 정리해 보겠습니다.1. super: 부모의 멤버에 접근하는 '참조 변수'super는 자식 클래스에서 부모 클래스로부터 상속받은 멤버(필드, 메서드)를 참조하는 데 사용되는 참조 변수입니다. 주로 부모 클래스의 멤.. 2026. 1. 15. [JAVA] this와 this()의 결정적 차이: 자바 객체 지향의 Detail 완성하기 자바를 처음 배우는 입문자뿐만 아니라 실무자들에게도 this라는 키워드는 매우 친숙하면서도 가끔은 혼동을 주는 개념입니다. 특히 this 참조 변수와 this() 생성자 호출은 모양새는 비슷하지만, 그 용도와 작동 원리는 완전히 다릅니다. 이 차이를 명확히 이해하는 것은 코드의 가독성을 높이고 유지보수가 쉬운 객체 지향 설계를 하는 데 필수적입니다.오늘은 자바 프로그래밍의 정교함을 더해줄 this와 this()의 핵심 차이점을 심층 분석해 보겠습니다.1. this: 인스턴스 자신을 가리키는 '참조 변수'this는 현재 실행되고 있는 인스턴스(객체) 자신에 대한 주소값을 담고 있는 참조 변수입니다. 주로 지역 변수와 멤버 변수의 이름이 같을 때, 이를 구분하기 위해 사용됩니다.주요 특징과 사용 사례멤버 변.. 2026. 1. 15. [JAVA] 기본 생성자(Default Constructor)의 생성 조건과 내부 메커니즘 자바(Java)를 처음 접하는 입문자들이 흔히 겪는 당혹스러운 순간이 있습니다. 분명 클래스 내부에 아무런 생성자를 만들지 않았음에도 불구하고, new MyClass();와 같은 코드가 아무런 문제 없이 작동하는 시점입니다. 반면, 어떤 때는 분명히 생성자가 있는데 컴파일 에러가 발생하기도 합니다.이러한 현상의 중심에는 자바 컴파일러의 '기본 생성자(Default Constructor) 자동 삽입' 메커니즘이 있습니다. 오늘은 이 기본 생성자가 생성되는 정확한 시점과 조건, 그리고 실무에서 발생할 수 있는 치명적인 오류 예방법에 대해 심도 있게 다루어 보겠습니다.1. 기본 생성자(Default Constructor)란 무엇인가?기본 생성자는 매개변수(Parameter)가 없고 본문(Body)이 비어 있는.. 2026. 1. 15. [JAVA] 객체 탄생의 설계도, 생성자(Constructor)의 모든 것 자바(Java) 프로그래밍에서 클래스가 설계도라면, 객체는 그 설계도를 바탕으로 실제 메모리에 구현된 실체입니다. 우리가 new 키워드를 사용하여 새로운 객체를 생성할 때, 가장 먼저 호출되어 객체의 초기 상태를 설정하는 특수한 메서드가 바로 생성자(Constructor)입니다.생성자는 단순한 초기화 도구를 넘어, 객체 지향 프로그래밍의 핵심 원칙인 캡슐화와 데이터 무결성을 보장하는 첫 번째 방어선 역할을 합니다. 본 포스팅에서는 생성자의 기본 정의부터 실무에서 반드시 알아야 할 고유한 특징들을 심도 있게 다뤄보겠습니다.1. 생성자(Constructor)란 무엇인가?생성자는 클래스로부터 객체가 생성될 때 호출되는 '인스턴스 초기화 메서드'입니다. 인스턴스 변수를 초기화하거나, 객체 사용에 앞서 필요한 초.. 2026. 1. 15. [JAVA] 객체지향의 방어막, 접근 제어자(Access Modifier) 완벽 설계 가이드 자바(Java) 언어를 배우기 시작하면 가장 먼저 마주하는 키워드가 public입니다. 하지만 단순히 관습적으로 붙이는 이 단어 뒤에는 객체지향 프로그래밍(OOP)의 핵심 철학인 캡슐화(Encapsulation)가 숨어 있습니다. 소프트웨어의 규모가 커질수록 "누가 이 데이터를 고칠 수 있는가?"를 통제하는 것은 시스템의 안정성을 결정짓는 결정적인 요소가 됩니다. 본 포스팅에서는 자바의 4가지 접근 제어자(public, protected, default, private)의 차이점을 상세히 분석하고, 실무에서 어떤 기준으로 이를 선택해야 하는지 전문적인 통찰을 공유하겠습니다.1. 접근 제어자란 무엇인가?접근 제어자는 클래스, 메서드, 멤버 변수의 '가시성(Visibility)'을 결정합니다. 이는 단순히 .. 2026. 1. 15. [JAVA] Java의 파라미터 전달 방식: Call by Value인가, Call by Reference인가? 자바 개발자 사이에서 가장 흔하면서도 깊이 있게 다뤄지는 논쟁 중 하나는 바로 "자바의 파라미터 전달 방식"입니다. 면접 질문으로도 단골인 이 주제에 대해 많은 이들이 "기본형은 Call by Value이고, 참조형(객체)은 Call by Reference이다"라고 오해하곤 합니다.결론부터 명확히 말씀드리면, 자바는 100% 'Call by Value' 방식으로 동작합니다. 이 글에서는 왜 자바가 참조형 변수를 다룰 때조차 Call by Value인지, 그리고 JVM 메모리 구조상에서 어떤 일이 벌어지는지 심도 있게 파헤쳐 보겠습니다.1. 용어의 명확한 정의논의를 시작하기 전, 두 용어의 핵심 차이를 이해해야 합니다.Call by Value (값에 의한 호출): 함수 호출 시 전달되는 변수의 '값'을 복.. 2026. 1. 15. 이전 1 ··· 5 6 7 8 9 다음 728x90