본문 바로가기
프로그래밍언어/JAVA

클래스와 인스턴스

by 스키피땅콩버터 2020. 11. 27.
반응형

개발을 시작하기에 앞서 가장 먼저 각 용어들과 그 용어들이 하는 역할 및 명명규칙 등을 정리하여 넘어가면 좋을 것 같아 작성해 보았습니다.

 

가장 먼저  JAVA는 Object Oriented Programming (객체지향 프로그래밍)입니다.

클래스가 가장 기본적인 구조라고 할 수 있습니다.

 

1. 변수(Variable): 메모리의 위치를 가리킴.

변수의 역활 : 메모리의 위치 ‘int age’라고 한다면 (int : 4 바이트 나타냄/ 4바이트짜리 메모리를 정하고, age라고 이름을 정한다.)

 

-자바의 명명규칙-

1. 대소문자 구분
2. 예약어(Reserved Word) 사용 불가
3. 영문자와 숫자의 조합으로 사용 가능, 단, 숫자로 시작할 수 없다.
4. 특수문자는 ‘_’와 ‘$’만 허용한다.
5. 역할의 이름을 명확히 한다.
6. 약어로 쓰지 않는다.
Ex)number
of student(O), ns(x)

 

기본 자료형 - 자바에서 기본적으로 제공되는 데이터 타입

각 타입마다 표준 메모리 사이즈가 있다.

문자도 숫자처럼 양수 값만 값으로 제공한다.

대문자 A를 숫자 65라고 표현하며, 이러한 약속을 인코딩이라고 한다.

 

이때, 표준 인코딩을 [유니코드]라고 하며, 유니코드  문자 체계는 자바에서 사용한다.

한글 : 1바이트를 쓸 수 없으며, 2바이트 이상 가능하다.

 

참조 자료형 

클래스를 변수의 자료형으로 사용

JDK가 제공하는 클래스 ex) String name;

직접 구현한 클래스로 선언된 변수 ex) Student studentKim;

 

2. 객체 

사전적 의미 : 의사나 행위가 미치는 대상 구체적, 추상적 데이터 단위

이 객체를 클래스라는 것으로 코딩을 한다.

 

객체를 기반으로 한 프로그래밍을 객체지향 프로그래밍이라고 하며, 

객체지향 프로그래밍이 아닌 프로그래밍들의 대표적인 예로는 "절차 지향 프로그래밍" 이 있다.

 

절차지향 프로그래밍의 대표적 언어 : 'C언어'

절차지향 프로그램 -> 시간의 흐름에 따른다, 대표적인 방법론 으로는 '폭포수 모델링' 기법이 있다.

 

객체지향 프로그래밍 -> 클래스 간의 협력관계를 코딩하는 것이다.

현실세계를 가장 많이 반영한 프로그래밍이라고 할 수 있다.

객체를 뽑아내는 것이 중요하고 그 객체 안에 요소들이 있는데 이것을 속성이라 하며

이런 것들을 멤버 변수로 선언하고, 각각의 객체가 하는 기능들을을 코딩하는 것이다.

[객체의 속성 정의 -> 객체의 기능 구현 -> 객체 간의 협력 구현] 

 

3. 클래스(Class) :객체지향 프로그래밍의 가장 기본이 되는 단위

- 오브젝트를 코드화 한 것

- 하나의 객체를 표현하는 코드 상태

- 멤버 변수와 메서드로 구성됨

- 대문자로 시작한다. (패키지 명은 소문자로 시작한다) -> '카멜 케이스'라고 한다. 

- 1개의 java파일에 1개의 클래스가 원칙

- 여러 개의 클래스가 있는 경우, public 클래스는 단 하나이며 파일명이 동일해야 함

- 자바의 모든 코드는 클래스 내부에 위치함

 

*public class의 이름과 java 파일의 이름은 동일해야 한다.

 

여러 요소들(속성)은 클래스의 변수로 선언한다.

클래스로 선언한 변수를 멤버 변수라고 한다.

 

멤버 변수

- 모든 객체의 속성은 멤버 변수에 의해 변경

- 다른 멤버 변수의 다른 말 :  member variable, attribute, data field, property

 

멤버 변수 선언

<접근 제어자> <자료형> <변수명>;

 

4. 메서드 [method]

- 멤버 변수를 사용하여 클래스의 기능 구현

- 외부로부터 멤버 변수를 보호하는 역할

<modifier><return_type><name>(<argument_list>)

{

[<statements>]

}

- 메서드 이름은 클래스를 사용하는 입장에서 명명

 

- 웹은 request가 처리되는 클래스들이 구동되는 방식이고, 메인클래스로부터 구동되지 않음

클래스는 반드시 new라는 키워드를 통해 생성이 되어야 한다. (생성자)

 

5. 패키지 [package] : 소스의 묶음 카테고리

소스를 계층 구조로 관리하도록 구성하며, 소문자로 명명한다.

 

 

6. 객체의 멤버에 접근하기

-<참조 변수><멤버>

참조 변수를 통하여 객체의 멤버 변수와 메서드에 접근할 수 있음

단 멤버의 접근 제한자가 private인 경우는 접근할 수 없음

 

 

7. 클래스와 인스턴스

클래스 (static코드) -> 생성 -> 인스턴스 (dynamic memory)

 

'프로그래밍언어 > JAVA' 카테고리의 다른 글

임의의 랜덤값 생성하기  (0) 2021.07.19
Java Stream  (0) 2021.03.15
Optional object생성 (isPresent())  (0) 2020.12.29
JAVA8 객체지향 - 생성자/정보은닉  (0) 2020.12.15
자바 시작하기  (0) 2020.10.03