• 5 패키지
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 5. 패키지 #1.인강/0.자바/2.자바-기본 [[/패키지 - 시작]] [[/패키지 - import ]] [[/패키지 규칙]] [[/패키지 활용]] [[/정리]] 패키지 - 시작 여러분이 쇼핑몰 시스템을 개발한다고 가정해보자. 다음과 같이 프로그램이 매우 작고 단순해서 클래스가 몇게 없다면 크게 고민할 거리가 없겠지만, 기능이 점점 추가되어서 프로그램이 아주 커지게 된다면 어떻게 될까? **아주 작은 프로그램** ``` Order User Product ``` **큰 프로그램** ``` User UserManager UserHistory Product ProductCatalog ProductImage Order OrderService OrderHistory ShoppingCart CartItem Payment PaymentHistory Shipment ShipmentTracker ``` 매우 많은 클래스가 등장하면서 관련 있는 기능...
    패키지 클래스 생성자 사용 자바 이름, 5 패키지
  • 6 접근 제어자
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 6. 접근 제어자 #1.인강/0.자바/2.자바-기본 [[/접근 제어자 이해1]] [[/접근 제어자 이해2]] [[/접근 제어자 종류]] [[/접근 제어자 사용 - 필드, 메서드]] [[/접근 제어자 사용 - 클래스 레벨]] [[/캡슐화]] [[/문제와 풀이]] [[/정리]] 접근 제어자 이해1 자바는 `public `, `private ` 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. 이런 접근 제어자가 왜 필요할까? 예제를 통해 접근 제어자가 필요한 이유를 알아보자. 여러분은 스피커에 들어가는 소프트웨어를 개발하는 개발자다. 스피커의 음량은 절대로 100을 넘으면 안된다는 요구사항이 있다. (**100을 넘어가면 스피커의 부품들이 고장난다.**) 스피커 객체를 만들어보자....
    접근 제어자 직접 메서드 스피커 클래스, 6 접근 제어자
  • 7 자바 메모리 구조와 static
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 7. 자바 메모리 구조와 static #1.인강/0.자바/2.자바-기본 [[/자바 메모리 구조]] [[/스택과 큐 자료 구조]] [[/스택 영역]] [[/스택 영역과 힙 영역]] [[/static 변수1]] [[/static 변수2]] [[/static 변수3]] [[/static 메서드1]] [[/static 메서드2]] [[/static 메서드3]] [[/문제와 풀이]] [[/정리]] 자바 메모리 구조 **자바 메모리 구조 - 비유** 자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있다. **메서드 영역**: 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다. **스택 영역**: 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때 마다 하나씩 쌓인다. **힙 영역**: 객체(인스턴스)가 생성되는 영역이다. `new` 명령어...
    스택 메서드 구조 자바 변수 블럭, 7 자바 메모리 구조와 static
  • 8 final
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 8. final #1.인강/0.자바/2.자바-기본 [[/final 변수와 상수1]] [[/final 변수와 상수2]] [[/final 변수와 참조]] [[/정리]] final 변수와 상수1 `final ` 키워드는 이름 그대로 끝! 이라는 뜻이다. 변수에 `final ` 키워드가 붙으면 더는 값을 변경할 수 없다. 참고로 `final `은 `class `, `method `를 포함한 여러 곳에 붙을 수 있다. 지금은 변수에 붙는 `final ` 키워드를 알아보 자. 나머지는 `final `의 사용법은 상속을 설명한 이후에 설명한다. final - 지역 변수 ```java package final1; public class FinalLocalMain { public static void main(String[] args) { //final 지역 변수1 final int data1; d...
    변수 초기화 생성자 지역 오류 키워드, 8 final
  • 9 상속
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 9. 상속 #1.인강/0.자바/2.자바-기본 [[/상속 - 시작]] [[/상속 관계]] [[/상속과 메모리 구조]] [[/상속과 기능 추가]] [[/상속과 메서드 오버라이딩]] [[/상속과 접근 제어]] [[/super - 부모 참조]] [[/super - 생성자]] [[/문제와 풀이]] [[/정리]] 상속 - 시작 상속 관계가 왜 필요한지 이해하기 위해 다음 예제 코드를 만들어서 실행해보자. 예제 코드 **패키지 위치에 주의하자** ```java package extends1.ex1; public class ElectricCar { public void move() { System.out.println("차를 이동합니다."); } public void charge() { System.out.println("충전합니다."); } } ``` java package extends1.ex1; public cla...
    클래스 부모 기능 코드 전기차 기존, 9 상속
  • 10 다형성1
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 10. 다형성1 #1.인강/0.자바/2.자바-기본 [[/다형성 시작]] [[/다형성과 캐스팅]] [[/캐스팅의 종류]] [[/다운캐스팅과 주의점]] [[/instanceof]] [[/다형성과 메서드 오버라이딩]] [[/정리]] 다형성 시작 객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다. 그 중에서 다형성은 객체지향 프로그래밍의 꽃이라 불린다. 앞서 학습한 캡슐화나 상속은 직관적으로 이해하기 쉽다. 반면에 다형성은 제대로 이해하기도 어렵고, 잘 활용하기는 더 어렵다. 하지만 좋은 개발자가 되기 위해서는 다형성에 대한 이해가 필수다. 다형성(Polymorphism)은 이름 그대로 "다양한 형태", "여러 형태"를 를 뜻한다. 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 보통 하나의 객체는 하나의 타 입으로 고정되어 있다. 그런데 다형성을 사용하면 하나의 객체가 다...
    다형성 부모 참조 다형적 인스턴스 객체, 10 다형성1
  • 11 다형성2
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 11. 다형성2 #1.인강/0.자바/2.자바-기본 [[/다형성 활용1]] [[/다형성 활용2]] [[/다형성 활용3]] [[/추상 클래스1]] [[/추상 클래스2]] [[/인터페이스]] [[/인터페이스 - 다중 구현]] [[/클래스와 인터페이스 활용]] [[/정리]] 다형성 활용1 지금까지 학습한 다형성을 왜 사용하는지, 그 장점을 알아보기 위해 우선 다형성을 사용하지 않고 프로그램을 개발한 다 음에 다형성을 사용하도록 코드를 변경해보자. 아주 단순하고 전통적인 동물 소리 문제로 접근해보자. 개, 고양이, 소의 울음 소리를 테스트하는 프로그램을 작성해보자. 먼저 다형성을 사용하지 않고 코드를 작성해보자. **참고**: `Caw`는 오타입니다. 대신에 `Cow`로 정정해야 맞습니다. 강의 내용과 영상 전반에 `Cow`를 너무 많이 사용해서, 고 치면 코드를 따라갈 때 혼란스러울 수 있어서, 오타이지만 부득이하게 `Caw`...
    동물 소리 테스트 다형성 메서드 종료, 11 다형성2
  • 12 다형성과 설계
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 12. 다형성과 설계 #1.인강/0.자바/2.자바-기본 [[/좋은 객체 지향 프로그래밍이란?]] [[/다형성 - 역할과 구현 예제1]] [[/다형성 - 역할과 구현 예제2]] [[/다형성 - 역할과 구현 예제3]] [[/OCP(Open-Closed Principle) 원칙]] [[/문제와 풀이]] [[/정리]] 좋은 객체 지향 프로그래밍이란? 다형성 - 역할과 구현 예제1 앞서 설명한 내용을 더 깊이있게 이해하기 위해, 간단한 운전자와 자동차의 관계를 개발해보자. 먼저 다형성을 사용하지 않고, 역할과 구현을 분리하지 않고 단순하게 개발해보자. `Driver `는 `K3Car `를 운전하는 프로그램이다. ```java package poly.car0; public class K3Car { public void startEngine() { System.out.println("K3Car.startEngin...
    다형성 구현 코드 역할 자동차 객체, 12 다형성과 설계
  • 13 다음으로
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 13. 다음으로 #1.인강/0.자바/2.자바-기본 학습 내용 정리 전체 목차 1. 클래스와 데이터 [[/프로젝트 환경 구성]] [[/클래스가 필요한 이유]] [[/클래스 도입]] [[/객체 사용]] [[/클래스, 객체, 인스턴스 정리]] [[/배열 도입 - 시작]] [[/배열 도입 - 리펙토링]] [[/문제와 풀이]] [[/정리]] 2. 기본형과 참조형 [[/기본형 vs 참조형1 - 시작]] [[/기본형 vs 참조형2 - 변수 대입]] [[/기본형 vs 참조형3 - 메서드 호출]] [[/참조형과 메서드 호출 - 활용]] [[/변수와 초기화]] [[/null]] [[/NullPointerException]] [[/문제와 풀이]] [[/정리]] 3. 객체 지향 프로그래밍 [[/절차 지향 프로그래밍1 - 시작]] [[/절차 지향 프로그래밍2 - 데이터 묶음]] [[/절차 지향 프로그래밍3 - 메서드 추출]] [[/클...
    자바 다형성 정리 메서드 접근 지향, 13 다음으로
  • 1 클래스와 데이터
    김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 김영한의 실전 자바 기본편 1. 클래스와 데이터 #1.인강/0.자바/2.자바-기본 [[/프로젝트 환경 구성]] [[/클래스가 필요한 이유]] [[/클래스 도입]] [[/객체 사용]] [[/클래스, 객체, 인스턴스 정리]] [[/배열 도입 - 시작]] [[/배열 도입 - 리펙토링]] [[/문제와 풀이]] [[/정리]] 프로젝트 환경 구성 자바 입문편에서 인텔리제이 설치, 선택 이유 설명 프로젝트 환경 구성에 대한 자세한 내용은 자바 입문편 참고 여기서는 입문편을 들었다는 가정하에 자바 기본편 설정 진행 인텔리제이 실행하기 **New Project** New Project를 선택해서 새로운 프로젝트를 만들자 **New Project 화면** Name: 자바 입문편 강의: java-start 자바 기본편 강의: **java-basic** Location: 프로젝트 위치, 임의 선택 Create Git repository 선택하지 않음 Language...
    자바 클래스 화면 강의 버튼 입문편, 1 클래스와 데이터
  1  2  3  4  5  6  7  8  9  10  
이 분야 인기자료