Kim-Baek 개발자 이야기

자바 기본 (10) - 오버로딩, 생성자 본문

개발/java basic

자바 기본 (10) - 오버로딩, 생성자

김백개발자 2020. 10. 1. 02:37
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다

 

◎ 배열의 리턴
int go() {

return new int{10, 20, 30}; -> 배열 넘길때 사용
}

◎ 리턴(return)
- 호출한 곳 (caller 메소드) 로 돌아가라
구문 : return [ 값 ]; - 1개의 값    -> 메소드의 retun type이 void 인 경우 생략가능 하지만 다른 type 인경우 반드시 return 구문 실행이 보장되어야 한다.

◎ 메소드 and 생성자 오버로딩 (overloading) 
- 매개변수가 다르면 같은 메소드 이름을 여러거 메소드에 사용할 수 있다. -> 쓰는 사람이 편해진다.
                    -> 개수나 타입
class A{
   void a( ) {   }
   int b ( int i ) {   }
   double c (double d) {   } 
   void d ( String s ) {    }
}         
-> 메소드 이름을 다 똑같이 a 로 해도 된다. (매개변수가 다를때)

ex) System.out.println (" 안녕 ");
      System.out.println ( 20 );
      System.out.println ( 35.7 );
      System.out.println ( true );    
-> 4개의 메소드를 1번 쓴 것! ( Caller )

-> worker 메소드와 연결
1) public void println ( String s )
2) public void println ( int i )
3) public void println ( double d )
4) public void println ( boolean b )

※ 언제 오버로딩을 사용하는가?
- 같은 일을 하는 메소드들이 매개변수가 다른경우 적용!

 프로그램은 JVM 에서 메인메소드를 시작하고 메인메소드가 JVM에서 끝난다
- caller ---> worker ---> caller


◎ 생성자 ( constructor )
- 객체 생성시 한 번 호출되는 동작
※ 객체의 동작에는 생성자와 메소드가 있다. 이 중 메소드는 필요할 때마다 시킬 수 있는 동작!

구문 : [ 
접근제한자 ] Class 이름 ( [ 매개변수 선언, ... ] ) { 동작 구현 }
           -> pulbic 이 대부분              -> parameter            -> 뭐든지 구현이 가능하다.
- 리턴타입이 없다 (어차피 그 class 의 객체가 return 되기 때문이다)
- 이름 : class 이름과 동일해야 한다.
- 매개변수는 0 ~ n 개 선언이 가능하다 ( ) 는 필수이다.
       
    new Class 이름 ( )
         ex) new Person ( ) -> 생성자 중 매개변수 없는 것 호출
- 호출 : 객체 생성시만 호출이 가능하다 -> new 를 이용해 호출
      
     new 생성자이름 ( [ 값, ... ] );
                                        -> 객체 . 생성자 ( x ) 
          ex) Person p = new Person( );   p.Person( ); -> X

※ 프로그램도 딱 한번만 해야할 일이 있다! 그래서 메소드와 구분지어서 만든것이다.
     생성자에 주로 구현하는 것 ->
 Instance 변수 초기화 ( 객체 만들 때 )

Person p = new Person( );                      ->  Person p = new Person ("홍길동, 20, "서울");
p.name = "홍길동";
p.age = 20;
p.address = "서울";

-> 이미 알고 있는데 값 넣는 것은 번거롭지 않니?

◎ 생성자 ( constructor )
- class 안에 구현된 생성자가 없으면 Compiler 가 넣어주는 생성자
                       
-> 하나라도 구현된 것이 있으면 생성되지 않는다.
형태 : public class 이름 ( 매개변수 x ) { 구현 x }

◎ this
- 이것을 의미하며 두 가지의 의미로 사용된다.
1. this . : (현재) 이 객체   2. this ( ) 이 객체의 생성자
this . instance 멤버 ( 변수 or 메소드 ) -
 메소드는 거의 사용되지 않는다.
-> Instance 메소드, 생성자 안에서 사용하는 구문
- Instance 메소드와 생성자를 소유한 객체를 가르킨다
- 주로 Instance 변수와 Local 변수의 이름이 같은 경우, 그 구분을 위해 instance 변수에 사용한다.

◎ 이클립스의 기능
- ctrl + / 하면 주석이 알아서 달린다 한줄짜리
- ctrl + shift + / 하면 여러줄 주석 , 다시 해제하려면 ctrl + shift + \-
- window preference coloring 검색  syntex coloring 을 통해 글자 색상 변경가능
- 클래스 생성시 package 에 constructer 를 하면 디렉토리  개념으로 그 밑으로 자바 소스코드가 모인다
- 생성자가 아예없으면 컴파일러가 하나 넣어준다 default 생성자
- 오른쪽키 source ->generate constructor using fields 
 omit call to de... 체크

반응형
Comments