티스토리 뷰

Java

[JAVA]클래스(Class)

TreeBomb 2023. 12. 13. 16:22

클래스란?

- 객체를 생성하기 위한 설명서이다.

- 어떤 물건을 만들기 위한 매뉴얼이라고도 생각할 수 있다.

- 클래스를 기반으로 객체를 생성해야 한다.

- 하나의 설명서로 여러 개의 여러 개의 물건을 만들 수 있듯이 자바에서는 하나의 클래스로 여러 개의 객체를 생성할 수 있다.

 

객체지향 프로그래밍

- 말 그대로 객체를 지향하는 프로그래밍 방법이다.

- 객체란 우리 실생활에 존재하는 모든 것이라고 말할 수 있다.

- 객체는 일반적으로 상태를 표현할 수 있고, 우리가 행동으로 실행할 수 있는 모든 것들을 의미한다.

- 이런 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍하는 것을 객체지향 프로그래밍이라고 한다.

 

클래스의 종류

쉽게 설명하면 객체 생성용 클래스는 붕어빵 기계의 틀이라고 생각하고

main클래스는 붕어빵을 굽는 과정이라고 많은 사람들이 비유를 한다.

- 실행용 클래스(main)

    - 프로그래밍 전체에서 단 하나의 클래스로, 프로그램의 실행을 맡고 있다.

    - main메서드를 갖고 있으며, 다른 클래스에서 사용되지 않는다.

- 객체 생성용 클래스

    - 다른 클래스에서 사용할 목적으로 선언되는 클래스

    - 하나의 클래스에서 두 가지 용도의 역할을 모두 수행할 수 있다.

    - 유지 보수와 객체 지향 프로그래밍의 특징인 모듈화를 고려해서 별도로 분리하여 작성하는 것이 좋다.

 

객체 생성용 클래스

public static void main(String[] args) { } 우리는 보통 이 main메서드 안에다가 코드를 작성하며

공부를 해왔을 것이다. 그러면서 수많은 main메서드를 만들었지만 이제는 그러지 않는 습관을 만들어보자

객체 생성용 클래스는 위처럼 main메서드를 만들지 않는다.

public class Fish{
	//클래스명 명명 규칙
    //영어 대소문자를 사용할 수 있으며 보통 첫 글자를 대문자로 한다.
    //숫자를 사용할 수 있으나 첫 글자로는 사용할 수 없다.
    //특수문자는 $,_ 만 가능하다.
    //자바의 예약어(id,switch,for,while,...)는 사용할 수 없다.
}

위에 쓰여있는 것과 같이 이름을 지어주면 된다 변수의 명명 규칙이랑 비슷하다.

 

실행용 클래스

실행용 클래스는 우리가 평소에 사용하던 것이 실행용 클래스이다.

public static void main(String[] args) { }

이 메서드가 실행용 메서드를 의미한다.

그럼 아까 만든 Fish클래스를 생성해 보자

public class FishMain {
	public static void main(String[] args) {
		//객체변수 선언하기
		//클래스명 객체명;
		Fish f;
		
		//객체변수에 대입하기
		//선언한 객체변수에 객체를 생성하여 대입하기
		//객체변수명 = new 클래스명();
		f = new Fish();
		
		//객체변수 초기화
		//클래스명 객체변수명 = new 클래스명();
		Fish f2 = new Fish();
	}
}

위와 같은 코드를 실행하면 Fish의 객체가 2개(f, f2)가 생성이 된 것이다.

 

클래스의 구성요소

- 필드 (위에서 붕어빵을 예시로 들었을 때 반죽과 속 재료를 필드로 선언한다고 생각하면 된다.)

    - 객체가 가져야 할 데이터의 상태를 저장하는 변수 필드 또는 멤버라고 부른다

    - 필드의 값을 초기화하지 않으면 객체 생성 시 자동으로 기본값으로 초기화된다.

- 메서드(함수)

필드

필드의 선언

public class Fish {
    String shape; //붕어빵의 모양
    String inner; //붕어빵의 속재료
}

이런 식으로 필드를 선언할 수 있다.

 

실행용 클래스

public class FishMain {
	public static void main(String[] args) {
		Fish f1 = new Fish();
		f1.shape = "잉어";
		f1.inner = "팥";
		
		Fish f2 = new Fish();
		f2.shape = "붕어";
		f2.inner = "슈크림";
		
		System.out.println("f1객체의 모양은 "+f1.shape+"이고 속재료는 "+f1.inner+"이다.");
		System.out.println("f1객체의 모양은 "+f2.shape+"이고 속재료는 "+f2.inner+"이다.");
		
	}
}

예시로 String만 필드로 선언을 했지만 다른 자료형들도 가능하다. 

 

메서드는 다음 글에서 확인해 보자.

2023.12.14 - [Java] - [JAVA] 메서드(method)

 

[JAVA] 메서드(method)

변수의 생명주기 메서드를 자세히 보기 전에 변수의 생명주기에 대한 이해가 필요하다. 변수 종류 생명주기 지역변수 지역변수를 선안한 중괄호 내에서만 유효하다. 매개변수(파라미터) 메서드

treebomb-code.tistory.com

 

'Java' 카테고리의 다른 글

[JAVA]setter&getter  (0) 2023.12.15
[JAVA] 메서드(method)  (0) 2023.12.14
[JAVA]배열2(Arrays)  (0) 2023.12.01
[JAVA] 배열(Array)  (2) 2023.11.30
[JAVA]기타제어문(break,continue)  (2) 2023.11.30