programming/JAVA
-
JAVA | 추상 클래스programming/JAVA 2020. 5. 26. 22:39
추상 클래스 란? 추상이란 실체 간에 공통되는 특성을 추출한 것이다. ex) 원숭이/곤충/물고기 라는 실체에서 공통되는 특성을 추출해보면 동물이라는 공통점이 있다. 여기서 동물은 구체적인 실체라기보다는 실체들의(원숭이,곤충,물고기..) 공통되는 특성을 가지고 있는 추상적인 것 이라고 볼 수 있다. "실체 클래스" 는 객체를 직접 생성할 수 있는 클래스를 의미한다. 실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 "추상 클래스"라고 한다. 실체 클래스 와 추상 클래스는 상속의 관계를 가지고 있다. 추상 클래스가 부모 이고 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성(필드,메소드) 을 물려받고, 추가적인 특성을 가질 수 있다. *추상 클래스는 실체 클래스의 공통되는 특성을..
-
JAVA | 인터페이스(Interface)programming/JAVA 2020. 5. 26. 00:54
인터페이스(interface) 란? 인터페이스는 모든 기능을 추상화로 정의한 상태이다. 즉 몸체가 없는 메서드들의 모임이다. 클래스를 구현하기 전에 메서드를 먼저 정해놓는 것이라고 생각! 인터페이스의 역할 개발코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 된다. 여기서 드는 의문점!? 바로 객체의 메소드를 호출하지 않고 귀찮게 중간에 인터페이스를 두는지? 개발 코드를 수정하지 않고, 사용하는 객체를 변경할 수 있도록 하기 위해서이다. 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 ..
-
JAVA | 상속(Inheritance)programming/JAVA 2020. 5. 21. 23:58
상속(Inheritance) 개념 자식(클래스)이 상속받고 싶은 부모(클래스)를 선택해서 물려받는다. 즉, 자식 클래스가 어떤 부모 클래스를 상속받을 것인지 결정 이때 상속 받는 클래스를 자식(하위 / 서브)클래스 라고 하고 상속을 해주는 클래스를 부모(상위 / 슈퍼) 클래스라고 한다. 자식 클래스가 부모 클래스로부터 상속을 받게 되면 부모 클래스의 필드와 메서드를 물려받게 된다. * 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외 * 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외 장점 중복된 코드를 줄일 수 있다. 부모 클래스의 수정으로 모든 자식 클래스들의 수정 효과를 가져오기 때문에 유지 ..
-
JAVA | 접근 제한자 (public, protected, default, private)programming/JAVA 2020. 5. 21. 00:04
접근 제한자 란? main() 메소드를 가지지 않는 대부분의 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다. 라이브러리 클래스를 설계할 때에는 외부 클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분해서 필드, 생성자, 메소드를 설계하는 것이 바람직하다. 객체 생성을 막기위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막거나 특정 메소드를 호출할 수 없도록 제한할 필요가 있다. 이러한 기능을 구현하기 위해 사용 되는 것이 접근 제한자 이다. 접근 제한자의 종류 1. public 접근 제한자 외부 클래스가 자유롭게 사용할 수 있는 공개 멤버를 만든다. - 외부 클래스에서 자유롭게 접근, 사용 할 수 있다. 2. pro..
-
JAVA | 싱글톤 패턴 (Singleton Pattern)programming/JAVA 2020. 5. 20. 22:59
싱글톤(Singleton) 패턴 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴이다. 생성자가 여러 차례 호출 되더라도 실제로 생성되는 객체는 하나고 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환한다 (생성자를 private로 선언해서 외부에서 생성 불가하게 하고 getInstance()로 받아서 사용한다. 싱글톤은 단 하나의 인스턴스(객체)를 생성해 사용하는 디자인 패턴이다.) * 인스턴스가 필요 할 때 똑같은 인스턴스를 만들어 내는 것이 아니라! 동일(기존)의 인스턴스를 사용하게 하는 거라고 이해하자! 단 하나만 생성된다고 해서 이 객체를 싱글톤(Singleton)이라고 한다. A class의 값을 ..
-
JAVA | 클래스 구성(필드, 생성자, 메소드)programming/JAVA 2020. 5. 16. 00:06
객체와 클래스 자바에서는 클래스를 설계도라고 생각한다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다. 클래스에서 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 하고, 객체를 만드는 과정을 인스턴스화 라고 한다. 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있다 (ex.동일한 설계도로부터 여러 대의 자동차를 만드는 것) 객체 지향 프로그래밍 개발의 세 가지 단계 클래스 설계 설계된 클래스를 가지고 사용할 객체 생성 생성된 객체를 이용 객체 생성과 클래스 변수 클래스로부터 객체를 생성하는 방법은 new 연산자 사용 * new는 클래스로부터 객체를 생성시키는 연산자이다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있다. * new연산자는 힙 ..
-
JAVA | 객체 지향 프로그래밍(OOP : Object Oriented Programming)programming/JAVA 2020. 5. 15. 00:27
객체 지향 프로그래밍(OOP : Object Oriented Programming)이란? 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍(OOP : Object Oriented Programming) 이라고 한다. 객체 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것 속성과 동작으로 구성되어 있으며 자바는 각각 필드와 메소드라고 부른다. 객체들 사이의 상호작용 수단은 메소드이며 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다. 객체 간의 관계 집합 관계 - 하나의 객체는 부품이과 하나는 완성품에 해당하는 관계 사용 관계 - 객체 간의 상호작용을 말한다. 객체는 다..
-
JAVA | JAVA란?programming/JAVA 2020. 5. 13. 22:57
자바의 특징 1. 이식성이 높은 언어 - 이식성이란? 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. * ex) 윈도우에서 실행하는 프로그램을 리눅스 또는 유닉스에서 실행 가능 자바 실행 환경(JRE: Java Runtime Environment)이 설치되어 있다면 모든 운영체제에서 실행 가능 2. 객체 지향 언어 - 객체 지향 언어란? 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체 지향 프로그래밍(OOP : Object Oriented Programming)이라고 한다. 이때 사용 되는 언어를 객체 지향 언어라고 하는데 JAVA는 객체 지향 언어 이다. - JAVA는 객체..