클래스와 객체

JH·2022년 11월 20일
0

2022-Java-Study

목록 보기
5/10

객체지향 프로그래밍

객체 지향 프로그래밍 (Object Oriented Programming = OOP)

cf. 절차 프로그래밍

클래스

객체에 대한 속성과 기능을 코드로 구현한 것이다.

  • 객체의 속성: property, attribute, member variable
  • 객체의 기능: method, member function
(접근 제어자) class 클래스명 {
	멤버 변수;
	메서드;
}

클래스 정의하기

하나의 java 파일에 하나의 클래스를 두는 것이 원칙이나,
여러개의 클래스가 같이있는 경우 public 클래스는 하나이며 클래스명은 자바 파일명과 동일해야 한다.

자바의 모든 코드는 class 내부에 위치한다. (package, import 제외)

패키지가 다르면 같은 파일명이라도 다른 클래스이다.
ex) aaa > student.java 클래스의 실질적인 이름은 aaa.student이다.


메서드

객체의 기능을 제공하기 위해 클래스 내부에 구현되는 함수이다.

  • 함수: 하나의 기능을 수행하는 일련의 코드
(함수 반환형) 함수명 (매개변수) {
	return 반환값;
}

함수와 스택 메모리

함수가 호출될 때 사용하는 메모리는 스택(stack)이다.

함수의 기능 수행이 끝나면 자동으로 반환되고 없어진다.
함수가 호출되면 지역변수가 쌓이고, 끝나면 스택이 없어진다.


클래스와 인스턴스

클래스 -- 생성(인스턴스화) --> 객체

클래스 생성하기

클래스를 사용하기 위해 클래스를 생성해야 한다.
new 예약어를 이용하여 생성한다.

클래스형 변수명 = new 생성자;
변수명.속성 = 할당할 값;

인스턴스와 힙 메모리

하나의 클래스로부터 여러 개의 인스턴스를 생성한 메모리는 힙(heap)이다.

각각의 인스턴스는 다른 메모리에 다른 값을 가진다.
힙은 뉴 키워드로 생성되고 가비지 콜렉터가 없애준다.

생성자

클래스 이름과 같다. 디폴트 생성자가 있지만 따로 적어주면 제공하지 않는다.

객체가 생성될 때 수행되어야 하는 코드를 적어줄 수 있다.

public 생성자() {}

참조 자료형

변수 자료형에는 기본 자료형과 참조 자료형이 있다.

  • 참조 자료형: String, Date, Student(클래스)

정보은닉

클래스의 외부에서 클래스 내부의 멤버 변수나 메서드에 접근하지 못하게 private 접근 제어자를 사용한다.

변수에 대해서는 필요한 경우 get(), set() 메서드를 제공한다.

profile
매일 한 문제씩 풀기

0개의 댓글