이전 블로그에서 자바에서. 이제이 블로그에서 우리는 즉, 주요 기능이 내부 구현 세부 정보를 숨기는 Java Abstraction입니다.
이 기사에서는 아래에서 언급 한 주제를 다룰 것입니다.
이 기록을 살펴볼 수도 있습니다. 예제를 통해 주제를 자세하게 이해할 수 있습니다.
OOP의 추상화
일반적으로 추상화에 대해 이야기 할 때 소프트웨어 언어는 추상화의 예입니다. 예를 들어 다음과 같이 진술을 작성해 보겠습니다.
C ++의 동적 메모리 할당
x = y + z
위의 문에서 두 개의 다른 위치에 저장된 두 개의 변수를 추가 한 다음 결과를 새 위치에 저장합니다. 그럼 다음은 어떻게 되나요? 아시다시피 레지스터, 명령어 세트, 프로그램 카운터, 저장 장치 등이 관련되어 있습니다. Java에서 추상화를 언급 할 때 우리는 추상화에 대해 이야기하고 있습니다. 그리고 그것을 달성하는 방법. OOP의 추상화 개념은 클래스가 구상되는 순간부터 시작됩니다. 추상화는 소프트웨어 및 OOP의 모든 곳에 적용됩니다.
Java 추상화 란 무엇입니까?
추상화는 사건보다는 아이디어를 다루는 품질에 지나지 않습니다. 기본적으로 내부 세부 사항을 숨기고 사용자에게 필수 사항을 표시하는 작업을 처리합니다.
위의 gif를 보면 전화를 받았을 때 전화를 받거나 거절 할 수있는 옵션이 있습니다. 그러나 실제로는 백그라운드에서 실행되는 많은 코드가 있습니다. 따라서 여기에서는 호출이 생성되는 방식의 내부 처리를 알지 못합니다. 이것이 추상화의 아름다움입니다. 다음 두 가지 방법으로 추상화를 달성 할 수 있습니다.
a) 추상 클래스
b) 인터페이스
이러한 개념을 더 자세히 이해하겠습니다.
추상 클래스
추상 클래스는 '추상'키워드를 포함합니다. 그러나 정확히 무엇을 의미합니까? 클래스를 추상으로 만들면 인스턴스화 할 수 없습니다. 즉, 추상 클래스의 객체를 만들 수 없습니다. 또한 추상 클래스는 추상 및 구체적인 메서드를 포함 할 수 있습니다.
노트 : 추상 클래스를 사용하여 0-100 % 추상화를 달성 할 수 있습니다.
추상 클래스를 사용하려면 기본 클래스에서 상속해야합니다. 여기에서 추상 메서드에 대한 구현을 제공해야합니다. 그렇지 않으면 추상 클래스가됩니다.
sas 프로그래밍 소개 기본 개념
추상 클래스의 구문을 살펴 보겠습니다.
추상 클래스 Sports {// 추상 클래스 sports Abstract void jump () // 추상 메서드}
상호 작용
Java의 인터페이스는 추상 메서드와 정적 상수의 모음입니다. 인터페이스에서 알 수 있듯이 각 메서드는 공개적이고 추상적이지만 생성자를 포함하지 않습니다. 추상화와 함께 인터페이스는 Java에서 다중 상속을 달성하는데도 도움이됩니다.
노트 : 인터페이스를 사용하여 100 % 추상화를 달성 할 수 있습니다.
기본적으로 Interface는 빈 본문이있는 관련 메서드 그룹입니다. 관련 메소드와 함께 Shape 인터페이스의 예를 들어 인터페이스를 이해해 보겠습니다.
공용 인터페이스 모양 {public void draw () public double getArea ()}
이러한 방법은 모든 '모양'에 존재해야합니다. 그렇죠? 그러나 그들의 작업은 다를 것입니다.
원, 정사각형, 직사각형 등의 모양을 그리려고한다고 가정 해 보겠습니다. 이미 알고있는 각 모양은 반경, 높이, 너비와 같은 고유 한 치수를 가지고 있습니다. 원을 그리고 그 면적을 계산하고 싶다고 해보자. 동일한 점을 고려하여 위 코드에서 draw ()와 getArea ()라는 두 가지 메서드를 만들었습니다. 이제 이러한 방법을 사용하여 인터페이스를 구현하여 모든 모양을 그리고 면적을 계산할 수 있습니다.
이제이 인터페이스를 구현할 수있는 방법에 대한 기능을 살펴 보겠습니다.
이 인터페이스를 구현하기 위해 클래스 이름이 'Circle'이라고 가정 해 보겠습니다. 따라서 클래스 인터페이스를 구현하기 위해 'implement'키워드를 사용합니다.
Public class Circle은 Shape {private double radius를 구현합니다. public Circle (double r) {this.radius = r} void draw () {System.out.println ( 'Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ( 'Area ='+ c.getArea ())}}
위의 예에서는 원의 다른 방법과 계산 된 영역에 대한 기능을 지정했습니다. 여기에서 인터페이스를 구현할 때 클래스가 제공하는 동작에 대해 좀 더 공식화 할 수 있습니다. 다른 기능으로 동일한 인터페이스 '모양'을 상속 할 수있는 'Rectangle'클래스와 같은 다른 클래스를 만들 수도 있습니다.
자바 추상화의 실시간 예제
인터페이스로 Sport가 있다고 가정합니다. 여기서 구현은“배드민턴”과“축구”라는 클래스로 제공됩니다. 실제 시나리오에서 최종 사용자는 구현 클래스를 인식하지 못합니다. 따라서 구현 클래스의 객체는 팩토리 메소드에 의해 제공 될 수 있습니다. 팩토리 메소드는 몇 가지 기준에 따라 구현 클래스의 객체를 생성하는 데 사용할 수 있습니다.
이를 구현하고 Sport.java라는 인터페이스를 생성 해 보겠습니다.
public Interface Sport {void play ()} // 이제 'Badminton'이라는 클래스를 생성하겠습니다. public class Badminton은 Sport를 구현합니다. {@Override public void play () {System.out.println ( 'Playing badminton')}} // 다음으로 마지막 클래스 'Football'공개 클래스를 만들어 보겠습니다. Football은 Sport를 구현합니다. {@Override public void play () {System.out.println ( 'Playing football')}
마지막 단계는 'SportInterface'라는 메인 클래스를 만드는 것입니다.
public SportInterface {public static void main (String args []) {// 여기에 코드를 입력하십시오.}}
위 프로그램을 실행하면 다음과 같이 출력됩니다.
배드민턴 ------------------- 축구
배열 자바 스크립트의 크기 가져 오기
나는 너희들이 인터페이스에 대해 명확하고 그것을 사용하여 추상화를 달성하는 방법을 이해하기를 바랍니다. 이제 추상화와 캡슐화를 비교하여이 기사를 마무리하겠습니다.
추상화와 캡슐화
추출 | 캡슐화 |
디자인 수준의 문제 해결 | 구현 수준에서 문제 해결 |
원하지 않는 데이터를 숨기고 관련 결과를 제공하는 데 사용됩니다. | 캡슐화는 코드와 데이터를 하나의 단위로 숨겨 외부로부터 데이터를 보호하는 것을 의미합니다. |
외부 레이아웃 – 디자인 측면에서 사용 | 내부 레이아웃 – 구현 측면에서 사용 |
추상화와 캡슐화의 차이점을 이해 하셨기를 바랍니다. 이것으로 우리는 Java Abstraction 블로그에서 끝납니다. 희망, 당신은 그것이 유익하다는 것을 알았고 지식에 가치를 더하는 데 도움이되었습니다. Java에 대한 자세한 내용은 다음을 참조하십시오.
'What is Java Abstraction'을 이해 했으므로 이제 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.
질문이 있으십니까? 이 'Java Abstraction'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 연락 드리겠습니다.