본문 바로가기

Wanna be a Programmer/Java Programming

Java Programming - 생성자, Overloading, 접근제한자

생성자


- 객체가 생성되고 소멸되기까지의 과정에서 생성될 때 한번 실행되는 동작(new와 함께 온다)

[제한자]이름(매개변수) {

생성자를 만들지 않으면 default 생성자가 만들어진다(컴파일러에 의해

ex) public Bank() { }

Instance variable을 초기화하기 위해서 생성(초기값을 할당)

 

Overloading


생성자 Overloading, 메소드 Overloading : 매개변수가 다르다면 같은 이름의 메소드 / 생성자를 한 class안에 여러 개 만들 수 있다.

생성자 Overloading : 생성자는 클래스와 같기 때문에 인수가 다르다면 생성자를 여러 개 만들 수 있다.

메소드 Overloading : 메소드의 매개변수가 다르면 같은 이름의 메소드라 할지라도 여러 개 만들 수 있다. ex) void go(), void go(int I)

메소드가 같은 일을 하는데 매개변수가 다른 경우 메소드 Overloading을 사용한다.

        ex) int sumint2(int I, int j) sumdoub1(double d, double e) sumint3(int I, int j, int k)


 main문에서 c.sumint2(10, 20); c.sumdoub1(10.23, 20.23); c.sumint3(10,20,30); 이라고 입력을 하는 대신에 메소드의 이름을 sumint라고 통일하면 중복적인 코드를 여러번에 걸쳐 작성할 필요없이 해당 메소드를 사용하는 사용자 입장에서 편리하게 사용할 수 있다.

 

This()


- 생성자에서 overloading된 다른 생성자 호출, 생성자 구현부의 첫 번째 실행문으로 들어와야 한다.

 


 

객체 생성시 Instance변수 초기화 3단계


묵시적 초기화(Default) : 변수 type의 기본값 할당(기본값 : 숫자(0, 0.0), char(공백), 논리(false), 나머지(Reference data type, NULL)

명시적 초기화 : 코드상에 대입한 값이 할당됨

생성자 수행에 의한 초기화 : 생성자 실행 

Object Oriented Programming(OOP) 캡슐화, 상속, 다형성


 

접근제한자(Access Modifier)


- class, method, 생성자, instance변수에 사용하는 제한자, 호출 범위를 제한하는 역할 

public, protected, package friendly, private

public : 접근에 제한 없다

private : 객체 내에서만 접근 가능 

 제한자 Return type 이름(매개변수→ UML 변환 이름([변수형: type, ...]) : Return type

ex) void eat(String food)  eat(food : String) : void