자바

자바

JAVA STEP 33. ArrayList 직접 구현하기

★ MyArrayList 클래스를 구현 조건 1. 행동 boolean add(String value) Append 모드로 배열의 맨 끝에 요소를 추가한다. value: 추가할 요소 return: 성공 유무 String get(int index) 원하는 위치에 있는 요소를 가져온다. index: 가져올 요소의 위치 return: 가져올 요소의 값 int size() 요소의 개수를 반환한다. return: 요소의 개수 String set(int index, String value) 원하는 위치의 요소를 다른 값으로 수정한다. index: 수정할 요소의 위치 value: 수정할 요소의 값 return: 수정하기 전 요소의 값 String remove(int index) 원하는 위치의 요소를 삭제한다. inde..

자바

JAVA STEP 32. 컬렉션(ArrayList)

★ 컬렉션(Collection) JCF, Java Collection Framework (향상된) 배열 기존의 순수 배열 > 성능, 사용법 등 개량 > 클래스 길이 가변 > 방의 개수를 마음대로 늘리거나 줄이는게 가능 컬렉션 종류 1. List 계열 ArrayList LinkedList Queue stack vector 2. Set 계열 HashSet TreeSet 3. Map 계열 HashMap TreeMap Properties HashTable ★ ArrayList 클래스 순수 배열하고 구조가 가장 유사함. 사용 빈도가 가장 높음 첨자(index)를 사용해서 요소(element)에 접근 양식 ArrayList ns2 = new ArrayList(); ex1) ArrayList 사용법 //ArratLi..

자바

JAVA STEP 31. abstract&Object&Generic

★ 클래스 종류 클래스 인터페이스 추상 클래스 enum 제네릭 클래스 Object 3. 추상 클래스 구현 멤버를 가질 수 있다 > 일반 클래스의 성질 추상 멤버를 가질 수 있다. > 인터페이스의 성질 추상 메소드 추상클래스 내에서 작성하는 추상메소드 표기법 public abstract void typing(String txt); 실제 존재하는 멤버를 가질 수 없다. 행동의 제약 소스코드 abstract class Keyboard{ public int price; public int weight; public void test() { System.out.println("test"); } //void typing(String txt); //인터페이스내에서만 작성하는 추상메소드 표기법 //추상메소드 publi..

자바

JAVA STEP 30. Interface

★ 인터페이스 (interface) 클래스의 일종 자료형(변수 생성 가능) 인터페이스 멤버 선언 interface 인터페이스명 {} 멤버 변수 선언 불가능 추상 메소드를 멤버로 가진다. 인터페이스는 추상메소드들의 집합 > 구현 멤버를 가질 수 없다. 구현멤버(변수, 구현부를 가지는 메소드) 소스코드 interface Mouse { void drag(); void click(); void dblclick(); } //인터페이스를 상속받을 때는, implements //The type G300 must implement the inherited abstract method Mouse.drag() //인터페이스를 부모로하는 자식 클래스의 의무!! //- 물려준 추상 메소드의 몸통을 만들어야 한다. > 구현부 ..

자바

JAVA STEP 29. CASTING

★ 형변환 (Type Casting) 값형과 참조형끼리는 형변환 불가능 1. 값형 형변환 (Value Type Casting) 값형끼리의 형변환 2. 참조형 형변환 (Reference Type Casting) 참조형끼리의 형변환 상속 관계에 있는 클래스끼리의 형변환 > 직계만 가능(방계는 불가능) A클래스 > B클래스 1. 업캐스팅(Up Casting) 암시적인 형변환 자식클래스 > 형변환 > 부모 클래스 2. 다운캐스팅(Down Casting) 명시적인 형변환 부모 클래스 > 형변환 > 자식클래스 100%불가능 코드의 유연성 부여 > 팁처럼 사용 ex) 소스코드 Parent p1 = new Parent(); p1.a = 10; p1.b = 20; Child c1 = new Child(); c1.a = ..

자바

JAVA STEP 28. 상속, Static 예제

예제 1) 요구사항 : 포장하는 직원 객체를 만드시오. 그 직원을 통해 연필, 지우개, 볼펜, 자를 포장하시오. 조건 Static 멤버를 구현하시오. Packer 사무용품을 포장하는 직원 상태 static pencilCount 연필 포장 개수(개) static eraserCount 지우개 포장 개수(개) static ballPoinPenCount 볼펜 포장 개수(개) static rulerCount 자 포장 개수(개) 행동 void packing(Pencil pencil) 연필을 검수하고 포장한다. Pencil pencil : 연필 void packing(Eraser eraser) 지우개를 검수하고 포장한다. Eraser eraser : 지우개 void packing(BallPointPen ballPoi..

자바

JAVA STEP 27. Inheritance, Static

★ Inheritance 객체 지향 프로그래밍(Object Oriented Programing) 클래스 > 객체 중심의 프로그래밍 방식 상속 (Inheritance) 부모가 가지는 재산을 자식에게 물려주는 행동 부모(클래스)가 가지는 재산을 자식(클래스)에게 물려주는 행동 상속하는 이유? 비용 절감 코드 재사용 상속관계에 있는 클래스 호칠 부모 클래스 상속 받은 메소드를 수정하는 기술 소스코드 //아빠 + 아들 마주친 상황 OverridingParent hong = new OverridingParent(); hong.name = "홍길동"; hong.hello(); OverridingChild jhong = new OverridingChild(); jhong.name="홍철수"; //jhong.hi();..

자바

JAVA STEP 26. 클래스&생성자 예제

예제 1) 요구사항 : 과자 클래스를 설계하시오 조건 가격, 용량, 생산일자, 유통기한 모든 멤버 변수의 접근 지정자는 private으로 한다. 멤버 접근을 위한 Setter와 Getter를 정의한다. 용량 : 쓰기 전용, 300g, 500g, 850g 가격 : 읽기 전용, 850원(300g), 1200원(500g), 1950원(850g) 생산일자 : 쓰기 전용(Calendar) 남은유통기한 : 읽기 전용, 생산된 제품의 유통기한 기준 : 7일(300g), 10일(500g), 15일(850g) Bugles 객체 메소드 void eat() : 과자 먹기 먹을수 있는 날짜 = 유통기한 - 현재 - 제조시간 5 : 먹을 수 있는 날짜가 5일 남음 3 : 먹을 수 있는 날짜가 3일 지남 소스코드 package ..