2023. 12. 13. 18:40ㆍJava
공부를 하다가 문득 코드만 주구장창 써볼게 아니라,
내가 배우고 사용하는 언어의 원리를 파악하려면 클래스에 대한 지식을 확실하게 정리하고 넘어가야 할 것 같다는 생각이 들었다.
객체지향이란?
객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나로,
복잡한 문제를 해결하기 위해 개발된 방법론이다. 객체 지향의 기본적인 사상은 실제 세계를 모델링하여
소프트웨어를 더 이해하기 쉽고, 수정하기 쉽게 만드는 것이다.
이렇게만 들으면 무슨 말인지 잘 와닿지가 않을 것이다. 그래서 바로 객체지향의 주요 특징을 알아보겠다.
객체지향언어 주요 특징
1. 코드의 재사용성이 높다.
변수 및 필드의 재사용 : 일반적인 지역변수는 함수가 종료되면 소멸하지만, 필드는 값이 계속 유지된다.
여기서 지역변수란 > {중괄호} 내부에서 선언된 변수를 말함.
멤버필드는 클래스 상단부에 선언한 필드 > 멤버필드를 기반으로 생성자 생성
- 함수, 메서드의 재사용 : 클래스에 출력 메서드를 한 번만 작성해두면, 여러 객체가 동일한 메서드를 호출하여 사용
- 클래스의 재사용 : 상속(extends, implements)을 통해 만들어진 클래스를 기반으로 새로운 내용을 만들 수 있다
2. 코드 관리가 용이하다
- 코드 작성시 객체지향의 원칙을 지켰다면, 코드의 유지 보수가 수월해진다
- 객체 지향 5대원치(단일책임원칙 : 하나의 함수/클래스는 하나의 기능만 담당하도록 설계
- tip) 용도와 목적에 따라서 클래스가 분리되어 있는 코드가 유지 보수도 편리
3. 신뢰성이 높은 프로그래밍을 가능하게 한다
- 이미 완성된 클래스를 기반으로 하여 새로운 코드를 작서하기가 용이하다 (상속)
- 기존 클래스를 상속받지 않더라고, 내부에서 활용하는 형태로 코드를 작성할 수 있다
클래스도 일종의 자료형이다
클래스 : 서로 다른 자료형의 변수와 함수를 사용하여 만드는 사용자 정의 자료형
객체 : 클래스에 의해 만들어진 실제 데이터
속성, 변수, 필드, 명사 attribute, property
기능, 함수, 메서드, 동사 method, function
객체 object vs instance
특정 자료형을 명시하지 않은 코드 및 현실에 존재하는 모든 객체 == object
특정 클래스에 의해 만들어진 객체는, 클래스를 실체화 했다고 하여 instance
네이밍 규칙( Naming Convention )
1. 패키지, 클래스, 변수, 메서드 등의 이름을 지정할 때는
어떠한 역할을 하는 것인지 드러나게 작성하는 것이 좋다.
ex ) String name;
이름에 관한 정보를 담은 변수 == 변수명 : name
이름은 문자열 형식의 정보 == 자료형 : String
2. 클래스명의 첫 시작은 대문자.
이후의 글자는 모두 소문자로 시작한다. 만약, 합성어일 경우 각 단어의 첫 글자를 모두 대문자로 작성.
packge array;
class Human {
String name;
int age;
}
// 클래스명인 Human만 대문자로 시작
// but 두 단어 이상이 합쳐진 합성어일 경우, 각 단어의 첫 글자는 모두 대문자로 작성
// ex) HumanAge
3. 변수, 메소드
변수 및 메소드의 첫 글자는 소문자료 표기하고, 여러 단어일 경우 "쌍봉낙타표기법"을 따른다.
ex) myMoneyOnAccount
ex) getAverageScore
나중에 팀 프로젝트를 진행하게 됐을때, 팀원들이 나의 코드를 보고 이해하려면
네이밍 컨벤션을 꼭 지켜줘야 좋을 것 같다는 생각이 들었다..
+ 코딩을 하면 덩달아 영어 공부도 같이 하게 되는 기분이 든다...
'Java' 카테고리의 다른 글
[Java] 자바의 조건문 if ~ else, switch case (0) | 2024.10.04 |
---|---|
[Java] Array - 중복 제거된 난수 생성하기 feat.로또번호 (0) | 2024.10.04 |
[Java] collection(List, Set, Map) (1) | 2024.10.04 |
[Java] 페이징(paging) 처리 알고리즘 (1) | 2024.10.04 |
[Java] 변수의 종류 (0) | 2024.10.03 |