자바에서 데이터 추상화 배우기

게시 됨: 2021-11-11

데이터 추상화의 개념은 실제 사례를 통해 설명할 수 있습니다. 차량을 타는 운전자가 브레이크를 밟으면 차량이 더 이상 움직이지 않는다는 것을 알고 있는 예를 생각해 보겠습니다. 따라서 운전자가 알고 있는 유일한 정보는 차량이 움직이지 않도록 멈춰서 브레이크를 밟아야 한다는 것뿐입니다. 그러나 그는 브레이크를 밟았을 때 차량이 어떻게 멈추는지에 대한 근본적인 메커니즘을 알지 못합니다. 따라서 이 개념은 사용자가 알아야 하는 정보만 표시되는 데이터 추상화 개념과 비교할 수 있습니다. 기본 정보는 숨겨져 있습니다. 그래서 이것이 추상화의 개념이며, 데이터에 적용할 때 이를 데이터 추상화라고 합니다.

객체 지향 프로그래밍은 데이터 추상화 개념을 활용하는 방법을 제공합니다. Java는 데이터 추상화의 기능을 따르는 객체 지향 프로그래밍 중 하나입니다. 이러한 프로그래밍 언어에서 추상 클래스와 인터페이스는 데이터 추상화를 달성하는 데 사용됩니다.

Java에서 데이터 추상화 프로세스는 클래스의 추상 클래스를 통해 수행됩니다. 인터페이스는 추상 클래스와 별도로 데이터 추상화에도 사용됩니다. "abstract" 키워드는 메소드 및 클래스에 대한 비접근 수정자로 사용됩니다. access 키워드로 정의하면 클래스는 객체 생성이 허용되지 않는 추상 클래스입니다. 추상 클래스의 접근은 다른 클래스에서 상속받은 경우에만 가능합니다. 추상 메서드는 추상 클래스에서만 사용할 수 있는 메서드입니다. 이러한 메서드에는 메서드 본문이 없습니다.

하위 클래스는 일반적으로 본문을 제공합니다. 추상 클래스에는 일반 및 추상 메서드가 모두 포함될 수 있습니다.

목차

추상 클래스와 추상 메소드의 차이점

추상 클래스와 추상 메서드의 차이점은 다음과 같습니다.

1. 추상 클래스는 키워드 abstract로 선언된 클래스입니다.

2. 추상 메소드는 구현 없이 선언되는 메소드 유형입니다.

3. 추상 클래스는 그 자체에 모든 추상 메소드 메소드를 가질 필요가 없습니다. 추상적이지 않은 메소드도 포함될 수 있습니다.

4. 메소드가 추상 메소드로 정의될 때마다 서브 클래스에서도 다시 정의되어야 합니다. 이것은 재정의를 의무화하고 하위 클래스도 추상화합니다.

5. 클래스에 추상 메소드가 포함되어 있는 경우 하나 이상의 추상 메소드를 포함하여 추상 키워드를 사용하여 추상으로 선언해야 합니다.

6. 추상 클래스는 어떤 객체도 포함할 수 없습니다. new 연산자를 사용하여 추상 클래스를 인스턴스화할 수 없습니다.

7. 추상 클래스에는 항상 기본 생성자가 있습니다. 또한 매개변수화된 생성자는 추상 클래스에 존재할 수 있습니다.

자바 추상 ​​클래스

프로그래밍 언어 Java는 추상 클래스를 통해 추상화를 구현합니다. 추상 클래스는 이러한 클래스를 인스턴스화할 수 없다는 특수 명령과 함께 "abstract" 키워드로 선언된 클래스로 정의할 수 있습니다. 이러한 클래스는 추상 메서드를 포함하거나 포함하지 않을 수 있습니다.

Java의 추상 클래스 구문은 다음과 같습니다.

위의 코드는 https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ 에서 가져왔습니다 .

위의 구문에서 추상 및 비추상 메서드가 모두 추상 클래스 내에 포함될 수 있음을 관찰할 수 있습니다. 또한 "abstract"라는 키워드는 클래스 선언 앞에 위치합니다.

자바 추상 ​​클래스에 대한 자세한 내용은 여기를 참조하세요.

자바 추상 ​​메소드

자바 추상 ​​메소드는 "abstract" 키워드가 앞에 오는 메소드이지만 메소드의 구현은 없습니다. Java 추상 메소드는 Java 추상 클래스 내에서 선언됩니다.

추상 메소드로 인해 메소드를 구현할 수 없기 때문에 Java 추상 클래스가 불완전해집니다. 따라서 추상 클래스에 추상 형식을 포함하면 자연스럽게 추상 클래스가 불완전해집니다.

서브클래스에서의 구현은 추상 메소드를 사용할 수 있습니다. 이 하위 클래스는 추상 클래스를 상속하고 추상 메서드의 구현을 수행합니다. 추상 메서드의 일반적인 구문은 다음과 같습니다.

추상 무효 메서드 이름(parameter_list);

추상화 방법을 작성할 때 몇 가지 규칙에 주의해야 합니다.

  • 클래스에 둘 이상의 추상 메서드가 포함된 경우 해당 클래스는 추상 클래스가 됩니다.
  • 추상 클래스와 메소드를 정의할 때 "abstract" 이외의 키워드가 있어서는 안 된다.

위의 점을 감안할 때 Java에서는 다음과 같은 가능성이 허용되지 않습니다.

  • 결정적인
  • 추상 네이티브
  • 추상 정적
  • 추상 개인
  • 추상 동기화
  • 추상 엄격한

Java에서 데이터 추상화의 예는 다음과 같습니다.

https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

위의 코드는 https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ 에서 가져왔습니다 .

위의 코드에는 Bank 클래스가 있습니다. Bank 클래스에는 getInterestRate()라는 추상 메소드가 있습니다. Bank 클래스를 상속하는 두 개의 다른 클래스 BOI 및 ICICI가 선언됩니다. 이러한 선언된 클래스는 Bank 클래스를 상속하므로 이자율을 반환하는 getInterestRate() 메서드를 구현합니다.

Bank의 객체는 기본 메소드에서 생성됩니다. Bank의 객체는 이자율을 표시하는 ICICI 클래스 객체로 구성됩니다. 다음 단계에서는 이자율을 표시하는 클래스 BOI의 객체도 생성됩니다.

인터페이스를 통한 데이터 추상화

인터페이스는 Java 클래스와 유사하지만 인터페이스에 빈 메소드가 있다는 유일한 차이점이 있습니다. 추상 메서드와 정적 상수로 구성된 클래스로 정의할 수도 있습니다. 인터페이스에 있는 모든 메서드는 공용이며 생성자를 포함하지 않습니다. 인터페이스는 데이터 추상화를 달성하는 데 사용되며 Java에서 다중 상속을 수행하는 데에도 사용됩니다.

Java 인터페이스의 몇 가지 기능은 다음과 같습니다.

  • 인터페이스는 전체 추상화를 달성하는 데 사용할 수 있습니다.
  • 단일 클래스는 다중 인터페이스를 달성하는 다중 인터페이스를 사용할 수 있습니다.
  • 인터페이스를 통해 느슨한 결합을 달성할 수 있습니다.

인터페이스 구문은 다음과 같습니다.

위의 구문은 https://www.javatpoint.com/how-to-achieve-abstraction-in-java 에서 사용됩니다 .

"implements"라는 키워드를 통해 인터페이스를 사용할 수 있습니다.

추상 클래스와 인터페이스의 몇 가지 차이점은 다음과 같습니다.

  • 추상 및 비추상 메서드 모두 추상 클래스 내에 포함될 수 있습니다. 반면 인터페이스에는 추상 메서드만 존재할 수 있습니다.
  • 최종 변수는 추상 클래스에 있을 수도 있고 없을 수도 있습니다. 인터페이스에서 변수는 기본 변수로 최종적일 수 있습니다.
  • 클래스 추상은 최종적이지 않거나, 최종적이지 않거나, 정적이지 않거나, 정적인 변수를 가질 수 있습니다. 반면 인터페이스에서는 정적 및 최종 변수만 존재할 수 있습니다.
  • 추상 클래스를 사용하면 인터페이스를 구현할 수 있습니다. 추상 클래스는 인터페이스에서 구현할 수 없습니다.
  • 추상 클래스의 상속은 "extents" 키워드를 통해 수행됩니다. 인터페이스의 구현은 "implements"라는 키워드를 통해 이루어집니다.
  • 추상 클래스는 여러 인터페이스를 구현하거나 추상 클래스에 의해 다른 클래스를 확장할 수 있습니다. 반면 인터페이스는 다른 인터페이스의 구현만 허용할 수 있습니다.
  • public 멤버와 별개로 protected 및 private 데이터 멤버는 모두 추상 클래스에 포함됩니다. 반면 인터페이스의 구성원은 기본적으로 공용입니다.

세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

이 기사에서는 데이터 추상화의 개념을 설명하고 Java에서 데이터 추상화를 달성하는 방법을 나열했습니다. Java 프로그래밍 언어에 대한 더 많은 경험을 얻으려면 upGrad에서 제공하는 소프트웨어 개발 과정 을 확인할 수 있습니다. 이 과정은 실무 전문가를 위해 설계되었으며 필요한 프로그래밍 기술을 개발할 산업 지향 프로젝트로 당신을 훈련할 것입니다. 자세한 정보는 당사 웹사이트를 통해 검색할 수 있습니다. 정보 및 도움이 필요한 경우 지원 팀에 연락할 수 있습니다.

데이터 추상화란 무엇입니까?

데이터 추상화는 소프트웨어 설계 개념입니다. 이것이 해결하는 문제는 작동하는 데이터 유형과 독립적인 데이터 구조와 함수를 생성하는 것입니다. 데이터 유형에서 코드를 분리하고 여러 상황에서 동일한 코드를 사용할 수 있습니다. 데이터 추상화는 데이터 구조로 표현되는 데이터와 이에 적용할 수 있는 작업이 명확하게 정의될 때 달성됩니다. 추상화는 소프트웨어 개발에서 매우 중요합니다. 이것은 더 단순하고 더 작고 더 안정적인 소프트웨어로 이끄는 근본적인 힘 중 하나입니다. 데이터 추상화는 고급 언어의 중요한 구성 요소입니다.

Java에서 추상화의 장점은 무엇입니까?

Java에서 추상화를 달성하는 방법은 무엇입니까?

Java의 추상화는 인터페이스를 사용하여 수행됩니다. 인터페이스를 구현하려면 구현도 제공해야 합니다. 실제로 인터페이스를 구현하기 위해 클래스를 상속할 필요는 없습니다. 인터페이스는 Java의 다른 클래스와 같습니다. 그들이 다른 점은 한 가지 방법만 있다는 사실입니다.