today_is

[ java ] 객체지향 언어, java 본문

java

[ java ] 객체지향 언어, java

ye_rang 2023. 11. 3. 18:56

오늘의 목표

 

  • 객체지향의 개념
  • 객체와 인스턴스의 개념 차이

 

공부하는 이유

 

단순히 자바 코드만 작성할 줄 아는 것이 아니라, 

코드의 작동원리를 알려면 클래스에 대한 지식을 확실하게 정리해야겠다는 생각이 들었다. 

 


 

 

 객체지향 언어 주요 특징 

1. 코드의 재사용성이 높다

변수 및 필드의 재사용 : 일반적인 지역변수는 함수가 종료되면 소멸하지만, 필드는 값이 계속 유지된다 

 

 

 tip !! )  지역변수는 {중괄호} 내부에서 선언된 변수 !!

멤버필드는 클래스 상단부에 선언한 필드  ->  멤버필드를 기반으로 생성자 생성 

 

  • 함수, 메서드의 재사용 : 클래스에 출력 메서드를 한번만 작성해두면, 여러 객체가 동일한 메서드를 호출하여 사용
  • 클래스의 재사용         : 상속 (extends , implements)을 통해 만들어진 클래스를 기반으로 새로운 내용을 만들 수 있다 

 



2. 코드 관리가 용이하다

  • - 작성시 객체 지향 원칙을 지켰다면, 코드의 유지 보수가 수월해진다
  • - 객체 지향 5대원칙(단일책임원칙 : 하나의 함수/클래스는 하나의 기능만 담당하도록 설계
  • tip !! )  용도와 목적에 따라서 클래스가 분리되어있는 코드가 유지보수도 편리

 


3. 신뢰성이 높은 프로그래밍을 가능하게 한다

  • 이미 완성된 클래스를 기반으로 하여 새로운 코드를 작성하기가 용이하다 (상속)
  • 기존 클래스를 상속받지 않더라도, 내부에서 활용하는 형태로 코드를 작성할 수 있다

 


 


  클래스도 일종의 자료형 !!  
클래스  : 서로 다른 자료형의 변수와 함수를 사용하여 만드는 사용자 정의 자료형 
객체   : 클래스에 의해 만들어진 실제 데이터 

 

    
속성 , 변수 , 필드 , 명사 attribute , property
기능 , 함수 , 메서드 , 동사 method   , function

 



객체 object vs instance
특정 자료형을 명시하지 않은 코드 및 현실에 존재하는 모든 객체 ==  object
특정 클래스에 의해 만들어진 객체는 , 클래스를 실체화 했다고 하여 instance


ex01 ) 책상은 인스턴스다(△)                               : 틀리진 않았지만 적절한 표현은 아니다 !!

           책상은 객체다(O)


ex02 ) 책상은 책상 클래스의 객체이다(△)            : 틀리진 않았지만 적절한 표현은 아니다 !!

           책상은 책상클래스의 인스턴스다(O)

 

 


 

 

 네이밍 규칙 

 

1.  패키지, 클래스, 변수, 메서드 등의 이름을 지정할 때는 

    어떠한 역할을 하는 것인지 드러나게 작성하는 것이 좋다.

ex ) String name;

이름에 관한 정보를 담은 변수   ==    변수명 : name

이름은 문자열 형식의 정보       ==    자료형 : String

 

 

 

2.  클래스명의 첫 시작은 대문자.

그 외의 것들은 모두 소문자로 시작하자.

 

package  array;

  class Human {
	String name;
	int age;
}

>>   클래스명인 Human만 대문자로 시작

 

 

3.  두 단어 이상의 합성어라면, 두번째 단어부터 첫 시작을 대문자로 작성하자.

 

ex )   humanAge

:  어떤 사람의 나이 정보를 담는 변수 

 

 


 

study_Review  

 

항상 메인함수에 코드를 몰아 적는 안좋은 습관이 있었는데

단일 책임 원칙을 배우면서 클래스를 분리하여 코드 작성하는 능력을 길러야겠다는 생각이 들었다.

 

또한 프로젝트를 하게 될 시에 다른 사람들이 나의 코드를 보고 단번에 이해할 수 있으려면

네이밍 규칙을 지켜주는 것이 좋겠다는 생각이 들어서 이 부분도 꼭 보완할 것이다 !!!

 

 

 

코딩을 하면서 왠지 영어 공부를 하게 되는 기분이기도 ...

'java' 카테고리의 다른 글

[ loop ] for, while 반복문  (0) 2023.11.20
[ control ] if ~ else , switch case  (0) 2023.11.17
[ array ] 중복 제거한 난수 생성하기 (로또번호 추첨)  (0) 2023.11.16
[ collection ]  (0) 2023.11.16
[ java ] 페이징(paging) 알고리즘  (0) 2023.11.07