일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바의 정석 기초편 ch4
- 데이터 접근 기술
- 자바로 계산기 만들기
- 자바의 정석 기초편 ch1
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch9
- 자바 고급2편 - 네트워크 프로그램
- 자바 중급2편 - 컬렉션 프레임워크
- 2024 정보처리기사 수제비 실기
- 스프링 트랜잭션
- 자바의 정석 기초편 ch7
- 2024 정보처리기사 시나공 필기
- 자바 고급2편 - io
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch5
- @Aspect
- 자바로 키오스크 만들기
- 스프링 mvc2 - 타임리프
- 자바 중급1편 - 날짜와 시간
- 람다
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch2
- 자바 기초
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch6
- 스프링 입문(무료)
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch11
- Today
- Total
목록자바 로드맵 강의/기본 - 객체지향 (12)
개발공부기록

1. 좋은 객체 지향 프로그래밍이란?** 스프링 핵심원리 기본편에서 배운 내용과 중복이 있음- https://nagul2.tistory.com/1231) 객체 지향(1) 객체 지향 특징추상화캡슐화상속다형성(2) 객체 지향 프로그래밍의 정의객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위 즉, "객체"들의 모임으로 파악하고자 하는 것임각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있음, (협력)객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용됨레고 블럭 조립하듯, 컴퓨터 부품을 갈아 끼우듯 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법을 유연하고 변경이 용이하다라고 이해하면 됨(..

1. 다형성 활용1) 예제1 - 다형성을 사용하지 않는 프로그램(1) Dog, Cat, Cow다형성을 왜 사용하는지 장점을 알아보기위해 우선 다형성을 사용하지 않고 개, 고양이, 소의 울음소리를 테스트하는 프로그램을 작성단순히 개, 고양이 소 동물의 울음 소리를 출력하는 sound()메서드를 가진 클래스들package poly.ex1;public class Dog { public void sound() { System.out.println("멍멍"); }}package poly.ex1;public class Cat { public void sound() { System.out.println("야옹"); }}package poly.ex1;public class..

1. 다형성 시작1) 다형성(1) 설명객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있는데 그 중에서 다형성을 객체지향 프로그래밍의 꽃이라 불림캡슐화나 상속은 직관적으로 이해하기가 쉬운 반면에 다형성은 제대로 이해하는 것과 활용하는 것이 어려운데 좋은 개발자가 되기 위해서는 다형성에 대한 이해가 필수임다형성(Polymorphism)은 이름 그대로 다양한 형태, 여러 형태를 뜻하는데 프로그래밍에서는 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻함보통 하나의 객체는 하나의 타입으로 고정되어 있는데 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다는 의미임다형성을 이해하기 위해서는 크게 다형적 참조, 메서드 오버라이딩 2가지 핵심 이론을 알아야 함2) 다형적 참조(1..

1. 상속 - 시작1) 예제 코드(1) 패키지 위치에 주의하여 작성package extends1.ex1;public class ElectricCar { public void move() { System.out.println("차를 이동합니다."); } public void charge() { System.out.println("충전합니다."); }} package extends1.ex1;public class GasCar { public void move() { System.out.println("차를 이동합니다."); } public void fillUp() { System.out.println("기름을 주유합니다...
1. final 변수와 상수1) final (1) final 키워드final 키워드는 이름 그대로 끝이라는 뜻으로 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없음참고로 final은 class, method를 포함한 여러 곳에 붙을 수 있음2) final - 지역변수(1) FinalLocalMainfinal을 지역 변수에 설정할 경우 최초 한번만 할당할 수 있으므로 이후에 변수의 값을 변경하면 컴파일 오류가 발생함final을 지역 변수 선언시 바로 초기화 한 경우 이미 값이 할당되었기 때문에 값을 할당할 수 없음매개변수에 final이 붙으면 메서드 내부에서 매개변수의 값을 변경할 수 없어 메서드 호출 시점에 사용된 값이 끝까지 사용됨package final1;public class Final..

1. 자바 메모리 구조1) 자바 메모리 구조(1) 비유자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있음메서드 영역: 클래스 정보를 보관, 이 클래스 정보가 붕어빵 틀이라고 볼 수 있음스택 영역: 실제 프로그램이 실행되는 영역, 메서드를 실행할 때마다 하나씩 쌓임힙 영역: 객체(인스턴스)가 생성되는 영역, new 명령어를 사용하면 이 영역을 사용하며 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이라고 이해하면 됨, 참고로 배열도 이 영역에 생성됨(2-1) 실제 구조(2-2) 메서드 영역(Method Area)프로그램을 실행하는데 필요한 공통 데이터를 관리, 해당 영역은 프로그램의 모든 영역에서 공유함클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 ..
1. 접근 제어자 이해1) 접근 제어자가 필요한 이유자바는 public, private 같은 접근 제어자(access modifier)를 제공함접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있음(1) 예제 요구사항 - 스피커에 들어가는 소프트웨어 개발스피커는 음량을 높이고, 내리고, 현재 음량을 확인할 수 있는 단순한 기능을 제공요구사항 대로 스피커의 음량을 100까지만 증가할 수 있고 절대 100을 넘어가면 안됨(100을 넘어가면 스피커의 부품들이 고장난다고 가정)(2) Speaker생성자를 통해 초기 음량값을 지정할 수 있음volumeUp()메서드에서 음량을 한번에 10씩 증가시키고 음량이 100을 넘게되면 음량을 증가하지 않음package ac..
1. 패키지1) 시작(1) 설명프로그램이 매우 작고 단순해서 클래스가 몇게 없다면 크게 고민할 거리가 없겠지만 기능이 점점 추가되어서 프로그램이 아주 커지게 된다면 매우 많은 클래스가 등장하면서 관련 있는 기능들을 분류해서 관리하고 싶을 것임컴퓨터는 보통 파일을 분류하기 위해 폴더, 디렉토리라는 개념을 제공하는데 자바도 이와 비슷한 개념으로 패키지라는 것을 제공함(2) 카테고리 분류여기서 user, product 등이 패키지이며 해당 패키지 안에 관련된 자바 클래스들을 분류하여 입력하면 됨패키지(package)는 이름 그대로 물건을 운송하기 위한 포장 용기나 포장 묶음을 뜻함* user * User * UserManager * UserHistory* product * Product * ProductCat..