분류 전체보기29 9. 상속 - 시작 / 상속 관계 / 상속과 메모리 구조 / 상속과 기능 추가 / 상속과 메서드 오버라이딩 / 상속과 접근 제어 / super(부모 참조) / super(생성자) / 문제와 풀이 / 클래스와 메서드에 사용되는 final 9-1. 상속 시작ElectricCar.javapackage extends1.ex1;public class ElectricCar { public void move() { System.out.println("차를 이동합니다."); } public void charge() { System.out.println("충전합니다."); }}GasCar.javapackage extends1.ex1;public class GasCar { public void move() { System.out.println("차를 이동합니다."); } public void fillUp() { System.out.println("기름을 주유합니다.".. 2025. 3. 3. 8. final - final 변수와 상수1~2 / final 변수와 참조 / 정리 8-1. final 변수와 상수1FinalLocalMain.java (지역변수)package final1;public class FinalLocalMain { public static void main(String[] args) { // final 지역 변수1 final int data1; data1 = 10; // 최초 한번만 할당 가능 //data1 = 20; // 컴파일 오류 // final 지역 변수2 final int data2 = 10; //data2 = 20; // 컴파일 오류 method(10); } // final 매개변수 static void method(final .. 2025. 2. 19. 7. 자바 메모리 구조와 static - 자바 메모리 구조 / 스택과 큐 자료 구조 / 스택 영역 / 스택 영역과 힙 영역 / static 변수1~3 / static 메서드1~3 / 문제와 풀이 7-1. 자바 메모리 구조자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나뉨메서드 영역: 클래스 정보를 보관. 이 클래스 정보가 붕어빵 틀이다.스택 영역: 실제 프로그램이 실행되는 영역. 메서드를 실행할 때 마다 하나씩 쌓인다.힙 영역: 객체(인스턴스)가 생성되는 영역. new 명령어를 사용하면 이 영역을 사용. 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간. 참고로 배열도 이 영역에 생성된다. 메서드 영역(Method Area): 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리. 이 영역은 프로그램의 모든 영역에서 공유.클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드가 존재.static 영역: static 변수들을 .. 2025. 2. 15. 6. 접근 제어자 - 접근 제어자 이해1~2 / 접근 제어자 종류 / 접근 제어자 사용(필드, 메서드) / 접근 제어자 사용(클래스 레벨) / 캡슐화 / 문제와 풀이 6-1. 접근 제어자 이해1접근 제어자(access modifier)를 사용하면,해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한 가능 스피커에 들어가는 소프트웨어를 개발할 때, 스피커의 음량이 100을 넘어가면 부품들이 고장난다.Speaker.java (volume 100 제한)package access;public class Speaker { int volume; Speaker(int volume) { this.volume = volume; } void volumeUp() { if (volume >= 100) { System.out.println("음량을 증가할 수 없습니다. 최대 음량입니다."); .. 2025. 2. 11. 5. 패키지 - 시작 / 패키지(import) / 패키지 규칙 / 패키지 활용 5-1. 패키지 시작쇼핑몰 시스템을 개발한다고 가정했을 때, 기능이 점점 추가되어 프로그램이 아주 커지게 됨매우 많은 클래스가 등장하고 이를 관련있는 기능들끼리 분류해서 관리 => 패키지pack.Data.java (패키지 위치에 주의)package pack; // 패키지를 사용하는 경우 항상 코드 첫줄에 package pack과 같이 패키지 이름 입력public class Data { public Data() { System.out.println("패키지 pack Data 생성"); }}pack.a.User.javapackage pack.a;public class User { public User() { System.out.println("패키지 pack.a 회원.. 2025. 2. 9. 4. 생성자 - 생성자가 필요한 이유 / this / 생성자(도입) / 기본 생성자 / 생성자(오버로딩과 this() ) / 문제와 풀이 4-1. 생성자 - 필요한 이유객체를 생성하는 시점에 어떤 작업을 하고 싶다면 생성자(Construct)를 이용 MemberInit.java (클래스)package construct;public class MemberInit { String name; int age; int grade;}MethodInitMain1.javapackage construct;public class MethodInitMain1 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member1.name = "user1"; member1.age = 15; member.. 2025. 2. 8. 이전 1 2 3 4 5 다음