Java/개념정리

Java 용어 정리

Sehyeok20 2020. 12. 15. 01:27
반응형

본 글에서는 java와 관련된 용어들을 간단하게 정리해 두려고 한다.

 

세부적인 내용와 연관된 소스코드 등이 필요하다면 차후에 관련내용 포스팅 후 주석을 달아 두도록 하겠다.

 

Java

 - 객체지향언어의 특징이 잘 적용된 언어

 - Garbage Collector로 자동적인 메모리 관리가 가능

 - JDK(Java Developement Kit) : 자바 프로그램 개발에 필요한 구성 요소

 - JRE(Java Runtime Environment) : 자바 프로그램 실행에 필요한 구성 요소

 - JVM(Java Virtual Machine) : 자바 가상 머신. 자바는 가상머신을 이용하여 작동하므로 플랫폼에 독립적인 장점이 있음. 어떤 운영체제라도 잘 작동한다.

 

객체와 클래스

객체(Object)

 - 자신의 속성을 가지고 있고, 다른것들과 식별 가능한 것.

 - 어떠한 사물이 가진 속성과 동작으로 설명할 수 있는 대상.


클래스(Class)

 - 이러한 객체들을 유사한 특징을 지닌 것끼리 모아놓은 것을 클래스라고 한다.

 - 객체를 정의하는 틀이며 속성(field)와 행위(Method)로 구성.

 

객체지향 프로그래밍 (Object-Oriented Programming, OOP) 특징

객체지향 프로그래밍이란? 

 - 데이터를 객체로 취급하는 것으로 절차지향 방식과는 다르게 객체의 상호작용을 통해 프로그램이 동작하는 것.

 - 프로그래밍을 현실 세계의 시각으로 접근하는 방식.

대표적 특성 3가지

 - 캡슐화 : 생성한 객체를 어떤 메소드와 필드로 어떻게 수행하는지를 외부에 숨기는 특성

 - 다형성 : 클래스의 상속 관계를 이용하여 슈퍼 클래스가 같은 서브 클래스들이 동일한 요청을 다르게 처리할 수 있는 특징.

 - 상속 : 슈퍼 클래스의 속성들을 서브 클래스에게 물려주는 것. (구체화하는것)

 

인스턴스

 - 클래스에서 생성한 객체.

 - 객체와 비슷한 의미로 사용한다. (인스턴스 : 클래스로 생성한 객체 / 객체 : 식별 가능한 무엇)

 - 모든 인스턴스는 객체가 될 수 있지만 모든 객체를 인스턴스라고 할 수는 없다.

 

변수

 - 다양한 정보를 저장할 수 있는 메모리를 참조하는 이름.

규칙

 - 길이 제한 없음

 - 문자 또는 언더바(_) 또는 달러 기호($)로 시작해야 한다.

 - 자바의 연산자(+,-,*,/)는 변수이름에 넣을 수 없음.

 - 대소문자 구분

 - 첫글자에 숫자가 와서는 안되고, 빈칸이 들어가서도 안된다.

 - 자바의 키워드는 변수이름으로 사용 불가 (ex class, public 등등)

 

접근 한정자

public : 모든 클래스에서 접근이 가능

protected : 동일 패키지에 속한 클래스 및 서브 클래스에서 접근이 가능.

default : 동일 패키지에 속한 클래스에서만 접근 허용. 기본값. 한정자를 쓰지 않는 경우

private : 현재 클래스에서만 접근이 가능.

 

static

 - 클래스 메소드와 클래스 변수를 선언하는 데에 사용.

 - 정적 영역에 할당하는 리소스를 선언하는데에 사용.

 - 인스턴스를 생성하지 않고도 클래스의 메소드나 멤버에 접근할 수 있다.

 

final

 - 더이상 변경할 수 없도록 선언하는 한정자. (상수처럼 취급)

 - 클래스에 사용하면 서브클래스 사용불가, 메소드에 사용하면 오버라이딩 불가, 변수에 사용하면 변수값 변경불가.

 

abstract

 - 추상 클래스를 선언하는데 사용하는 한정자.

 

메소드 오버로딩

 - 메소드 이름은 동일하지만 다른 기능을 하는 메소드를 만드는 것.

조건

 - 메소드 이름이 같아야 한다.

 - 파라미터의 갯수 또는 자료형이 달라야 한다.

 - 파라미터는 같고 리턴 변수의 자료형이 다르면 오버로딩이 성립되지 않는다.

 

메소드 오버라이딩

 - 슈퍼클래스에서 정의한 메소드를 서브클래스에서 재정의하는것.

 - 슈퍼클래스에서 정의한 어떤 메소드의 내용이 서브클래스에 적합하지 않거나 새롭게 변경할 내용이 있을 때 사용.

 - 슈퍼클래스의 메소드는 은닉되고 서브클래스의 메소드가 활성화됨.

 - super.메소드(); 로 은닉된 슈퍼클래스의 메소드를 호출할 수 있음.

조건

 - 오버라이딩하는 메소드는 슈퍼클래스의 메소드와 메소드 구성 요소(이름, 파라미터, 리턴타입)가 모두 동일해야한다. 

반응형