프로그래밍 언어 활용 - 3

김상우·2022년 4월 7일
0
post-thumbnail

Java의 클래스

  • 사용 순서
  1. 클래스 작명
  2. 객체 생성을 위한 필드와 메소드 정의
  3. 객체 생성
  4. 생성된 객체를 통한 프로그램 코딩 진행
  • Java 문제 1
class ClassA
{
	int a = 10;
    int funcAdd(int x, int y)
    {
    	return x + y + a;
    }
}
public class Test
{
	public static void main(String[] args)
    {
    	int x = 3;
        int y = 6;
        int r;
        ClassA cal = new ClassA();
        r = cal.funcAdd(x, y);
        System.out.print(r);
    }
}
  • 해설 및 답
  1. 정수형 변수 x, y, r 선언
  2. 객체변수 cal 선언
  3. x, y의 값인 3과 6을 인수로 cal의 funcAdd() 메소드를 호출해 반환받은 값을 r에 저장
  4. 호출문으로부터 정수형 인수 2개를 전달받아 각각 x, y에 저장
  5. 따라서 x, y는 각각 3, 6으로 저장
  6. x + y + a를 연산 후 r = cal.funcAdd()로 결과 반환
  7. x + y = 3 + 6 = 9, a = 10이므로 x + y + a = 3 + 6 + 10 = 19
  8. 19를 r에 저장

    19

  • Java 문제 2
class ClassA
{
	ClassA()
    {
    	System.out.print('A');
        this.prn();
	}
    void prn()
    {
    	System.out.print('B');
    }
}
class ClassB extends ClassA
{
	ClassB()
    {
    	super();
        System.out.print('D');
    }
    void prn()
    {
    	System.out.print('E');
    }
    void prn(int x)
    {
    	System.out.print(x);
    }
}
public class Test
{
	public static void main(String[] args)
    {
    	int x = 7;
        ClassB cal = new ClassB();
        cal.prn(x);
    }
}
  • 해설 및 답
  1. x = 7로 초기화
  2. ClassB 클래스에 cal선언 후 생성자 호출
  3. 부모 클래스의 생성자인 ClassA 메소드 호출
  4. A 출력
  5. prn() 메소드 호출 후 E 출력
  6. D 출력
  7. x의 값을 cal의 prn(int x)메소드 호출
  8. 7 출력 후 프로그램 종료

    AED7

Java의 활용

  • 추상 클래스
    자식 클래스에서 재정의해야만 사용할 수 있는 메소드를 하나 이상 포함하는 클래스
  • 형 변환
    재정의한 메소드를 부모 클래스의 객체변수를 통해 사용하는 것
  • Java 문제
abstract class Animal
{
	String a = " is animal";
    abstract void look();
    void show()
    {
    	System.out.println("Zoo")l
    }
}
class Chicken extends Animal
{
	Chicken()
    {
    	look();
    }
    void look()
    {
    	System.out.println("Chicken" + a);
    }
    void display()
    {
    	System.out.println("two wings");
    }
}
public class Test
{
	public static void main(String[] args)
    {
    	Animal a = new Chicken();
        a.show();
    }
}
  • 해설 및 답
  1. Chicken 클래스의 생성자를 이용해 객체변수 a 선언
  2. look() 메소드 호출
  3. Chicken과 a의 값 is animal을 출력 후 커서를 다음줄의 처음으로 이동
  4. Chicken() 메소드가 종료되고 a의 show() 메소드 호출
  5. a는 Animal 클래스의 객체변수 이므로 Animal의 show()메소드 호출
  6. Zoo를 출력 후 프로그램 종료

    Chicken is animal
    Zoo

Python의 활용

  • 개요
    객체지향 기능을 지원하는 스크립트 언어이며, 문법이 다른 언어에 비해 간단하다.
  • Python 문제 1
    "xyz321"을 입력 했을 때 실행 결과
x = input('입력 : ')
a = ['abc123', 'def456', 'ghi789']
a.append(x)
a.remove('def456')

print(a[1][-3:], a[2][:-3], sep = ',')

for i in range(3, 6):
	print(i, end = ' ')
  • 해설 및 답
  1. "입력 : " 이 출력 되고 문제에서의 xyz321을 키보드로 입력
  2. 리스트 a를 선언하면서 ['abc123', 'def456', 'ghi789']을 초기값 지정
  3. a.append()를 통해 xyz321를 리스트 a뒤에 추가
  4. a.remove()를 통해 def456를 리스트 a에서 제거
  5. a[1]과 a[2]의 요소들을 슬라이스 후 쉼표로 구분하여 출력
  6. a[1][-3:] : 789
  7. a[2][:-3] : xyz
  8. for i in range(3, 6)을 통해 3부터 5까지 순서대로 i에 저장하며 for 아래의 print()를 반복수행
  9. i의 값을 출력하고 종료문자로 공백 한칸이 출력

    입력 :
    789,xyz
    3 4 5

  • Python 예제 2
a = {'apple', 'lemon', 'banana'}
a.update({'kiwi', 'banana'})
a.remove('lemon')
a.add('apple')

for i in a:
	print(i)
  • 해설 및 답
  1. 세트 a를 선언 후 초기화
  2. a.update()를 통해 세트 a뒤에 kiwi추가
  3. a.remove()를 통해 세트 a에서의 lemon삭제
  4. a.add()를 통해 세트 a에 apple 추가하지만 이미 있으므로 불변
  5. a세트 각 요소의 값을 i에 저장하며 a의 요소 수만큼 반복 수행

    apple
    banana
    kiwi

profile
아침엔 운동하고 밤엔 잠을 잔다.

0개의 댓글