
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 이번에는 String class 2부다. String class1부에서 2부로 바로 넘어오지 않고 중간에 불변 객체라는 것에 대해 먼저 배웠다. 그렇다면 왜 불변객체를 먼저 배웠을까? 바로 String Class가 불변객체이기 때문이다. String 이 한번 선언되면 내부의 값을 변경할 수 없고, 새로운 String 객체를 생성해서 값을 넣어줘야 한다. 그렇다면 String은 왜 불변객체로 만들어졌을까? 바로 String Pool의 존재가 그 이유이다. String Pool의 공간에서 특정 참조값의 value가 바뀌어 버리면, 이를 참조하는 나머지 부분들도 사이드 이펙트가 생기기 때문이다. String Pool : 문자열이 저장된..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. String Class (2부)로 넘어가기 전에 불변 객체에 대해 알아보자. 불변 객체에 대한 이해가 있어야 String Class 2부에서 설명할 내용이 원활하게 이해될 것 같아 부득이하게 불변 객체를 사이에 넣었다. 불변 객체란 무엇일까? 불변 객체 : 객체의 상태가 변하지 않는 객체. ( 생성자에서만 초기값 제공) 뜻 그대로 변하지 않는 객체라는 것이다. 자바에서의 불변객체는 한번 값이 정해진 후 다시 수정되면 안 된다는 원칙을 갖고 있다. 불변객체라고 따로 있는 것이 아니라, 개발자가 한번 정해진 값을 다시 바꾸지 못하게 개발하면 된다. 바로 연관되어 떠오르는 것이 있어야 한다. 바로 final이다. final이 Class..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 자바의 String Class에서 알아보자. 자바에는 여러 가지 기본 타입이 있다. String, int, double, float, char 등이 이에 속한다. 근데 String만 첫 문자가 대문자이다. 왜 그럴까? 관례상 자바는 Class명을 부여할 때 첫 글자를 대문자로 사용한다. 사실 String은 Class이다. 자바에서 String Class를 제공한다. 이를 통해 우리는 String 타입의 객체를 사용할 수 있었던 것이다. 마찬가지로 String은 객체였던 것이고, String str = new String("Hello"); 와 같이 선언하면 str에는 객체의 참조값이 들어가게 되는 것이다. 다른 언어에서는 문자열을 ..
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 드디어 실전 자바 기본이 끝나고 중급으로 올라왔다. 중급 강의를 결제하고 10% 정도 봤는데 난이도가 올라감을 느낌과 동시에 희열, 절망이 같이 왔다. 슬슬 자바가 기본 제공하는 메서드의 원문에 대해 봐야 하는 것들이 생기는데 아주 낯설다. 진작 보고 공부했어야 했는데 늦은 시작이 항상 아쉽다. 이번 시간엔 Object에 대해 알아보자 자바에는 사실 기본 상속 클래스가 있었다. 바로 Object Class다. 그 말은 즉, Object 타입으로 어떤 객체 타입이든 넣을 수 있다는 것이다. 자바 기본 제공 메서드는 이 Object Class의 요소였으며, 우리는 이것 또한 오버라이딩 해서 입맛대로 바꿀 수가 있었다. 그렇다면 왜 자..
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 자바의 OCP원칙에 대해 알아보자 OCP(Open - Closed Principle) 원칙이란Open for extension : 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 한다.Closed for modification : 기존의 코드는 수정되지 않아야 한다. 확장에는 열려있으며, 변경에는 닫혀있어야 한다는 원칙이다. 더 간단히 이야기하면, 새로운 객체가 추가되어도 Main 클래스에서의 아주 작은 코드 추가만이 있지, 기존 상속, 구현 관계에서의 코드 수정이 필요하지 않다는 이야기다. ( 추가된 객체는 당연히 코드 추가 되어야 함.. 기존 돌고 있던 코드를 수정하지 않는다는 것임)

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 인터페이스의 다중 구현이다. 원래 자바는 다중 상속을 허용하지 않는다. 그렇다면 인터페이스는 어떻게 다중 구현을 허용할 수 있는 것일까? 이는 메모리관점에서 접근하면 쉽게 이해할 수 있다. 일단 자바에서는 상속을 받은 객체 생성 시 힙영역에 자식과, 연결된 모든 부모의 참조를 힙영역에 적재하게 된다. 하지만 과거에 배웠던 것 중, 오버라이딩된 메서드는 항상 실행 우선권을 가진다고 배웠었다. 이를 통해 인터페이스는 다중 구현을 허용할 수 있는 것이다. 조금 더 자세히 알아보자. 일단 인터페이스에는 기본적으로 기능을 가진 메서드를 구현할 수 없다. 이 인터페이스를 구현한 자식 Class에서는 반드시 메서드 오버라이딩을 진행해야 했기 ..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 자바의 인터페이스에 대해 알아보자. 먼저 인터페이스는 추상 클래스의 모든 메서드가 추상 메서드일 때 사용하면 된다. 사용하는 방법은 파일 생성 시, Class가 아니라 Interface로 생성하여야 한다. 아래 이유를 통해 왜 그런지 알아보자. 인터페이스의 성질 1. 인터페이스의 인스턴스는 생성할 수 없다.2. 상속 시 모든 메서드를 오버라이딩 시켜야 한다.3. 자식에서 여러 개의 인터페이스를 상속받을 수 있다. 원래 자바에서의 상속은 부모를 1명만 둘 수 있었다. 인터페이스를 통하면 여러 명의 부모를 상속받을 수 있다. 이것이 인터페이스의 가장 큰 특징이다. 그렇다면 인터페이스에 대해 조금 더 구체적인 특징에 대해 알아보자...
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 오늘은 마음 편히 강의를 보고 싶어 연차를 냈다. 그럼 시작해보자. 이전 시간에 다형성에 대해서 배웠다. 부모 Class를 물려받은 자식 Class는 메서드 오버라이딩을 통해 자식에게 맞는 메서드로 재구현 후 실행하게 된다. 이 과정에서 개발자가 새로운 자식 Class를 만들었지만, 메서드 오버라이딩을 구현하지 않을 실수를 할 수도 있다. 또한, 부모의 역할로 자식들이 공통으로만 사용될 수 있는 요소만 제공하는 부모라면, Main Class에서 인스턴스를 생성할 필요도 없다. 이를 위해 우리는 추상 클래스(Abstract Class)를 사용할 수 있다. 추상 클래스의 역할을 알아보자. 1. 추상 클래스의 추상 메서드는 자식에서 ..
- Total
- Today
- Yesterday
- 김영한 실전 자바 기초
- 프로그래머스
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- java
- 기술스택
- 김영한
- samron
- static
- 코딩테스트
- 프로그래머스 상품을 구매한 회원 비율 구하기
- lord of sql
- 김영한 실전 자바 기본
- 자바
- samron3
- 코딩테스트 준비
- 백준
- 스프링
- extends
- spring
- 상속
- 상품을 구매한 회원 비율 구하기 파이썬
- 백준 피보나치 수열
- 백준 피보나치
- 김영한 실전 자바 중급
- Los
- los 15단계
- webhacking.kr
- ys.k
- los 15
- zixem
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |