☕Java 클래스, 멤버 변수, 패키지, 함수 (스택 메모리)

hamsang·2022년 5월 13일
0

Java

목록 보기
4/36
post-thumbnail

☕ 클래스 (Class)

객체지향 프로그램은 클래스를 기반으로 프로그래밍한다. 클래스는 객체의 속성과 기능을 코드로 구현한 것이다. 객체를 클래스로 구현하는 것을 '클래스를 정의한다'라고 한다.

▶ 클래스를 정의하는 문법

(접근 제어자) class 클래스 이름 {
	멤버 변수;
	메서드;
}

클래스 이름은 항상 대문자로 시작한다. 코딩 컨벤션 (암묵적 규칙)

▶ 클래스형 (참조 자료형)

  • 객체 자료형 또는 참조 자료형이라고도 한다.
  • JAVA에서 기본형(Primitive type)을 제외한 타입들이 모두 참조형(Reference type) 이다.

▶ 변수의 자료형은 기본 자료형(int, long, double 등), 참조자료형(String, Date, Student 등) 으로 나뉜다.


☕ 멤버 변수

  • 클래스 내부에 선언하는 클래스의 속성

▶ 위 코드와 같이 studentId, studentName, grade, address는 모두 Student 클래스 내부에 선언된 속성, 즉 멤버변수이다.


☕ 패키지란?

  • 클래스 파일의 묶음
  • 패키지를 만들면 프로젝트 하위에 물리적으로 디렉터리가 생성된다.
  • 계층 구조를 가질 수 있다.
    ▶ 프로젝트 수행시 계층 구조를 구성하는 것은 전체 프로젝트의 소스 코드를 관리하는 것과 관련이 있다. 계층 구조를 잘 구성해야 코드 관리와 유지 보수가 편리해진다.

클래스 이름이 같더라도 패키지 이름이 다르면 class full name도 달라지므로 서로 다른 클래스이다.


☕ 함수 function

  • 하나의 기능을 수행하는 일련의 코드
    ▶ 어떤 기능을 수행하도록 미리 구현해 놓고 필요할 때마다 호출해 사용할 수 있다.
  • 하나의 함수에 하나의 기능을 구현해야한다.

함수의 장점

  • 기능을 나누어 코드를 효율적으로 구현할 수 있다.
    ▶ 기능을 분리해서 구현하면 프로그램 코드의 가독성이 좋아진다. 너무 긴 코드가 main()함수에 모두 들어 있으면 이해하기 어렵다.

▶ 함수 정의하기

//기본 형식
함수 반환형 함수 이름 (매개변수) {
  code;
  code;
  return 반환값;
 }

//num1, num2를 더한 값을 리턴하는 함수
int add (int num1, int num2) {
  int result;
  result = num1 + num2;
  return result;
} 

▶ 함수 호출하기

public class method {
	
	public static void main(String[] args) {
		
		int num1 = 10;
		int num2 = 20;
		
		int sum = add(num1, num2); //함수 호출
		System.out.println(num1 + "+" + num2 + "=" + sum);
	}
	
	//add() 함수 정의
	public static int add(int n1, int n2) {
		int result = n1 + n2;
		return result;
	}

}

✔ add() 함수의 반환형이 int이기 때문에 결과 값이 저장되는 sum 변수도 int로 선언했다.
✔ 함수를 구현할 때 사용한 매개 변수의 이름과 호출할 때 변수 이름은 같을 필요가 없다.


반환값이 없는 함수를 정의할 때는 반환형 자리에 void를 쓴다.

void printGreeting(String name) {
  System.out.println(name + "님 안녕하세요");
  return; //반환 값 없음
}

☕ 함수 호출과 스택 메모리

  • 함수를 호출하면 그 함수만을 위한 메모리 공간, 스택(stack)이 할당된다.
    A() ▶ B() ▶ C() 함수의 순서로 호출했다면 C() ▶ B() ▶ A() 순서로 반환되고 스택 메모리도 이 순서대로 소멸된다.

profile
햄생

0개의 댓글

관련 채용 정보