Programming Language/Java

[Java] 클래스, 메소드 개념 정리

Sergemeow 2022. 10. 13. 22:43

클래스란 객체를 생성하기 위해 코드로 구현한 것이다.

말하자면 객체를 생성하기 위한 설계도라고 볼 수 있다.

클래스명은 통상적으로 대문자로 시작된다.

IDE내에서 class 예약어를 통해 클래스를 생성하며 객체의 속성과 기능을 코드로 그 내에 구현한다.

클래스를 통해 메모리 공간에 생성된 객체가 인스턴스이다.

 

필드(멤버변수)

클래스에 포함된 변수로, 선언된 위치에 따라 구분된다.

- 클래스 변수(static variable 전역변수): 해당 클래스의 모든 인스턴스가 공유해야하는 값을 유지하기 위해 사용.

- 인스턴스 변수(객체변수): 인스턴스마다 가져야하는 고유한 값을 유지하기 위해 사용

힙영역에 저장되며, 인스턴스의 생성과 동시에 종료된다.

- 지역 변수: 메소드 안, 생성자 안, 초기화 블럭 내부에 위치한 변수.

스택영역에 저장되며 변수 생성시 생성되고 종료된다.

 

생성자

객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화 할 수 있는 메소드이다.

생성자의 이름은 반드시 해당 클래스의 이름과 동일해야한다.

생성자는 리턴값은 없으나 void로 선언하지는 않는다.

캡쳐된 이미지는 Account 클래스이다. 필드로 accNo, name, balance가 선언된 것을 볼 수 있다.

그 아래 라인 8~12까지는 생성자 영역이다. 특별히 초기화해줄 원하는 값은 없어서 this.accNo = accNo; 와 같은 형태로 작성해주었다.

 

메소드

특정 작업을 수행하기 위한 명령문의 집합

[접근제어자][리턴타입][메소드명](매개변수){처리문;}의 형태로 작성된다.

- 접근제어자: 해당 메소드에 접근할 수 있는 범위를 명시

private < default < protected < public

- 리턴타입: 메소드가 모든 작업을 마치고 리턴하는 값을 데이터 타입으로 명시

int, String, void 등

- 메소드명: 메소드를 호출하기 위한 이름을 명시

- 명령문: 기능

- 메소드 호출: 참조연산자.을 통해 호출

 

은행앱을 연습과제로 코딩할 때 쓴 계좌생성 메소드이다.

접근제어자는 public,

리턴타입은 void,

메소드명 issueAcc, 매개변수는 정수이다. 

해당 메소드는 BankAppManager 클래스에 작성되었다.

호출은 다른 클래스에서 하였으므로 우선 bam이라는 이름의 BankAppManager 인스턴스를 생성해주었다.

이후 bam.issueAcc(accnt)로 메소드를 호출해 사용했다.