정보처리기사 자바 짝수, 홀수 , 추상메서드와 인터페이스의 차이점
문제:
주어진 정수 배열에서 모든 짝수를 찾아내는 자바 프로그램을 작성하세요.
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." 출력
}
}
'컴퓨터공부 > ASAC 웹풀스택' 카테고리의 다른 글
스프링 컨테이너에서 객체를 주입한다 , AOP , 스타터팩 ,formatted()메서드 (0) | 2023.09.05 |
---|---|
List와 Map, 백준 10807번 1707번, 스택 과 큐 , 이진트리 (0) | 2023.09.05 |
라우터 , ip , 서버 , IGW 개념 , 프록시와 리버스 프록시 , 타입스크립트 기본 타입 , 다이나믹 스코프란 무엇인가?, CSR SEO 관점으로 점수를 못얻는 이유 (0) | 2023.09.04 |
[ASAC 웹풀스택] 백준 2501번 3460번 10818번 2609번 2309번 2460번 (0) | 2023.09.03 |
댓글