- SRP(Single Responsibility Principle) 단일 책임의 원칙 : 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야한다. class 강아지{ final static Boolean 수컷 = true; final static Boolean 암컷 = false; Boolean 성별; void 소변보다(){ if(this.성별 == 수컷){ //한쪽 다리를 들고 소변을 본다.} else{ //뒷 두다를 굽혀 앉은 자세로 소변을 본다.} } } abstract class 강아지{ abstract void 소변보다() } class 수컷강아지 extends 강아지{ void 소변보다(){ //한쪽 다리를 들고 소변을 본다.} } class 암컷강아지 extends 강아지{ void 소변..
사용이유 for과 Iterator의 경우 코드가 너무 길고 알아보기 힘들며 재사용이 떨어짐, 데이터소스마다 다른 방식으로 다뤄야 한다는 문제점도 있음(Collection.sort(), Arrays.sort()) 이런 문제를 해결하기 위해 stream을 사용함 - 스트림은 데이터 소스를 변경하지 않는다. - 스트림은 일회용이다 - 스트림은 작업을 내부 반복으로 처리한다. *Map,Of map : 원하는 필드만 뽑아내거나 특정형태로 변환해야 할때 사용 of : 배열을 소스로 하는 스트림을 생성할때 사용 ex. Stream.of("a","b","c") //가변인자 Stream.of(new String[]{"a","b","c"}) Arrays.stream(new String[]{"a","b","c"}) priv..
ArrayList 를 정렬하는데는 Collections.sort() 메소드를 사용한다. 이 sort() 메소드의 인자로 정렬할 리스트를 넘기게 되는데, 오버로딩된 두 가지 버전의 메소드가 있다. Comparable : 객체 간의 일반적인 정렬이 필요할 때, Comparable 인터페이스를 확장해서 정렬의 기준을 정의하는 compareTo(Object o) 메서드를 구현한다. => 한 가지 기본 정렬 규칙을 설정(클래스에 규칙을 하나 정해놓고 누군가 정렬하라고 한다면 그 객체는 규칙대로 정렬을 수행) Comparator : 객체 간의 특정한 정렬이 필요할 때, Comparator 인터페이스를 확장해서 특정 기준을 정의하는 compare(Object o1, Object o2) 메서드를 구현한다. (두개의 인..
기존 For 문: for(초기화; 조건; 증감) => 하나의 변수(i)로 그 값을 count 한다. for (int i = 0; i size 따로 지정x 1) 배열(①)에서 가져올 첫번째 값이 존재하는지 확인 2) 값이 있다면 -> 변수(②)에 저장 2-1) 값이 없다면 -> for문 종료 3) 실행문(③) 실행 [Ex1] 기본 향상된 For문(배열) int [ ] numList = {1, 2, 3, 4, 5}; for( int i=0; i
객체 배열이란? 클래스를 배열로 선언하는 방식 객체 배열을 사용하는 이유 객체는 메모리에서 single record 만 표현할 수 있다. 만약 multiple record를 표현시 객체배열을 사용한다. 다양한 타입(String,Integer, any class instance)의 데이타를 객체 배열을 통해 저장할 수 있다. 기본 데이터 타입의 배열 VS 객체 배열 기본 데이터 타입의 배열 : 배열 선언과 동시에 메모리 생성 객체 배열 : 객체 변수의 이름들만 생성, 실제 객체 내부의 메모리는 생성X ex. Car[] car = new Car[8]; => 참조변수 8개 생성되지만 실제 8개의 참조변수에 대한 객체 자체의 메모리 생성 X ∴ 객체의 메모리를 따로 생성하는 과정이 별도로 필요함! 사용방법 1...
StringTokenizer란? 긴 문자열을 지정된 구분자(delimiter)를 기준으로 토큰(Token)이라는 여러 개의 문자열로 잘라내는 데 사용된다. StringTokenizer의 경우 구분자로 단 하나의 문자 밖에 사용 할 수 없는 단점이 있다. StringTokenizer 객체를 생성할 때 첫 번째 파라미터로 전체 문자열을 주고, 두 번째 파라미터로 구분자를 주면 된다. 만약 구분자가 생략되면 구분자는 기본적으로 공백(space)가 된다. StringTokenizer st = new StringTokenizer("문자열", "구분자"); public class StringTokenizer implements Enumeration { .. .} StringTokenizer 주요 메소드 메소드 설명..