Skip to main content

Effective Java 규칙13 클래스와 멤버의 접근 권한은 최소화 하라

1. API를 만들때 감출수 있는 내용은 모두 감추는게 좋다
2. information hiding 정보 은닉, encapsulation 캡슐화라고 용어로 알려져있다. ( 소프트 설계의 기본 원칙중의 하나라고 한다. )
3. 정보은닉이 중요한 이유
  - 의존성을 낮춰서 병렬 개발 가능
  - 의존성을 낮추서 개발 속도 증가
  - 유지보수도 낮출수 있다.
4. 핵심은 각 클래스와 멤버는 가능한 접근 불가능하도록 만들어라
5. 접근 범위는
  1) public
  2) private
  3) protected
  4) default ( package-private) 라고도 한다
6. 변경가능한 public 필드를 가진 클래스는 다중 스레드에 안전하지 않다.
7. 배열은 public static final 배열필드를 두거나, 배열 필드를 반환하는 접근자를 정의하면 안된다. 배열의 내용을 언제든지 변경이 가능하기때문..

Comments

Popular posts from this blog

codefights smooth sailing ( CommonCharacterCount)

https://codefights.com/arcade/intro/level-3/JKKuHJknZNj4YGL32publicstaticintcommonCharacterCount(String s1, String s2) { int sum = 0; char[] as= s1.toCharArray(); char[] bs= s2.toCharArray(); int[] ias = newint[126]; int[] ibs = newint[126]; for (int i = 0; i < as.length; i++) { ias[(int)as[i]]++; } for (int i = 0; i < bs.length; i++) { ibs[(int)bs[i]]++; } for (int i = 0; i < ibs.length; i++) { sum += Math.min(ias[i], ibs[i]); } return sum; }

Given two strings, find the number of common characters between them. Example For s1 = "aabcc" and s2 = "adcaa", the output should be
commonCharacterCount(s1, s2) = 3. Strings have 3 common characters - 2 "a"s and 1 "c". Input/Output [time limit] 3000ms (java)[input] string s1 A string consisting of lowercase latin letters a-z. Guaranteed constraints:
1 ≤ s1.length ≤ 15. [input] string s2 A string consisting of lowercase latin letters a-z. Guaranteed constr…

Bucket Sort in python

I make buckets as many as size of arr
and put data.

arr = [0.897, 0.565, 0.656, 0.1234, 0.665, 0.3434] def bucketSort(arr, size): buckets = [[] for i in range(size)] # put arr in bucket for i in range(len(arr)): num = size*arr[i] buckets[int(num)].append(arr[i]) output = [] # use insertion sort for i in range(len(buckets)): insertionSort(buckets[i]) # concat all data for i in range(len(buckets)): while len(buckets[i]) > 0: output.append(buckets[i].pop(0)) return output def swap(arr, i, j): temp = arr[i] arr[i] = arr[j] arr[j] = temp def insertionSort(arr): for i in range(1, len(arr)): index= i print("index : " + str(i)) while index!=0: if arr[index] < arr[index-1]: temp = arr[index] arr[index]= arr[index-1] arr[index-1] = temp index = index-1print(arr) else …