2020-08-05 #3 메소드와 클래스의 개념
- 언어/자바
- 2020. 8. 5.
1.함수(Method)란?
1. 메소드란 입력값이 있고 자기만의 고유 기능을 가지고 기능을 수행하는 개념이다.
2. 입력값을 매개변수, 결과값을 리턴값이라고 한다.
3. 함수는 함수가 호출하고, 메인함수는 OS가 호출한다.
4. 함수의 이름은 누구나 직관적으로 어떤 기능을 갖고있는지 알 수 있게 정하는것이 규칙이다.
2.함수(Method)의 종류
1.표준함수
- 프로그램에서 선언없이 사용할 수 있는 함수.
2.사용자정의함수
1)instance method
1. 객체가 메모리에 올라가잇는 상태에서 쓰는 메소드
2. 객체당 사용되는 메소드
3. this를 가지고 있다. 상상 첫번째 매개변수로 존재하고있다.
4. 객체를 꼭 만들어야 사용할 수 있다.
2)static method
1. 메모리 객체 상관유무 없이 컴파일타임때 미리 메모리가 만들어짐
2. this를 가지고 있지 않다.
3. 모든객체가 공유하는 목적으로 사용한다.
두 개의 가장 큰 차이점은 객체의 유무이다.
3.오버로딩(다형성)
1. 동일한 함수명으로 여러개의 함수를 제공
2. 매개변수의 타입이 달라야한다. (int,char등)
3. 또는 매개변수의 갯수가 달라야함 (2번 혹은 3번 둘중하나 다르면 됨)
4. 하나의 이름으로 여러개의 함수를 사용 할 수있다.
5. 같은 기능을 가지고 있는 것들끼리만 사용하는것이 좋다.
4.class
1.구성요소
1) field
- 객체를 사용을 할동안 지속적으로 사용되어지는 데이터
- 주로 *private을 사용을 한다. (*private=외부에서 접근을 허용하지 않는다. )
- 클래스 내부에 있는 허락해준 메소드를 통해 사용을 하게 하는 방법.
2) Constructor(생성자함수)
- 항상 명시적으로 만들지 않을경우 디폴트 생성자 1개를 자동으로 제공을 한다.
- 객체 생성시 자동 호출되어진다.
- 디폴트 기능: 객체등록
사용자 기능: 필드 초기화 목적(객체를 만든 순간 이 필드를 이 값으로 정한다.)
- 생성자함수는 주로 *public(누구나 사용가능할수있게해준다.)으로 지정을 해야한다.(외부에서 언제든 그 객체를 사용 할수잇도록)
- 생성자함수는 오버로딩이 가능하다.
- 리턴타입이 존재하지 않다.
- 함수명은 클래스명과 동일하다.
- 명시적으로 생성자를 만들경우 디폴트 생성자는 존재하지 않는다. (명시안하면 디폴트생성자O)
3) method
- 외부와 내부를 연결시켜주는 기능
- instance method, static method를 제공할수있다.
- getter method(외부에서 객체를 사용하는 데이터 얻어옴), setter method(외부에서 데이터를 입력할때) 주로 사용 한다.
- setter : 필드에 입력 하는 기능을 가진 메소드
- getter : 외부에서 필드의 현재값을 사용할 수 있게 해주는 메소드
* setter와 getter는 어떤 기능을 갖고있다기보단 사용자가 편하게 사용하기 위해 만들어놓은 개념이다.
5.this
특징
- 항상 instance method의 첫번째 매개변수로 존재하고있다.( this의존재 = 두개의 매개변수가 존재한다는뜻 )
- 명시적으로 만들수 없고 오직 사용만 할 수 있다.
- 자기자신의 객체를 접근하는 객체 레퍼런스변수
- 객체를 구별해주는 역할(메모리절약기능)
- 지역변수와 필드 이름이 같을경우 명시적으로 구별하기위해서 꼭 사용을 해야 한다.(this.을 붙히면 filed값 리턴)
- 내 자신을 리턴을 시켜야할때
'언어 > 자바' 카테고리의 다른 글
2020-08-11 # List (0) | 2020.08.12 |
---|---|
2020-08-10 ArrayList 기본개념 (0) | 2020.08.10 |
2020-08-10 클래스의 관계 (0) | 2020.08.10 |
2020-08-07 배열 (0) | 2020.08.06 |
2020-08-04 (연산자, 제어문) (0) | 2020.08.04 |