정보처리기사 자바 짝수, 홀수 , 추상메서드와 인터페이스의 차이점
본문 바로가기

컴퓨터공부/ASAC 웹풀스택

정보처리기사 자바 짝수, 홀수 , 추상메서드와 인터페이스의 차이점

by Life & study 2023. 9. 4.
반응형

정보처리기사 자바 짝수, 홀수 , 추상메서드와 인터페이스의 차이점

 

문제:
주어진 정수 배열에서 모든 짝수를 찾아내는 자바 프로그램을 작성하세요.

 

 

int[] numbers = {2, 7, 4, 9, 6, 10, 3, 8};

 

 

코드

public class EvenNumbers {
    public static void main(String[] args) {
        int[] numbers = {2, 7, 4, 9, 6, 10, 3, 8};
        
        // 짝수를 저장할 새로운 배열 생성
        int[] evenNumbers = findEvenNumbers(numbers);
        
        // 짝수 배열 출력
        System.out.println("짝수 배열: ");
        for (int num : evenNumbers) {
            System.out.print(num + " ");
        }
    }
    
    public static int[] findEvenNumbers(int[] array) {
        int count = 0;
        for (int num : array) {
            if (num % 2 == 0) {
                count++;
            }
        }
        
        int[] evenNumbers = new int[count];
        int index = 0;
        for (int num : array) {
            if (num % 2 == 0) {
                evenNumbers[index] = num;
                index++;
            }
        }
        
        return evenNumbers;
    }
}

 

 

\ 출력값

 

짝수 배열:
2 4 6 10 8

 

 

자바문제:
주어진 정수 배열에서 모든 홀수를 찾아내는 자바 프로그램을 작성하세요.

 

 

 

public class OddNumbers {
    public static void main(String[] args) {
        int[] numbers = {2, 7, 4, 9, 6, 10, 3, 8};

        // 홀수를 저장할 새로운 배열 생성
        int[] oddNumbers = findOddNumbers(numbers);

        // 홀수 배열 출력
        System.out.println("홀수 배열:");
        for (int num : oddNumbers) {
            System.out.print(num + " ");
        }
    }

    public static int[] findOddNumbers(int[] array) {
        int count = 0;
        for (int num : array) {
            if (num % 2 != 0) {
                count++;
            }
        }

        int[] oddNumbers = new int[count];
        int index = 0;
        for (int num : array) {
            if (num % 2 != 0) {
                oddNumbers[index] = num;
                index++;
            }
        }

        return oddNumbers;
    }
}

 

 

출력값:

홀수 배열:
7 9 3

 

 

 

 

 

파이썬 문제:
주어진 정수 배열에서 모든 홀수를 찾아내는 자바 프로그램을 작성하세요.,

 

 

파이썬문제

def find_odd_numbers(arr):
    odd_numbers = [num for num in arr if num % 2 != 0]
    return odd_numbers

if __name__ == "__main__":
    numbers = [2, 7, 4, 9, 6, 10, 3, 8]
    
    # 홀수를 찾아내는 함수 호출
    odd_numbers = find_odd_numbers(numbers)
    
    # 홀수 배열 출력
    print("홀수 배열:")
    for num in odd_numbers:
        print(num, end=" ")

 

 

출력값

홀수 배열:
7 9 3

 

 

주어진 문자열에서 모든 공백을 제거하고, 각 단어를 쉼표(,)로 구분하여 출력하는 자바 프로그램을 작성하세요

 

import java.util.Scanner;

public class RemoveSpacesAndCommaSeparated {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("문자열을 입력하세요: ");
        String input = scanner.nextLine();
        scanner.close();

        // 공백을 모두 제거하고 단어들을 쉼표로 구분하여 출력
        String[] words = input.split("\\s+");
        for (int i = 0; i < words.length; i++) {
            System.out.print(words[i]);
            if (i < words.length - 1) {
                System.out.print(",");
            }
        }
    }
}

 

사용자로부터 문자열을 입력받습니다.
문자열 내에는 공백으로 구분된 단어들이 포함되어 있습니다.
공백을 모두 제거하고, 각 단어를 쉼표(,)로 구분하여 출력합니다.
힌트:

split() 메소드와 문자열 처리를 사용하여 공백으로 문자열을 분리할 수 있습니다.
분리된 단어들을 반복문을 사용하여 쉼표와 함께 출력합니다.

 

 

 

 

 

 

 

문제: 자바에서 인터페이스와 추상 클래스의 차이점을 설명하시오.

 

// 추상 클래스
abstract class Animal {
    String name;

    // 추상 메소드
    abstract void sound();

    // 일반 메소드
    void eat() {
        System.out.println(name + " is eating.");
    }
}

// 인터페이스
interface Swimmer {
    void swim();
}

class Dog extends Animal implements Swimmer {
    Dog(String name) {
        this.name = name;
    }

    // 추상 메소드 구현
    @Override
    void sound() {
        System.out.println(name + " barks.");
    }

    // 인터페이스 메소드 구현
    @Override
    public void swim() {
        System.out.println(name + " is swimming.");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Buddy");
        dog.sound();
        dog.eat();
        dog.swim();
    }
}

 

주석 설명:

추상 클래스 (Abstract Class):

추상 클래스는 abstract 키워드를 사용하여 정의됩니다.
추상 클래스는 일반 메소드와 추상 메소드를 포함할 수 있습니다.
추상 메소드는 메소드 선언만 하고 구현은 하위 클래스에서 해야 합니다.
추상 클래스의 인스턴스를 직접 생성할 수 없으며, 하위 클래스에서 상속받고 구체적인 메소드를 구현해야 합니다.
인터페이스 (Interface):

인터페이스는 interface 키워드를 사용하여 정의됩니다.
인터페이스는 추상 메소드만을 포함하며, 메소드의 선언만 있고 구현은 하위 클래스에서 합니다.
클래스가 여러 인터페이스를 구현할 수 있습니다.
인터페이스는 다중 상속을 지원하며, 클래스에 추가적인 기능을 부여합니다.

 

출력값

Buddy barks.
Buddy is eating.
Buddy is swimming.

 

 

 

 

자바 추상메서드와 인터페이스의 차이

추상메서드와 

// 추상 클래스
abstract class Animal {
    // 추상 메서드
    abstract void sound();
}

// 하위 클래스
class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Dog barks.");
    }
}

public class Main {
    public static void main(String[] args) {
        // 추상 클래스의 인스턴스 생성 불가능
        // Animal animal = new Animal(); // 에러 발생

        // 하위 클래스의 인스턴스 생성
        Animal dog = new Dog();
        dog.sound(); // "Dog barks." 출력
    }
}

 

 

인터페이스

// 인터페이스
interface Swimmer {
    void swim();
}

// 클래스
class Fish implements Swimmer {
    @Override
    public void swim() {
        System.out.println("Fish is swimming.");
    }
}

class Duck implements Swimmer {
    @Override
    public void swim() {
        System.out.println("Duck is swimming.");
    }
}

public class Main {
    public static void main(String[] args) {
        Swimmer fish = new Fish();
        fish.swim(); // "Fish is swimming." 출력

        Swimmer duck = new Duck();
        duck.swim(); // "Duck is swimming." 출력
    }
}

 

 

 

반응형

댓글