목록Some Memos/Java (57)
Wanna be Brilliant Full-Stack Developer
컬렉션은 배열과 굉장히 비슷하다. 컬렉션은 특징이 있다. 컬렉션은 빈공간이 있는데 하나 하나가 4바이트 라고 해보자! 내가 만약 컬렉션으로 숫자 4개를 담아내고 싶으면 1,2,3,4 배열로 숫자 4개를 넣고 싶다고 하면 두개의 큰특징의 차이가 무엇인가하면? 만약에 기존의 데이터가 들어가 있다고 보자! 위에는 컬렉션 밑에는 배열을 넣어보자! 컬렉션을 넣을떄는 빈공간에 편안하게 집어넣어버린다. 근데 배열은 연속된 4가지 공간이 필요하기 떄문에 연속된 4가지 공간이 지금 없다. 배열을 넣을떄는 내가 연속된 4가지 공간이 있으면 넣을 수 있다. 그러면 차이점은 무엇인가? 컬렉션같은 경우에는 데이터 추가가 가능하다. 근데 배열은 불가능하다. 왜 안되는가? 배열은 연속된 공간이 필요하기 떄문이다. 컬렉션은 6을 추..
와일드카드란 무엇인가? 제네릭 고급이다. 와일드카드는 ? 를 말하는데 무슨뜻인가 몰라라는것이다? 어떤 메서드가 리턴 타입이 ?라고 되어있으면 무엇을 리턴할지 모른다는것이다. 어떤 메서드를 만들때 String add() {} 이라고 되어있으면 이 메서드는 String을 리턴하는 메서드인데 이게 아니라 몰라(?)라고 할 수 있따. 몰라는 무슨뜻인가? 개념은
제네릭이 조금은 어려울수있다! 바구니라는 클래스를 만들어서 어떨때는 문자열을 담고 경우에 따라 숫자를 담는다. 애를 숫자를 담는건지 문자를 담는건지 정의가 안되어 있다. 이떄 우리가 배운거 무엇을 쓰는가? Object를 쓰면 된다. 이렇게 하고 나서 바구니를 메모리에 띄어보자! 문자 하나 담어보자! 새로운 바구니를 만들자 바구니 s2 = new 바구니(); s2.data = " 문자열" 을 담고 s2.data를 가져오면 굉장히 잘나온다! 이 Object에는 단점이 있다고 했다. 그 단점을 경험해보자! 이번에는 큰바구니를 만들어보자! 이 바구니는 어떨떄는 호랑이를 담고 어떨때는 사자를 담는다. 여기서 오브젝트라고 했으니까 둘다받을 수 있따. 이렇게 하면 s1.data에는 호랑이의 주소를 가지고 있다. 근데..
Object에 대한 정의를 먼저 내리자면? Object클래스가 무엇인가? 예전에 배웠던 object는 new가능한 대상이라고 배웠다. 지금 말하는 Object클래스는 무엇인가? 모든 클래스의 부모이다. 이게 무슨말인가? 이 두개의 클래스가 있는데! 이 두개의 클래스는 모든 오브젝트는 모든 클래스의 부모라고 했으니까! 실제로 extends 실제로 컨트롤 클릭해서 들어가면 실제로 object라는 클래스가 있다. Object클래스를 보면 이 Cat은 오브젝트를 익스텐즈를 안했고 DOg은 했다. 그런데 둘다 된다!? 내가 Cat클래스에 Extends Object를 하지 않더라도 모든 클래스에 생략이 되어있다! Object는 모든 클래스의 부모이다! 자 그러면 모든 클래스의 부모니까 Dog는 오브젝트고 Cat도 ..