본문 바로가기

전체 글31

10. 다형성1 - 시작 / 다형성과 캐스팅 / 캐스팅의 종류 / 다운캐스팅과 주의점 / instanceof / 다형성과 메서드 오버라이딩 10-1. 다형성 시작객체지향 프로그래밍의 대표적 특징: 캡슐화, 상속, 다형성 다형성(Polymorphism)'다양한 형태', '여러 형태' 한 객체가 여러 타입의 객체로 취급될 수 있는 능력하나의 객체는 하나의 타입으로 고정되어 있는데,다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다는 뜻2가지 핵심이론다형적 참조 (여러 형태로 참조)메서드 오버라이딩poly.basic.Parent.java (다형적 참조)package poly.basic;public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); }}poly.basic.Child.javapackage poly.. 2025. 4. 6.
하버드 상위 1퍼센트의 비밀 2025.01.06 ~ 2025.03.24외부의 부정적 신호를 차단하고 깊이 몰입하라 1995년, 심리학자 클로드 스틸은 공부를 못하는 학생들에게 '너는 공부를 못한다'는 주변 신호를 차단하자 성적이 상위권으로 올라간 현상을 발견했다.이 모든 변화는 온전히 학생의 내면에서 일어났다. 지금 바로 환경의 신호를 차단하고 목표에 온전히 집중한다면 변화가 일어난다.  페드로이아는 보스턴 레드삭스 선수들 중 경기장에 가장 먼저 나타나는 선수였으며,금주는 물론 야구 외의 취미 생활은 아무것도 가지고 있지 않았다.그는 주변의 자신을 향한 잡음들을 놀라울 만큼 차단했다.  심리학자들이 성공한 사람들을 연구할수록,노력하려는 개인의 소박한 의지보다는그들을 둘러싼 긍정적 환경의 신호들이 그들을 순환적으로 더 노력하게 만들었.. 2025. 3. 28.
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.