개발을 시작하기에 앞서 가장 먼저 각 용어들과 그 용어들이 하는 역할 및 명명규칙 등을 정리하여 넘어가면 좋을 것 같아 작성해 보았습니다.
가장 먼저 JAVA는 Object Oriented Programming (객체지향 프로그래밍)입니다.
클래스가 가장 기본적인 구조라고 할 수 있습니다.
1. 변수(Variable): 메모리의 위치를 가리킴.
변수의 역활 : 메모리의 위치 ‘int age’라고 한다면 (int : 4 바이트 나타냄/ 4바이트짜리 메모리를 정하고, age라고 이름을 정한다.)
-자바의 명명규칙-
1. 대소문자 구분 |
기본 자료형 - 자바에서 기본적으로 제공되는 데이터 타입
각 타입마다 표준 메모리 사이즈가 있다.
문자도 숫자처럼 양수 값만 값으로 제공한다.
대문자 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 |