본문 바로가기

AdvancedJava

어노테이션, 생성자, 제어자

어노테이션 


meta data 이다. 

대표적으로
@Override 

@Deprecated

@SuppressWarnings 리턴타입이 bool 일때, 억지로 정의 ? 하는거

@Rentention



어노테이션 타입



생성자 

결국 여러가지 선언 방법이 있다. 


생성자는 override 되지 않는다.


생성자는 반드시 super 의 생성자를 호출해야한다. 


defalt 생성자는 생략가능하다. 


여기까지 생성자의 특징.


제어자

1. 제어자(modifier)

- 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다.

- 접근제어자 : public, protected, default, private

- 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp

- 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있으나, 접근제어자는 단 하나만 사용할 수 있다.


싱글톤 패턴 봐야 한다. 

abstract은 형식만 지정했기 때문에 생성자를 호출 안됨.


synchronized 는 메소드에만..


반드시 object를 잡는다. 

무슨말이냐면 

동시접근을 못하게 막을건데 Synchronized

해당하는 object의 메소드를 동시에 접근하지 못하게 막는것.


뒤에가서 설명함..


transient는 안씀 

volatile 멀티쓰레드를 동시에 접근할때, 동기화 될때 동기화 안되도록하는거.

strictfp 이건 첨들어보는데 floatpoint(부동소수점) 연산에서 문제가 되는게 하드웨어에 따라 정밀도가 달라진다.  그래서 software로 연산하게 만드는 거다... 라고 하는것 

범위 제한자는 기본


Default Contructor 기본 생성자

아무것도 없는 생성자 

디폴트 생성자는 다른생성자와는 다르게 명시적으로 호출을 해줘야 하지만 이건 안해도 된다. 알아서 컴파일러가 해줌.


class A {

pulbic A (int x)

{

print "a"

     }

}

class B{

public B(int x{

super(x);

print "b"

}


)

}


자바는 super 를 무조건 호출해줘야 한다. 


super의 디폴트생성자를 호출하는 한에서 생략가능.


 

'AdvancedJava' 카테고리의 다른 글

final keyword  (0) 2016.07.05
static Keyword  (0) 2016.07.05
한번 날라간 인터페이스 포스팅  (0) 2016.07.05
용어정리  (0) 2016.07.05
캡슐화,객체관계,상속,다형성,object vs class  (0) 2016.07.05