분류 전체보기(129)
-
컬렉션_LinkedList
LinkedList 를 학습하기에 앞서, 배열의 장단점을 되짚어보자. 배열의 장점 - 배열은 구조가 간단하고 데이터를 읽는 데 (접근 시간) 걸리는 시간이 짧다. (주소값 1개에 동일 타입 데이터가 번호표 들고 있음.) 1 2 3 4 놀랍게도, 데이터 1과 데이터2에 접근하는 데 걸리는 시간이 같다. ???????????? 어떻게 가능한가? 배열의 데이터에 접근하기 위해서는 아래와 같은 공식을 갖는다. 배열주소 + 데이터 크기 x (인덱스) 위의 예시에서는 동일한 배열에 존재하므로, 배열주소도 같고, 정수타입만 모아뒀으므로, 정수타입의 데이터 크기 4에 인덱스만 [0] , [4] 곱하면 되는 것이다. 따라서, 01xx + 4*0 이나 01xx + 4*4 나 접근하는 단계는 완전히 같으므로, 어디로 접근하..
2024.02.15 -
컬렉션_ArrayList
ArrayList란? - List 인터페이스의 구현체 중 하나 - 순서를 보장하고, 중복을 허용함 - 기존에 있던 Vector 를 개선한 것으로, 구현 원리, 기능 등일 동일함. - Vector 는 자체적으로 동기화 처리가 돼 있음. (아직 뭔 소린지 모름ㅎ) - 이름에서 알 수 있듯, 배열기반임. - 모든 종류의 객체를 저장할 수 있음. (Obejct[]) ArrayList의 메서드 ArrayList() - 기본 생성자 ArrayList(Collection c) - 컬렉션을 인자로 넣으면 ArrayList로 반환됨. ArrayList(int initalCapacity) - 초기 배열 길이 boolean add(Obejct o) - 객체 저장 boolean remove( Obejct o ) - 객체 삭제..
2024.02.14 -
컬렉션_프레임 워크
*실습 많이 하자. (어떻게, 언제, 왜) 써? 이걸 이해 해보자. 컬렉션이란? 여러 데이터 모아 놓은 것 프레임 워크? 표준화, 정형화된 체계적 프로그래밍 방식. 프레임 워크가 요구하는 방식대로 작성하면 프레임워크가 알아서 처리 해줌. 단점 - 프레임워크의 요구 방식대로 작성해야 함. (자유도가 떨어짐) 장점 - 생산성이 올라감. - 유지 보수가 쉬워짐. 컬렉션 프레임워크? - 다수의 데이터를 다루기 위한 표준화된 프로그래밍 방식. - 컬렉션을 쉽고 편리하게 다루기 위한 다양한 클래스 제공. - java.util 패키지에 포함 돼 있음. jdk 1.2 부터 표준화 되었다고 함. 그래서 뭐가 있지? 컬렉션 클래스 다수의 데이터를 저장할 수 있는 클래스( Vector, ArrayList, HashSet 등..
2024.02.13 -
SOLID - OCP
SOLID란? 객체지향 프로그래밍 5대 원칙이다. 각 알파벳은 아래와 같은 의미를 담고 있다. Single Responsibility Principle - 단일 책임 원칙 Open-Closed Principle - 개방-폐쇄 원칙 Liskov substitution principle - 리스코브 치환 원칙 Interface segregation principle - 인터페이스 분리 원칙 Dependency inversion principle - 의존관계 역전 원칙 필요할 때 마다 내용을 추가하는 것으로 하고, 우선 OCP 원칙 부터 학습해보자. OCP 원칙 (Open-Closed Principle - 개방-폐쇄 원칙) Open for extension - 새로운 기능의 추가나 변경사항이 생겼을 때, 기존..
2024.02.12 -
다형성_다형적 참조
이번엔 OOP(객체 지향 프로그래밍)의 특징 캡슐화 상속 추상화 다형성 중, 다형성에 대해 알아보자. 다형성(Polymorphism)이란? 다양한 형태. 여러 형태. 프로그래밍에서 다형성이라 함은, 한 객체가 여러 타입의 객체로 취급될 수 있는 성질을 뜻한다. 보통 하나의 객체는 하나의 형태로 고정 돼 있다. 그러나 여기에 다형성이란 성질이 접목되면, 하나의 객체가 다양한 타입으로 사용될 수 있게 된다. 다형적 참조 클래스 간에 상속 관계가 존재한다면, 상위(Super)는 하위(Sub) 타입을 참조할 수 있게 된다. 여기서 상속 관계라 함은, - 클래스 & 클래스 상속(extends) - 클래스 & 인터페이스(implements) - 인터페이스 & 인터페이스 (implements) 등이다. 아래는 내가 ..
2024.02.06 -
메서드 오버로딩(Overloading) ? 메서드 오버라이딩(Overriding)?
메서드 오버로딩 ㄴ 매개변수가 다른 메서드를 여러 개 정의 하는 것. ㄴ 메서드 이름이 같아야 함. ㄴ loading 은 과적. 물건을 쌓는다는 의미 ㄴ 칸마다 기능이 다른 기차를 생각하면 편함 YH 특급열차 머리 침실 짐칸 머리 필요에 의해(인기가 너무 좋아져서) 칸(파라미터) 수를 늘림. YH 특급열차 머리 식당칸 침실 예체능실 영화관 객실 머리 메서드 오버로딩 ㄴ 하위 클래스에서 상위 클래스의 메서드를 재정의 하는 과정. 상속 관계에서 사용됨. ㄴ 뭔가 얹어서 덮어씌운는 것. ㄴ 위에서 내려다 본 케익 생각하면 편함. ㄴ 시작은 초코 케잌으로 시작했으나, 끝은 딸기케잌 일지니!! 메서드 오버라이딩 조건 - 메서드 이름이 같아야 함. - 파라미터 타입, 순서, 개수가 같아야 함. - 반환타입이 같아야..
2024.01.28