-
- 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 클래스와 데이터
이 분야 인기자료
- 외국어로서의한국어교재론/종류가 다른 한국어 교재 2종을 선정하여 각 교재의 단원 구성을 요약 및 정리한 후 각각의 장단점을 비교 분석해 보세요. 분석 결과를 토대로 자신의 의견을 결론에서 제시해 보십시오.[부연설명]
- 만점받은 배움 과제 외국어로서의한국어학개론/한국어의 일반적인 특성을 형태적 측면과 내용적 측면에서 기술하고 그중 한 가지를 선택하여 다른 외국어와 비교 대조하여 설명하시오.
- VDA 63 인증시험 족보
- 아동복지 아동학대 문제와 관련있는 뉴스 스크랩을 하고 해당 아동학대
- 만점받은 A++한국어문법론 과제/[과제주제] 단어(낱말)과 발음, 문장의 이론 중 하나를 택하여, 현대 한국어의 오용 사례를 찾아서 분석해 보세요. 규정과 다른 언어 사용 사례를, 규정에 비추어 진단해 보고 이러한 언어 오용 현상이 과연 바람직한 것인지 자신의 주장을 더해서 상술하시기 바랍니다.
- 인간발달의 원리와 특성에 대해 설명하고 발달단계 중 성인기(21~40세) 발달과업에 대해 본인의 성인기 경험과 연관지어 설명하고 어려움에 대해 사회복지실천 현장에서 어떻게 지원할 수 있는 지 기술하시오
- 국문학사 레포트- 삼국유사와 향가
- 가족사정의 개념과 생태체계적 관점에서의 중요한 기준 5가지를 열거하고, 각 기준에서 해야 할 역할을 서술하시오
- 재무제표에 대한 회계감사가 필요한 이유 및 회계감사의견의 종류를 설명하고, 감사의견 중 의견거절 또는 부적정 의견이 제시된 사례를 찾아 1가지만 제시하세요
- [3일 합격] 2024년 사무자동화산업기사 필기 요약서
- 제12강 세계화와 반세계화
- 정리-간호학개론
- 청소년 개별상담의 이론과 기법으로 인간중심 상담, 형태주의 상담, 현실치료 가운데 본인이 선호하는 상담접근 방법을 한가지 선택하여 주요개념 및 상담과정과 기술을 정리하시오
- 청소년 개별상담의 이론과 기법으로 인간중심 상담, 형태주의 상담, 현실치료 가운데 본인이 선호하는 상담접근 방법을 한가지 선택하여 주요 개념 및 상담 과정과 기술을 정리하시오
- 사회복지행정론,1주 2차시에서 사회복지행정과 일반행정의 차이점과 사회복지
- 의공기사 필기·실기 정리
- 고등학교 생활과 윤리 전영역 수업용 학습지
- 토론수업용 안내 및 활동지(전 교과 사용가능)
- 재무관리의 목표인 이익 극대화보다 기업가치의 극대화가 적합한 이유를 설명하시오
- [100% 합격]경찰 집단(토론) 면접 자료
이메일 무단수집 거부
본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다. [게시일 2003년 4월 2일]