일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자바
- Sort
- ElasticSearch
- 엘라스틱서치
- JavaScript
- 카카오 면접
- 스프링핵심원리
- 스프링 핵심원리
- kubernetes
- 예제로 배우는 스프링 입문
- 오블완
- 김영한
- 이차전지관련주
- 이펙티브 자바
- 스프링부트
- Effective Java
- 티스토리챌린지
- 이펙티브자바
- 자바스크립트
- java
- 알고리즘
- Effective Java 3
- 클린아키텍처
- 스프링
- effectivejava
- k8s
- 알고리즘정렬
- 카카오
- Spring
- 코딩테스트
- Today
- Total
Kim-Baek 개발자 이야기
자바 기본 (10) - 오버로딩, 생성자 본문
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다
◎ 배열의 리턴
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... 체크
'개발 > java basic' 카테고리의 다른 글
자바 기본 (12) - 자바의 메모리 영역, 호출 스택 (0) | 2020.10.03 |
---|---|
자바 기본 (11) - 생성자, 접근제한자, VO (0) | 2020.10.02 |
자바 기본 (9) - 객체와 클래스 (0) | 2020.09.30 |
자바 기본 (8) - 이클립스 사용, 객체지향과 절차지향 (0) | 2020.09.29 |
자바 기본 (6) - 입출력, 배열 (0) | 2020.09.27 |