전체 글
-
Java Study[2022-09-19] - 객체지향프로그래밍(set 인터페이스, override 후 equalse(), hashCode() 재정의)백엔드 2022. 9. 19. 22:52
🔸 2022-09-19 월요일 [객체지향프로그래밍] 1. Set 인터페이스 Iterator로 순회하기 set은 get[i]를 가져오는 것이 아니라 Iterator를 이용해서 순회하는 것 MemberHashSet 생성 private HashSet hashset; public MemberHashSet() { hashSet = new HashSet(); } public void addMember(Member member) { hashSet.add(member); } member 추가 시 public void addMember(Member member) member 삭제 시 public boolean removeMember(int memberId) => memberId를 알아야 삭제 가능 memberId를 알려..
-
Java Study[2022-09-18] - 객체지향프로그래밍(set 인터페이스, Iterator() 학습)백엔드 2022. 9. 18. 23:32
🔸 2022-09-18 일요일 [객체지향프로그래밍] 1. Set 인터페이스 Iterator로 순회하기 Collection의 개체를 순회하는 인터페이스 ArrayList 같은 경우, get(i)가 있어서 순회를 할 수 있는데, Set 인터페이스 같은 경우, 내부적으로 순서대로 저장되지 않음 => get(i)처럼 몇 번째 요소를 꺼낼 수 없음 Iterator 객체 이용하기 iterator() 메서드 호출 Iterator ir = memberArrayList.iterator(); Iterator에 선언된 메서드 메서드 설명 boolean hashNext() 이후에 요소가 더 있는지를 체크하는 메서드이며, 요소가 있다면 true를 반환 E next() 다음에 있는 요소를 반환 HashSet set = new H..
-
Java Study[2022-09-17] - 객체지향프로그래밍(Stack과 Queue 구현하기)백엔드 2022. 9. 18. 00:09
🔸 2022-09-17 토요일 [객체지향프로그래밍] 1. Stack과 Queue 구현하기 Stack은 이미 기본 제공 Queue는 ArrayList 이용해서 많이 사용 Stack 구현하기 LIFO(Last In First Out) : 맨 마지막에 추가된 요소가 가장 먼저 꺼내지는 자료 구조 이미 구현된 클래스가 제공됨 ArrayList나 LinkedList로 구현할 수 있음 게임에서 무르기, 최근 자료 가져오기 등에 구현 스택에서 요소 추가(push), 요소 꺼내어(pop) 삭제하기 Queue 구현하기 FIFO(First In First Out) : 먼저 저장된 자료가 먼저 꺼내지는 자료 구조 선착순, 대기열 등을 구현할 때 가장 많이 사용되는 자료 구조 ArrayList나 LinkedList로 구현할 ..
-
Java Study[2022-09-16] - 객체지향프로그래밍(List 인터페이스)백엔드 2022. 9. 16. 23:14
🔸 2022-09-16 금요일 [객체지향프로그래밍] 1. List 인터페이스 하나의 자료를 위한 인터페이스 Collection 하위 인터페이스 객체를 순서에 따라 저장하고, 관리하는데 필요한 메서드가 선언된 인터페이스 배열의 기능을 구현하기 위한 메서드가 선언됨 ArrayList, Vector, LinkedList ArrayList와 Vector 객체 배열 클래스 Vector는 자바 2부터 제공된 클래스 일반적으로 ArrayList를 더 많이 사용 Vector는 멀티 쓰레드 프로그램에서 동기화를 지원 동기화(Synchronization) : 두 개의 쓰레드가 동시에 하나의 리소스에 접근할 때 순서를 맞추어서 데이터의 오류가 방지하지 않도록 함 capacity(배열의 용량)와 size(배열 안의 요소 개수..
-
Java Study[2022-09-15] - 객체지향프로그래밍(컬렉션 프레임워크)백엔드 2022. 9. 15. 22:52
🔸 2022-09-15 목요일 [객체지향프로그래밍] 1. 컬렉션 프레임워크 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리 java.util 패키지에 구현되어 있음 개발에 소요되는 시간을 절약하고 최적화 된 라이브러리를 사용할 수 있음 Collection 인터페이스와 Map 인터페이스로 구성됨 Collection 인터페이스 하나의 객체의 관리를 위해 선언된 인터페이스로 필요한 기본 메서드가 선언되어 있음 하위에 List, Set 인터페이스가 있음 분류 설명 List 인터페이스 순서가 있는 자료관리, 중복 허용. 해당 인터페이스를 구현한 클래스는 ArrayList, Vectior, LinkedList, Stack, Queue 등이 있음 Set 인터페이스 순서가 정해져 있지 않음, 중복을..
-
Java Study[2022-09-14] - 객체지향프로그래밍(제네릭 프로그래밍)백엔드 2022. 9. 14. 22:59
🔸 2022-09-14 수요일 [객체지향프로그래밍] 1. 제네릭 프로그래밍 변수의 선언이나 메서드의 매개 변수를 하나의 참조 자료형이 아닌여러 자료형을 반환될 수 있도록 프로그래밍 하는 방식 실제 사용되는 참조 자료형으로서의 변환은 컴파일러가 검증하므로 안정적인 프로그래밍 방식 자료형 매개 변수 T 여러 참조 자료형으로 대체될 수 있는 부분을 하나의 문자로 표현 type의 의미로 T 사용 public class GenericPrinter { // GenericPrinter => 제네릭 클래스 private T material; // T => type의 약자. 자료형 매개 변수 public void setMaterial(T material) { this.material = material; } public..
-
Java Study[2022-09-13] - 객체지향프로그래밍(String, Wrapper 클래스)백엔드 2022. 9. 13. 22:13
🔸 2022-09-13 화요일 [객체지향프로그래밍] 1. String, Wrapper 클래스 String 클래스 선언하기 1번, String str1 = new String("abc"); => 인스턴스로 생성됨 2번, String str2 = "abc"; => 상수풀에 있는 문자열을 가리킴 1번의 new 키워드를 사용한다는 것은 힙 메모리에 Allocation을 받겠다는 의미 2번은 상수풀에 문자열이 있다면, new 사용하지 않고, 바로 사용 가능(상수풀 공유) // 1번 Test String str1=new String("abc"); String str2=new String("abc"); System.out.println(str1==str2); // 2번 Test String str3 = "abc"; ..
-
Java Study[2022-09-12] - 객체지향프로그래밍(Object 응용 문제 풀이)백엔드 2022. 9. 12. 23:16
🔸 2022-09-12 월요일 [객체지향프로그래밍] 1. Object 클래스 응용 날짜를 구현한 클래스 MyDate 날짜가 같으면 equals() 메서드의 결과가 true가 되도록 구현하기 hashCode() 메서드도 구현 MyDate 클래스 package object; public class MyDate { int day; int month; int year; public MyDate(int day, int month, int year) { this.day = day; this.month = month; this.year = year; } MyDateTest 클래스 package object; public class MyDateTest { public static void main(String[] ar..