[Java] Java, 객체지향 언어

2023. 12. 13. 18:40Java

 

공부를 하다가 문득 코드만 주구장창 써볼게 아니라,

내가 배우고 사용하는 언어의 원리를 파악하려면 클래스에 대한 지식을 확실하게 정리하고 넘어가야 할 것 같다는 생각이 들었다.

 


객체지향이란?

객체 지향 프로그래밍(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

 


 

나중에 팀 프로젝트를 진행하게 됐을때, 팀원들이 나의 코드를 보고 이해하려면

네이밍 컨벤션을 꼭 지켜줘야 좋을 것 같다는 생각이 들었다..

+ 코딩을 하면 덩달아 영어 공부도 같이 하게 되는 기분이 든다...