티스토리 뷰
클래스란?
- 객체를 생성하기 위한 설명서이다.
- 어떤 물건을 만들기 위한 매뉴얼이라고도 생각할 수 있다.
- 클래스를 기반으로 객체를 생성해야 한다.
- 하나의 설명서로 여러 개의 여러 개의 물건을 만들 수 있듯이 자바에서는 하나의 클래스로 여러 개의 객체를 생성할 수 있다.
객체지향 프로그래밍
- 말 그대로 객체를 지향하는 프로그래밍 방법이다.
- 객체란 우리 실생활에 존재하는 모든 것이라고 말할 수 있다.
- 객체는 일반적으로 상태를 표현할 수 있고, 우리가 행동으로 실행할 수 있는 모든 것들을 의미한다.
- 이런 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍하는 것을 객체지향 프로그래밍이라고 한다.
클래스의 종류
쉽게 설명하면 객체 생성용 클래스는 붕어빵 기계의 틀이라고 생각하고
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 |
- Total
- Today
- Yesterday
- 자바기초
- 배열 내림차순
- 자바
- 자바 클래스 설명
- 생성자란
- 코딩
- 모바일프레임워크
- 생성자 위치
- 자바 기초
- 코린이
- 자바 배열
- 자바 this()
- 자바 배열 초기화
- 생성자 쉽게 만들기
- 자료형
- 자바 Arrays
- java기초
- 자바 배열 생성
- getter setter 쉽게 만들기
- java overloading
- 자바 배열 내림차순 정렬
- 게터세터 쉽게 만들기
- 자바 클래스 이해
- 생성자를 써야하는 이유
- 생성자 호출 위치
- 변수 생명주기
- 자바 게터
- Java
- 자바 생명주기
- 자바 세터
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |