이 공간은 개인 공부를 통해 얻은 정보를 체계적으로 정리하고 공유하는 곳입니다. 학습한 내용, 발견한 지식, 그리고 문제 해결 방법 등을 기록하여 나만의 학습 자료를 구축하고, 필요할 때 쉽게 참고할 수 있는 유용한 자원으로 활용할 수 있도록 합니다.
상속과 기능 추가 이번에는 상속 관계의 장점을 알아보기 위해, 상속 관계에 다음 기능을 추가해보자. 모든 차량에 문열기(openDoor()) 기능을 추가해야 한다. 새로운 수소차(HydrogenCar)를 추가해야 한다. 수소차는 fillHydrogen() 기능을 통해 수소를 충전할 수 있다. 기존 코드를 유지하기 위해 ex3 패키지를 새로 만들자 package ex3;
상속 관계가 왜 필요한지 이해하기 위해 다음 예제 코드를 만들어서 실행해보자. 예제 코드 package extends1.ex1; public class ElectricCar { public void move() { System.out.println("move"); } public void charge() { System.out.println("charge"); } } package extends1.ex1; public class GasCar { public void move() { System.out.println("move"); }
final 변수와 상수 final 키워드는 이름 그대로 끝! 이라는 뜻이다. 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다. 참고로 final 은 class, method 를 포함한 여러 곳에서 붙을 수 있다. 지금은 변수에 붙는 final 키워드를 알아보자. 나머지는 final 의 사용법은 상속을 설명한 이후에 설명한다. final -
static 메서드 이번에는 static 이 붙은 메서드에 대해 알아보자. 이해를 돕기 위해 간단한 예제를 만들어보자. 특정 문자열을 꾸며주는 간단한 기능을 만들어보자. 예를 들어서 "hello"라는 문자를 꾸미면 앞 뒤에 "*" 을 붙여서 "*hello*" 와 같이 꾸며주는 기능이다. 인스턴스 메서드 지금까지 학습한 방식을 통해 해당 기능을 개발해보자.
static 변수 이번에는 새로운 키워드인 static 키워드에 대해 알아보자. static 키워드는 주로 맴버 변수와 메서드에 사용된다. 먼저 맴버 변수에 static 키워드가 왜 필요한지 이해하기 위해 간단한 예제를 만들어보자. 특정 클래스를 통해서 생성된 객체의 수를 세는 단순한 프로그램이다. 인스턴스 내부 변수에 카운트 저장 먼저 생성할 인스턴스
스택 영역과 힙 영역 이번에는 스택 영역과 힙 영역이 함께 사용되는 경우를 알아보자. Data package memory; public class Data { private int value; public Data(int value) { this.value = value; } public int getValue() { return value; } } JavaMemoryMain2 package
스택 영역 다음 코드를 실행하면 스택 영역에서 어떤 변화가 있는지 확인해보자. JavaMemoryMain1 package memory; public class JavaMemoryMain1 { public static void main(String[] args) { System.out.println("main() 메서드 시작"); method1(10); System.out.println("main() 메서드 끝"); } static void method1(int m1) { System.out.println("method1() 메서드 시작"); int cal = m1 *
자바 메모리 구조 자바 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있습니다. 메서드 영역: 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다. 스택 영역: 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때 마다 하나씩 쌓인다. 힙 영역: 객체(인스턴스)가 생성되는 영역이다. new 명령어를 사용하면 이
캡슐화 캡슐화(Encapsulation)는 객체 지향 프로그래밍의 중요한 개념 중 하나다. 캡슐화는 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 캡슐화를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다. 캡슐화는 쉽게 이야기해서 속성과 기능을 하나로 묶고, 외부에 꼭 필요한 기능만 노출하고 나머지는 모두
접근 제어자 - 사용 클래스 레벨 클래스 레벨의 접근 제어자는 public, default 만 사용할 수 있다. private, protected 는 사용할 수 없다. public 클래스는 반드시 파일명과 이름이 같아야 한다. 하나의 자바 파일에 public 클래스는 하나만 등장할 수 있다. 하나의 자바 파일에 default 클래스 접근 제어자를