본문 바로가기
[Effective Java] 클래스와 그 멤버의 접근성을 최소화하자. [Effective Java] 클래스와 그 멤버의 접근성을 최소화하자. - 잘 설계된 모듈과 그렇지 않은 것을 구분 짓는 가장 중요한 잣대는, 모듈 자신의 내부 데이터 및 그 외의 상세한 구현 부분을 다른 모듈로부터 어느 정도로 숨기느냐에 달려 있다. - 모듈은 자신의 API 를 통해서만 다른 모듈과 상호작용한다. 정보 은닉(information hiding) 또는 캡슐화(encapsulation)이 그것이다. - 정보 은닉은 시스템을 구성하는 모듈들 간의 결합도를 낮추어(decoupling) 모듈 별로 개발, 테스트, 최적화, 사용 및 수정이 가능하도록 한다. 또한 이렇게 하면 병행 개발 ( parallel development ) 를 할 수 있어 시스템 개발이 빨라진다. 모듈을 더 빨리 파악할 수 있.. 2016. 10. 17.
[Effective Java] 파이날라이저 ( finalizer ) 의 사용을 피하자. [Effective Java] 파이날라이저 ( finalizer ) 의 사용을 피하자. - 파이널라이저는 예측 불가에다가 위험하기도 하며 일반적으로 불필요하다. - 파이널라이저의 큰 단점은 신속하게 실행된다는 보장이 없다는 것. 즉 파이널라이저에서 time critical 하게 중요한 일을 해서는 안 된다는 것. - 파이널라이저가 얼마나 빨리 실행되는가는 가비지 컬렉션 알고리즘에 달려있으며, 이는 JVM 종류에 따라 다양하다. - 자바 언어 명세에는 파이널라이저가 신속하게 실행된다는 보장이 없는 것은 물론, 반드시 실행될것인지도 보장하고 있지 않다. - System.gc() 와 System.runFinalization() 메소드들을 사용하지 말자. 그 메소드들은 파이널라이저가 실행될 가능성을 높여주긴 하.. 2015. 12. 15.
[PHP] Tutorial, 객체 지향 PHP, Tutorial, 객체 지향 =====PHP 에서 클래스, 속성, 연산 만들기 class classname{ var $attribute1; function operation1( $param1 ){ }} =====생성자 __construct() 라는 이름을 가진다. =====소멸자 __destruct() 라는 이름을 가진다. =====생성 new 를 이용하여 생성한다. =====클래스 속성 사용하기 instance->attributeName 으로 접근한다. =====GET, SET 함수 __get, __set 함수를 가진다.해당 attribute 에 접근하면 자동으로 get, set 함수가 불리게 된다. =====private 와 public 으로 접근 제어하기 기본은 public. private.. 2013. 11. 15.
[Java] Reflection Tutorial - Constructor Java, Reflection Tutorial - Constructor Obtaining Constructor Objects Constructor[] constructors = aClass.getConstructors(); public Constructor 들만 가지고 온다. 만약 parameter 들을 확실히 알고 있다면, 다음과 같이 한개의 constructor 를 가져올 수 있다. Constructor constructor = aClass.getConstructor( new Class[]{ String.class} ); 만약 일치하는 constructor 가 없다면 NoSuchMethodException 이 return 된다. Constructor Parameters Class[] parameter.. 2013. 11. 15.
[Java] Reflection Tutorial - Class [Java] Reflection Tutorial - Class Java Reflection 은 class, interface, field, 그리고 method 를 runtime 에 조사할 수 있도록 해준다. 새로운 object 를 만들 수도 있고, method 를 호출할 수도 있다. script language 가 runtime 에 java 의 함수를 호출한다거나, database table 과 object 를 맞출 때 자주 사용한다. Class Class 로 부터 얻을 수 있는 정보들. Class NameClass Modifier ( public, private, synchronized... )Pakcage InfoSuper classImplemented InterfacesConstructorsMeth.. 2013. 11. 12.
[Java] Overriding 성립 조건에 대해 알아보자. 자바, Overriding 성립 조건에 대해 알아보자. 오버라이딩의 친구 오버로딩( Overloading ) 에 대해서도 알아보자. 오버라이딩은 상속에 관련된 녀석인데, 부모 class 가 정의한 함수에 대해서, 자식이 다시 정의해서 사용하는 것을 이야기한다. 부모의 구현이 맘에 들지 않아서일수도 있고, 추가사항이 있어서일수도 있다. class Parent{public void doSth(){ // purnish children}} class Child extends Parent{@Overridepublic void doSth(){// love children}} 위의 경우는 약간의 상상을 더한 개념인데 ㅋㅋ우선 Parent 의 doSth 은 아이들을 혼내는 구현이다. Parent 를 상속한 Child .. 2013. 10. 1.
[Java] Interface 에서 몰랐던 사실. 상수 정의. 자바, interface 에서 몰랐던 사실. 상수 정의. 지금까지 자바를 사용하면서 interface 에 상수를 정의한 적이 없어서 interface 에 상수를 정의할 수 있다는 사실을 몰랐다. 사실 interface 에 상수를 정의하는 것은 anti-pattern 이기 때문에 사용하지 않는 것이 맞긴 하지만, 간혹가다 framework 나 library 를 사용할 때 상수가 interface 에 정의된 경우가 있기 때문에 알아두면 좋을 것 같다. interface OnDragListener{ String device = "Mouse";void onDrag();} 위와 같이 상수 정의가 가능하다. interface 의 경우 그냥 변수정의를 해도 자동으로 public static final 이 붙는다. 따.. 2013. 8. 16.
[Java] 접근 제한자에 대한 이야기. 자바, 접근 제한자에 대한 이야기. 접근제한자는 경우에 맞게 잘 사용하도록 설계되었는데 그냥 말단 client app 개발자인 필자는 사실 대부분 private 과 public 만 사용한다. library 를 설계하는 입장에서는 protected 나 default 도 많이 사용할텐데..여튼 접근 제한자들에 대해 함 알아보자. private 해당 클래스 내에서만 접근 가능 default 접근 제한자를 안 붙인 경우를 이야기하는데같은 패키지 내에서만 접근이 가능하다. protected 같은 패키지 내는 물론, 상속한 child 들도 사용이 가능하다. public 어디서든 사용이 가능하다. access modifier, default, Java, java access modifier, library 설계, P.. 2013. 8. 13.
[VB6] 다른 Form 으로 값 넘기기 다른 Form 으로 값 넘기기 VB6 프로그램의 규모가 커지게 되면, 하나의 Form 으로 모든 것을 해결하지 못하는 경우가 많아진다.이럴 경우는 Form 을 여러개 생성하면서 메인 Form 에서 다루기 힘든 UI 들을Sub Form 에 생성하여 그곳에서 처리하게 하는 경우가 생긴다. 이 때 필요에 따라서 Main Form 에서 Sub Form 으로 값을 넘겨야 하는 경우가 생기는데,그 방법에 대해 알아본다. 먼저 전달받는 값을 저장한 변수를 정의하고,값 전달을 위해 사용될 public 함수를 만든다. Private passedVar As String Public Sub PassVar(newPassedValue As String) passedVar = newPassedValueEnd Sub 사실 Enca.. 2013. 6. 17.
반응형