>  기사  >  Java  >  Java의 추상화

Java의 추상화

WBOY
WBOY원래의
2024-08-30 15:57:18894검색

주로 oops 개념으로 구축된 Java 기술에서 추상화도 oops(객체 지향 프로그래밍 시스템) 개념 중 하나이며 데이터를 숨기는 프로세스로 표시됩니다. 즉 일부 세부 정보는 표시되지 않지만 다음과 같이 표시됩니다. 숨겨진 데이터와 관련된 정보만 사용자 화면에 표시합니다. Java의 추상화에서는 "추상 클래스 및 인터페이스"의 도움으로 이러한 개념을 사용할 수 있습니다. 이 두 유형은 Java에서 동시에 사용되거나 사용자 요구 사항에 따라 두 프로세스 모두에서 어떤 유형이든 사용할 수 있습니다. 프로그램에 사용됩니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문

추상화는 Java 프로그램에서 사용되는 두 가지 유형의 구문에 사용됩니다.

import packages;
abstract class names
{
-----some logic codes---
}
interface  names
{
----Some logic codes----
}

위 코드는 Java 프로그램에서 적용 가능한 추상화를 위한 기본 구문입니다. 추상 클래스를 사용하면 추상 및 비추상 메서드를 모두 사용하지만 인터페이스는 비추상 메서드만 허용합니다. 이 두 개념 사이에는 비슷한 차이점이 있습니다.

Java에서 추상화를 사용하는 방법

추상화에서는 Java 개체에서 원치 않는 세부 정보를 숨깁니다. 주제에 대한 관련 정보만 표시합니다. 주로 맵 인터페이스의 map이라는 Java 컬렉션 인터페이스와 비교합니다. hashmap과 같은 파생 클래스가 있으며 키 값 쌍을 저장합니다. get() 및 put() 메소드와 같은 일부 메소드를 사용하여 사용자 데이터를 저장하고 백엔드에서 데이터를 검색합니다.

주로 추상화는 1.데이터 추상화와 2.제어 추상화의 두 가지 방법을 제공합니다. 데이터 추상화는 어려운 유형의 데이터를 생성하는 데 사용되며 데이터 유형을 포함하여 일부 유용한 콘텐츠를 화면에 노출하는 데 사용됩니다. 제어 추상화에서는 일부 데이터를 다른 프로그래밍 언어로 작성하는 프로세스가 서로 다른 시나리오에 있으며 데이터를 저장하고 검색하기 위한 코드를 여러 번 작성하므로 이러한 유형의 데이터를 식별하고 단일 작업과 결합하는 것을 호출합니다. 제어 추상화로.

추상화를 달성하기 위해 인터페이스 유형을 사용하는 동안 이는 대부분의 경우 이를 달성해야 하지만 추상 클래스에서는 추상화 프로세스에서 완전히 달성되지 않았으므로 부분적으로 완료되어야 합니다. 추상 클래스를 사용하는 경우 해당 클래스를 확장하여 완전히 또는 구체적인 클래스의 인스턴스에 사용하려는 경우 이러한 클래스의 인스턴스를 생성할 수 없습니다. 추상화를 사용하여 메소드 구현이 다양할 수 있다고 선언했지만 추상 클래스의 인스턴스를 생성하기 위해 new 연산자를 사용하면 컴파일 오류가 발생합니다.

Java 추상화의 예

아래에 언급된 예는 다음과 같습니다.

예시 #1

코드:

public abstract class Main {
private String names;
private String city;
public Main(String nm, String cty){
this.names=nm;
this.city=cty;
}
public abstract void work();
@Override
public String toString(){
return "Names="+this.names+"::City="+this.city;
}
public void changeName(String newNames) {
this.names = newNames;
}
}
public class ClientMain extends Main {
private int empId;
public ClientMain(String nm, String cty, int id) {
super(nm, cty);
this.empId=id;
}
@Override
public void work() {
if(empId == 0){
System.<em>out</em>.println("Invalid name");
}else{
System.<em>out</em>.println("Employees List!!");
}
}
public static void main(String args[]){
//coding in terms of abstract classes
Main m = new ClientMain("siva","tirupur",1);
Main m1 = new ClientMain("raman","chennai",234);
m.work();
m1.work();
//using method implemented in abstract class - inheritance
m1.changeName("Sivaraman");
System.<em>out</em>.println(m1.toString());
}
}

출력:

Java의 추상화

예시 #2

코드:

interface Animals {
public void animalSounds();
public void sleep();
}
class Sample implements Animals {
public void animalSounds() {
System.<em>out</em>.println("Animal Sounds");
}
public void sleep() {
System.<em>out</em>.println("Beep");
}
}
class ClientMain {
public static void main(String[] args) {
Sample s = new Sample();
s.animalSounds();
s.sleep();
}
}

출력:

Java의 추상화

예시 #3

코드:

@FunctionalInterface
interface SquareofNumbers
{
int numbers(int x);
}
class ClientMain
{
public static void main(String args[])
{
int a = 6;
SquareofNumbers  s = (int i)->i*i;
int result = s.numbers(a);
System.<em>out</em>.println(result);
}
}

출력:

Java의 추상화

위의 세 가지 예에서는 Java 애플리케이션에서 추상화를 구현하기 위해 추상 클래스와 인터페이스의 기본 사용법을 사용했습니다. 마지막 예에서는 주어진 숫자를 제곱하기 위해 Java에서 사용되는 기능적 인터페이스라는 개념을 사용했습니다. 기능적 인터페이스는 다음과 같습니다. 인터페이스 개념이지만 프로그램에서 둘 이상의 추상 메소드를 허용하지 않는다는 점에서 둘 이상의 추상 메소드를 사용했다고 가정하면 기능적 인터페이스를 사용하는 동안 "예기치 않은 @function 인터페이스 주석"과 같은 오류가 발생한다는 의미입니다. 주석도 선언합니다. Java에서 메타데이터 기술이 필요한 동안 데이터 개념에 대한 데이터에 매우 도움이 됩니다. 우리는 주석이라는 이러한 유형의 기술을 사용했으며 또한 마지막 예제에서 사용한 람다 표현식이라는 또 다른 개념을 사용했습니다. 코드 공간을 줄여 코드의 중복성이 매우 간단하고 프로그램의 복잡성도 적어 복잡한 코딩을 작성하는 데 쉽게 이해할 수 있습니다.

클래스의 메소드 중 하나를 정의한 경우 클래스도 추상으로 선언해야 하며, 추상 클래스를 확장하고 그 전에 내부 클래스의 메소드 중 하나에서 사용된 경우 클래스의 모든 메소드를 구현해야 합니다. Java 기술의 추상 클래스는 추상 클래스의 인스턴스를 생성할 수 없습니다. 추상 클래스를 Java의 최종 액세스 수정자 또는 키워드로 선언할 수 없습니다. 왜냐하면 추상 클래스에서 final을 사용하거나 클래스의 모든 메서드를 사용할 수 있기 때문입니다. 애플리케이션의 전체 실행 과정에서 변경되지 않습니다. 개인 수정자는 추상화에서도 허용되지 않습니다. 부모-자식 관계 상속에 영향을 미칩니다. 함수/메소드가 하위 클래스에 허용되지 않기 때문에 추상 클래스에서도 영향을 받아야 합니다.

결론

위의 추상화 개념은 oops에 대한 기본적인 이해입니다. Java 기술에서 동일한 내용을 구현하면 추상화를 달성하기 위해 인터페이스 및 추상 클래스와 함께 사용해야 하지만 Java 최신 버전에서는 새로운 기능에 따라 달라질 수 있습니다. .

위 내용은 Java의 추상화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:자바의 응집력다음 기사:자바의 응집력