클래스명 객체 = new 클래스명()
객체명.변수명
객체명.메소드명()
- 사용자가 직접 만든 함수
- 내장 함수 외의 기능 혹은 자신이 원하는 기능을 작성
< 자판기 개념 예시 >
< main = 버튼 >
커피종류 (input) ↓
↑ 잔돈(output)
< 사용자함수 = 잔돈계산기 >
- 메소드 정의 : 사용자 메서드를 새로 만드는 것
- 인수 = argument : 사용자 함수에 전달할 입력 (input)
- 매개변수 = parameter : 인수를 받아서 저장하는 변수
- 반환값 = return : 사용자 함수의 출력(output)
- 함수 호출 : 만들어진 사용자 함수를 사용하는 것
반환타입 메소드명(자료형타입 매개변수, 자료형타입 매개변수..) {
본문
return 반환값;
참조변수.메소드명(인수);
1) 인수: X, 반환값: X
객체명.메소드이름()
void print_name() {
System.out.println("이름은 사자.");
}
클래스 안에는 변수와 메서드를 만들수 있다.
void 타입의 메서드를 만들었다.
void : 반환값이 없다. = return이 없다.
위에서 생성한 메서드를 사용하려면 객체를 만들어야한다.
Animal lion = new Animal();
: lion 객체를 만들었다.
lion.print_name();
< 결과 >
2) 인수: O, 반환값: X
객체명.메소드이름(인수)
매개변수가 2개면 인수(parameter)도 2개여야한다.!!
그 기능에 맞게 데이터만 잘 보내주면 몇개든 상관이 없다.
< 결과 >
3) 인수: X, 반환값: O
자료형 변수명 = 객체명.메소드이름(인수)
4) 인수: O, 반환값: O
자료형 변수명 = 객체명.메소드이름(인수)
return result;
정수 2개를 받아서 두 개의 합을 리턴해주는 것.
System.out.println(lion.sum(10, 20));
변수에 저장하지 않고 바로 값을 넣어주었다.
sum이라는 메소드에는 int 2개가 존재한다.
프린트를 한다는 것, 저장을 한다는 것은 무조건 리턴이 존재한다는 의미이다.
리턴값이 있어야 프린트, 저장이 가능하다.
클래스는 객체가 가져야 할 값과 기능을 가져야 한다.
사람 ( 객체 )
변수(인스턴스 변수) 함수(인스턴스 메소드)
이름 나이 연락처 주소 잔다, 먹는다, 공부한다, 달린다.
명사적 성격 동사적 성격
1) 클래스를 기반으로 만들어지는 모든 인스턴스들이 각각 따로 저장하는 변수
2) 객체마다 가지는 고유한 변수
2) 인스턴스를 생성할 때 만들어짐
3) 인스턴스마다다른값을가져야할경우인스턴스변수로선
언
1) 객체를 생성해야 호출이 가능한 메소드 2) 객체가 생성되어야 메모리에 올라감
3) 메소드 앞에 static이 붙어있지 않음
1) 모든 인스턴스가 동일한 값을 사용할 때 정의함
2) 모든 인스턴스들이 공유하도록 처리
3) 메모리공간을절약할수있음
4) 클래스가 처음 메모리에 로딩될 때 생성
5) 변수 선언 시 static 키워드를 사용
1) 객체를 생성하지 않아도 호출이 가능
2) 메소드 선언 시 static 키워드를 사용
- 객체를 생성해야 사용가능
- 객체마다 다른 값을 가질 수 있음.
- 객체. 변수 or 객체.메소드 로 사용
- 클래스 이름으로 사용 (객체를 생성하지 않아도 사용 가능 )
- 해당 클래스와 해당 클래스로 생성한 모든 객체가 동일한 값을 가짐.
- static키워드가 붙어있음.
- 클래스 메소드 안에서는 클래서 변수, 클래스 메소드만 사용가능