본문 바로가기
Programming/Node.js

[JAVA] 변수와 메서드

by 알 수 없는 사용자 2022. 10. 11.

업무중 잠깐 java를 사용할 일이 있어 사용하다가

java로 dev 하시는 분들이 보기 좋은 내용 한번 올려본다.

 

java는 돈이 들어도 인텔리제이가 개인적으로 최고다.

학교이메일이 살아있으면 인텔리제이를 사용하는 것도 방법이다.

나는 사라졌다....(칼같은 대학...)

 

[함수와 메서드의 차이]

 

함수는 클래스에 속해 있지 않다 단독 모듈이며 호출해서 사용.

메서드는 클래스 안에 속해있으며 클래스에 멤버 변수를 활용해서 구현하는 게 메서드.

C++에서는 멤버함수라고도 하고 java에서는 메서드 라고 함.

 

[인스턴스 변수, 클래스 변수와 지역변수]

변수종류 선언위치 생성시기
클래스 변수(class variable) 클래스 영역 클래스가 메모리에 올라갈 때
인스턴스 변수(instance variable) 인스턴스가 생성되었을 때
지역 변수(local variable) 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부)
변수 선언문이 수행되었을 때 

인스턴스 변수

클래스 영역에 선언. 클래스의 인스턴스를 생성할 때 만들어짐.

인스턴스를 먼저 생성해야 인스턴스 변수를 사용할 수 있다.

인스턴스마다 고유한 값이나 상태를 유지해야 하는 경우 인스턴스 변수로 선언하여 사용.

 

클래스 변수

인스턴스 변수 앞에 static을 붙이면 클래스 변수.

클래스 변수는 모든 인스턴스가 공통된 저장공간을 공유하게 되어 공유 변수이다.

이러한 특징으로 인하여 한 클래스가 모든 인스턴스들이 공통적인 값을 유지해야 하는 경우 클래스 변수로 사용.

클래스가 메모리에 올라갈 때 생성되기 때문에 프로그램이 종료될 때까지 유지되며, public을 앞에 붙이면 같은 프로그램 내의 어디서나 접근할 수 있는 전역 변수의 성격을 갖게 됨.

 

지역 변수

메서드 내에서만 선언되어 사용이 가능.

for문, while문과 같은 블록 내에 선언된 변수도 지역변수.

블록내의 지역변수는 선언된 블럭 내에서만 사용이 가능.

 

[메서드]

메서드는 어떠한 작업을 수행하기 위한 집합.

코딩을 하다 보면 반복적인 코드를 작성하는 경우가 많은데. 코드를 줄이기 위해서 메서드를 사용함.

주로 어떠한 값을 입력받아서 처리하고 결과를 되돌려주는 역할을 수행함.

 

[코드 설명]

 

메서드 함수 파일과 클래스 생성후 실행할 자바파일

 

현재 이 글에서는

oppClass에서 메서드를 구현했고

oppTest01에서 호출과 실행을 진행함.

 

 

더하기 메서드
클래스 생성
결과

 

 

클래스 생성 부분에서 oppClass B의 구조는 int B의 구조와 흡사하다.

int를 정수형 데이터 타입이라고 부르는데, 우리가 만든 메서드가 데이터 타입이 된 것이다.

정리) int = 정수형 데이터 타입
         oppClass = 데이터 타입

 

그렇다면 뒤에 나오는 B는 무엇일까? 쉽게 생각해보자

int 정수형 데이터 타입을 선언 후 해야 할 것은 변수명 설정이다. 예) int B = 0;

그렇다면 oppClass뒤에 오는 문장도 변수이다. 예) oppClass B =?;

 

oppClass B = new oppClass(); = [ 데이터 타입, 변수, = 키워드, 생성자();  ]

이 말 즉슨 oppClass라는 데이터타입 크기의 변수를 선언하고 oppClass라는 생성자를 B변수로 생성해라.....

말이 어렵지만 쉽게 생각하 자면 그냥 B변수에 oppClass가 복사된 것이다.

 

우리는 oppClass B = new oppClass(); 이것을 인스턴스 함수라고 합니다.

 

 

[하나의 메서드 여러 번 쓰기]

이렇게 생성된 더하기 메서드는 다른 변수들로 여러 번 사용이 가능합니다. 그러려고 사용하는 것이에요~

 

 

 

'Programming > Node.js' 카테고리의 다른 글

[Spring] 컨테이너 빈 이름으로 조회하기  (0) 2022.10.12
[JAVA] this  (0) 2022.10.11
Java Class - public static void main(String[] args)  (0) 2022.10.07
[JAVA] HashMap  (0) 2022.09.14
Javascript-간단한 실행하기  (1) 2022.09.08

댓글