본문 바로가기
JAVA/JAVA복습(멘토씨리즈 자바)

[JAVA복습] 07. 클래스

by ssunooo 2024. 7. 18.

 

 

01. 핵심 정리

 

객체 지향 프로그램이란?

객체는 일반적으로 상태를 표현할 수 있으며 행동으로 실행할 수 있는 모든 것

이러한 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍 하는것

 

클래스란?

객체를 생성하기 위한 제작 설명서

 

클래스의 선언


1
2
3
4
5
6
7
8
9
package section06;
 
public class ArrayExample {
    public static void main(String[] args) {
        접근제한자 class 클래스 이름 {
            ......
        }
    }
}
cs

 

클래스를 구성하는 3가지 요소

  1. 필드(field) : 객체가 가져야 할 데이터, 상태를 저장하는 변수
  2. 메서드(method) : 객체의 특정 기능을 수행하는 코드 블록
  3. 생성자(constructor) : 객체를 생성하면서 객체 변수를 초기화 라는 역할(기능)을 하는 메서드

 

인스턴스 멤버란?

각 객체가 가지게 되는 필드와 메서드

 

정적멤버란?

모든 객체들이 공유하며 사용하는 하나의 필드와 메서드

 

static

정적멤버는 static 키워드로 선언 가능

객체를 생성할 때 메모리에 올라가는 것이 아니라,

프로그램 시작할 때 메모리에 올라가고 프로그램 종료될 때 메모리에서 사라짐

 


 

2. 응용 문제

 

Q1. 다음 문장이 맞으면 O표, 틀리면 X표 하세요.

  • 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍하는 것을 객체 지향 프로그래밍이라고 합니다. (O)
  • 하나의 클래스로 하나의 객체만 만들 수 있습니다. (X)

 


 

Q2. 다음 중 객체가 될 수 있는 것을 모두 고르세요.

  1. 학생
  2. 수영장
  3. 나이

A2. 1,2,3

학생, 수영장, 꽃은 구체적인 형태를 가지므로 객체가 될 수 있지만,

나이는 시간에 따라 변하고 형태가 없으므로 객체가 될 수 없다.

 


 

Q3. 다음 빈칸에 알맞은 단어를 작성해 보세요.

  • 클래스의 3요소는     필드(field)      ,     메서드(method)      ,     생성자(constructor)      입니다.
  • 클래스를 선언할 때     접근 제한자      (을)를 이용해 접근 범위를 설정할 수 있습니다.
  • 클래스는 크게     실행용      클래스,     라이브러리용      클래스로 분류할 수 있습니다.

 


 

Q4. 다음 코드는 컴파일 에러가 발생합니다. 그 이유는 무엇이며, 어떻게 해결해야 할까요?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package section07;
 
public class PRACTICE_07_04 {
    public static void main(String[] args) {
        Speaker speaker=new Speaker;
        speaker.turnOn();
    }
}
 
class Speaker {
    void turnOn() {
        static int volume=50;
        System.out.println("스피커의 전원이 켜졌습니다. 기본 볼륨은 "+volume+"입니다.");
    }
}
cs

A4. 12번째 줄에 static은 정적멤버로 메서드 안에 설정하는 것이 아니라 밖으로 빼서 정적멤버(필드)로 사용하거나,

       메서드에 붙여서 정적멤버(메서드)로 사용해야한다.

static void turnOn() {

         int volume=50;

 

or

 

static int volume=50;

void turnOn() {

 

 

 

2024.07.18

'JAVA > JAVA복습(멘토씨리즈 자바)' 카테고리의 다른 글

[JAVA복습] 09. 생성자  (0) 2024.07.21
[JAVA복습] 08. 메서드  (0) 2024.07.20
[JAVA복습] 06. 배열  (0) 2024.07.18
[JAVA복습] 05. 제어문(2)  (0) 2024.07.16
[JAVA복습] 04. 제어문(1)  (0) 2024.07.16