Java

[JAVA] 객체와 객체지향 프로그래밍

hazel__ 2022. 2. 8. 17:42

자바는 대표적인 객체지향 언어이다.

객체와 객체 지향 프로그램에 대해 공부해보자!!

 

객체(Object)


물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다.

객체는 속성동작으로 구성되어 있고, 속성을 필드(field), 동작을 메소드(method)라고 한다.

사람을 예로 들자면, 사람이 객체가 되고, 사람의 이름, 나이와 같은 값 필드, 사람이 움직이거나 달리는 등의 동작이 메소드가 된다.

 

클래스(Class)


클래스는 객체를 정의하는 설계도이다.

설계도 내에 값을 저장하여 객체를 만들 수 있다.

  • 인스턴스(Instance) : 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 한다.

클래스는 필드, 메소드, 생성자로 구성되어 있다.

필드(field)

클래스에 포함된 변수(멤버 변수)

메소드(method)

특정 작업을 수행하기 위한 문장들의 집합(멤버 함수)

함수와 같은 의미를 가진다!

생성자(constructor)

인스턴스 초기화 메소드

class ClassName {
	String name; //field
	int size;    //field

	//constructor
	ClassName(){
		name = "hazel";
		size = 1;
	}
	//method
	void action(){
		size++;
	}
}
  • 클래스는 대문자로 시작하는 것이 좋다.
  • 하나의 파일에 클래스는 여러 개가 있을 수 있지만, public 클래스는 하나이고, public 클래스와 파일의 이름은 동일해야 한다.
  • 카멜 케이스(camelCase)로 명명한다.

 

접근 제어 지시자(access modifier)

클래스 외부에서 클래스의 멤버 변수, 메소드, 생성자를 사용 여부를 지정하는 키워드를 말한다.

  • public : 클래스의 외부에서 접근 가능하다.
  • 기본 (default) : 같은 패키지 내부에서만 접근 가능하다.
  • private : 같은 클래스 내부에서만 접근 가능하다.
  • protected : 같은 패키지나 상속 관계의 클래스에서만 접근 가능하다.

 

get()/set() 메소드

private으로 선언된 멤버 변수에 대해서 접근하거나 수정할 수 있도록 public으로 제공한다.

get() 메소드만 제공되는 경우, 읽기만 가능하다.

외부에서 접근 가능한 최소한의 정보를 공개하여 객체의 오류를 방지할 수 있다.

 

 

객체 지향 프로그래밍


OOP, Object-Oriented Programming

객체 지향 프로그래밍은 순서에 상관없이 객체들을 상호작용하게 설계한다.

독립적인 객체를 생성하여 사용할 수 있고, 오류가 발생하더라도 다른 객체에 영향을 주지 않는다.

처리 속도가 상대적으로 느리지만, 코드의 재활용이 가능하고, 유지보수에 유리하다.

캡슐화, 다형성, 상속의 특징을 가지고 있다.

객체지향 프로그래밍은 클래스, 객체, 메소드, 속성으로 구성되어 있다.

객체지향 언어에는 C++, Java 등이 있다.

  • 캡슐화(encapsulation) : 필요한 정보와 기능만 외부에 공개하여 일관된 기능을 구현하게 한다.

 

 

절차 지향 프로그래밍


POP, Procedural-Oriented Programming

순차적으로 함수를 호출하여 순서대로 실행하는 구조를 말한다.

컴퓨터의 처리 구조와 비슷하여 코드의 실행 처리 속도가 빠르다는 장점이 있지만,

순서가 바뀌면 코드 전체를 수정해야 하는 단점이 있다.

대표적인 절차지향 언어로 C언어가 있다.

 

'Java' 카테고리의 다른 글

[JAVA] 자바의 배열  (0) 2022.02.17
[JAVA] 정적 변수와 정적 메서드  (0) 2022.02.17
[JAVA] 반복문 ~ while ~ for  (0) 2022.02.07
[JAVA] 조건문 ~ if  (0) 2022.02.07
[JAVA] 자바의 연산자  (0) 2022.02.07