본문 바로가기

JAVA/★객체지향36

Collections framework : ArrayList의 사용법 1)배열의 문제점 *배열크기에 제한이 있다 기존의 배열예제를 보자 기존배열 ①String [] arrayObj = new String[]; ② length ③arrayObj[i] =========== Arraylist ①import ②ArrayList ③add ④size⑤ get(i) *add(1, "20") --> 1번인덱스에 20추가하는 것 *set(int index, Object) -->값변경 *al.remove() -->삭제 *al.clear() ->전체삭제 그러나 ArrayList의 주의해야할 점!! 이 방식은 옛날방식이다 (안정성이 떨어진다) *제네릭 문법수단을 채택한 것을 보자 으로 지정을 해줬음! 그래서 al.get(i)도 String이라 형변안해줘도 된다 2023. 3. 15.
collections framework 전체적인 구성 ​컬렉션즈 프래임워크라는 것은 다른 말로는 컨테이너라고도 부르는데 값을 담는 그릇이라는 의미이다. 그런데 그 값의 성격에 따라서 컨테이너의 성격이 조금씩 달라진다. ​ 2023. 3. 15.
제네릭의 특징 1) 기본데이터타입은 못오고 참조데이터타입만 올 수 있다 기본데이터 타입을 객체인것처럼 만들수있는 객체들을 제공 -> 레퍼클래스 wrapper(객체로 포장) ex) int - > Integer 그럼 래퍼클래스를 쓰자! 2)제네릭의 생략 클래스부분 생략하는 예시 메소드부분 생략하는 예시 p1.printInfo(e); 로 적어도 된다 (생략해서) 3) 제네릭의 제한 **클래스에서 사용 **인터페이스에서 사용 * implements가 와야 하는게 아니야? nono 제네릭 맥락에선 extends는 상속이 아닌 부모가 누구인지 알려주는 것 super라는 것도 있는데 활용도 높지않고 extends와 정 반대개념(부모를 제한) 이건오류가 안뜬다 T에 오는 값이 info클래스/자식으로 지정해줘서 아래꺼는 오류가 뜬다 .. 2023. 3. 15.
제네릭 1) 제네릭: 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 것 2) 이걸 왜 사용해?.. 아래예시를 보자 ​ 기존코드 중복을 없애고 10년뒤에 코드를 다시 사용한다고 했을 때 person에 어떤값을 넣어야하는지 까먹어서 부장을 넣었음 그 결과.. 즉 변수데이터 타입이 object라 모든 타입이 들어와서 타입이 안전하지 않고 문법적으로는 맞아서 오류를 발생시키지 않는데 ​ 실제로는 Employee ei = (EmployeeInfo)p1.info가 Employee ei = (EmployeeInfo)new EmployeeInfo(10); 이런 형식으로 되어야 하는데 ​ 저기는 "부장"이 들어왔기 때문에 오류가 뜬다 string이 employee로 형변환을 못하기 때문이다 ​ 구조를 잘 맞추자 ↓ ↓.. 2023. 3. 15.