Generic JDK1.5 부터 도입된 제너릭스는 다양한 타입의 객체를 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주어 타입 안정성을 높이고 형변환의 번거로움을 줄여줄 수 있는 최근에는 꼭 사용해야 할 기능이다. 이제는 공식문서를 볼 때 제너릭스를 알지 못하면 공식문서 분석도 버거울 정도이다. 실제로도 이러한 문제를 몸소 겪어서, 이번에 제너릭스에 대해 한 번 자세히 들여다보았습니다. 제너릭스는 다음과 같이 선언이 가능하다. class Box { T item; void setItem(T item) { this.item = item; } } 기존의 보던 클래스와 다른 점을 살펴보면 제너릭 타입변수 T가 생긴 것을 볼 수 있다. 여기서 한 가지 의문을 가질 수 있는 경우는 T의 의미인데 f(x..
이번주도 정말 많은 일이 있었다. 기존에 tistory에 자료를 옮기기로 하고 벌써 1주일이라는 시간이 흘렀는데, 이전에 보기로 했던 책인 '모든 관계는 말투에서 시작된다.' 라는 책을 다 읽고 나서 상대방에 입장에 서서 대화를 할 수 있는 법을 또 배우게 된 것 같다. 부모님이 늘 말씀하신 때로는 정답을 알려주기 보다는 들어주기만 하는 것으로도 상대방은 해답을 찾을 수 있고, 그 방법이 상대방에게 신뢰를 줄 수 있다는 것 부모님의 말은 틀린 것도 있지만, 인생에서의 지혜에 있어서는 대체로 맞는 것 같다. 여자친구의 부모님의 지인분이 IT 회사 대표이사셔서 이력서와 포트폴리오 피드백을 받기로 했고, 2사로에 있는 '경태'님에게도 신입 자소서에 대한 예시를 다시 한 번 볼 수 있었다. 항상 신입의 매우 짧..
정보처리기사 실기를 준비했을 때 책에 있는 문제들과 그에 대한 용어 요약본을 정리해봤어요! 2022년 1차에 봤었는데, 현재는 또 개정이 되었다고 들었는데, 혹시 실기를 준비하실 때 제가 준비한 자료가 도움이 되었으면 해서 공유해봅니다! 어떠한 용어에 대한 답만 있기 때문에, 이것만 보시는 걸로 어려우니 다른 문제집과 병행하면서 공부하시고 잘 공부했는지에 대해 확인 차 보시면 효율이 더 좋을 것 같습니다! 다운로드 하실 때 댓글을 달아주시면 포스팅하는데 힘이 됩니다!
전략 패턴 요구 사항 오리 시물레이션 게임에서 다음과 같은 클래스 설계 요청 이 게임에서는 오리는 꽥꽥 소리와 수영을 할 수 있다. Duck.class public abstract class Duck { protected void quack(){ System.out.println("꽥꽥"); } protected void swim() { System.out.println("수영 할 수 있습니다."); } abstract void display(); } 추상 클래스를 사용하여, Duck 슈퍼 클래스 생성 MallardDuck.class public class MallardDuck extends Duck { @Override public void display() { quack(); swim(); Syste..
반복문 반복문에는 for문, while문, while문의 변형인 do-while문이 있다. for문 while문과 do-while문의 가장 큰 차이는 for문이나, while문에 속한 문장은 조건에 따라 한 번도 수행되지 않을 수 있지만, do-while문은 do-while에 속한 문장은 무조건 최소한 한 번은 수행될 것이 보장된다. for문 for문은 반복 횟수를 알고 싶을 때 적합하다. for(초기화;조건식;증감식;) { // 조건식이 참일 때 수행될 문장들을 적는다. } == for(int i = 1; i
1. 조건문 - if, switch 조건문은 조건식과 문장을 포함하는 블럭{}으로 구성되어 있고, 조건식의 연산관계에 따라 실행할 문장이 달라져서 프로그램의 실행 흐름을 변경할 수 있다. → Jump 즉, 인터럽트랑 같은 부분이다. if문 만일(if) 조건식이 참(true)면 {} 안의 문장을 실행해라. 라는 의미로 수행된다. if (조건식) { // 조건식이 true 일 때 수행될 문장들을 적는다. } if (score > 60) { System.out.println("합격입니다."); } 조건식 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다. // 1. if(90 60) { System.out.println("합격입니다."); } 블럭 내의 문장이 하나뿐인 경우, { } 를 생략할 수 있지만,..
다형성 객체지향언어에서 제일 중요한 다형성이다. 다형성을 이해해야 앞으로 나올 객체지향 특징 중 하나인 추상화에 대해서, 그 추상화와 관련된 abstract와 interface에 대해서도 이해할 수 있다. 따라서 다형성을 꼭 이해하고 넘어가야 한다. 먼저 다형성의 정의를 원론적인 의미에서 살펴보자면 다형성은 여러 가지 형태를 가질 수 있는 능력이다. 그러나 이건 원론적인 의미이고, 실제로 다형성을 객체지향언어에 관점에서 보자면 다음과 같이 답해야 한다. 부모의 참조 타입 변수로 자식의 참조 타입 객체를 다루는 것. 여기서 그냥 넘어갈 수도 있지만 눈여겨 봐야 하는 것은 부모의 참조 타입 변수로 자식의 참조 타입 객체를 다루는 것이다. 즉 결론적으로 자식 타입의 객체를 다루는 것이다. 이 말에 초점을 두고..
객체지향언어의 4가지 특성 중 첫 번째인 캡슐화에 대해서 자세히 알아보자. 이제부터 객체지향에 대해서 깊게 들어가기 때문에 어려워질 수 있다. 우선 위에서 접근 제어자를 사용했는데, 위에 여러가지 예시를 보면서 느꼈겠지만 접근 제어자를 사용하는 이유는 외부로부터 데이터의 접근을 보호하기 위해서 사용하는 것이다. 개발은 혼자하는 것이 아니고 다 같이 하는 것인데, 어떠한 개발자가 실수로 접근하면 안되는 값에 대해서, 접근해서 실수로 값을 바꿔버리면 대참사가 발생한다. 이때, 클래스 내부에 있는 변수는 접근을 못하도록 제한하고, 실제로 메서드 내부에서 변수가 어떤 원리로 동작하는 지에 대해서 숨기는 것을 캡슐화 라고 한다. 종종 캡슐화와 정보 은닉에 대해서 헷갈리는 경우가 많은데, 여기서 정보은닉이 접근 제..